Jump to content
lsby

Sat>Ip für macOS 64 Bit

Recommended Posts

hackbart

Hab ich woanders schon geschrieben. Neben der Tatsache dass die Server von Embarcadero die letzten Tage nicht wirklich funktioniert haben und ich auch noch anderweitig beschäftigt war/bin dauert das ein bisschen. Für die 64bit Version muss ich diverse Assemblerroutinen umschreiben bzw. durch die der mobilen App ersetzen. Außerdem sind einige Dinge hinzugekommen die ich noch einbinden muss und ffmpeg würde ich auch gerne aktualisieren. Die ändern ihre API (genauer die Structs/Records) häufiger, als manch einer seine Unterwasche. Auch gibt es seit einiger Zeit einen halbwegs funktionierenden Port von Virtualtreeview für Firemonkey. Das nutzen wir wirklich in jedem Projekt und es hat mich ziemlich genervt da etwas "eigenes" machen zu müssen. Irgendwo bei Delphipraxis hab ich den alten Code dazu gepostet. Das würde ich echt gerne noch ersetzen. Alles in allem ist das ziemlich zeitaufwändig und ja es ist in Arbeit, aber braucht halt seine Zeit.

 

Christian   

Share this post


Link to post
lsby

Hallo,

 

danke für dein feedback! Wenn Du Tester brauchst bitte Melden .

 

Gruß aus Köln

 

Share this post


Link to post
hackbart

Erstmal nicht, ich hab hier ja selber einige Macs. Immerhin kann ich jetzt mit dem aktuellen Delphi arbeiten. Die haben wohl etliche Server erneuert. Das wohl derzeit größte Problem wird sein FFMpeg korrekt zu kompilieren. Ich hab mir das irgendwann mal aufgeschrieben und seitdem nicht mehr selber gemacht.

 

Christian

Share this post


Link to post
hackbart

Vielleicht kurz als Zwischeninfo. Ich kann mittlerweile 64bit Anwendungen kompilieren für Mac. Das "alte" Sat>IP Viewer Projekt muss ich wohl komplett neu erstellen und die dazugehörigen Dateien in ein Bundle packen. Das ist zum Glück nur eine Fleissarbeit. Es wird sich auch bei der Anzeige ein bisschen ändern. Bei einem anderen Projekt, was teile des Codes verwendet und auf Linux Hardware läuft, habe ich das ganze schon vor einiger Zeit eingebaut. Im Radiomodus bzw. Idle-Betrieb ist das Hintergrundbild animiert. Dafür nutze ich ein paar Pixelshader und es werden zum Beispiel Senderlogos für Radiosender, oder Albencover dargestellt. Bei TV bleibt alles beim alten.

Share this post


Link to post
hackbart

Mittlerweile kompiliert auch das Sat>IP Viewer Projekt. Ich hab einige Funktionen dafür deaktiviert. So geht UpdateSystemActivity bei der 64bit Version nicht und ich weiß nicht wieso. Da muss ich mich erst belesen. Diese Funktion nutze ich um den Bildschirmschoner zu verhindern. Auch muss ich diverse Funktionen von ffmpeg anpassen, da ffmpeg leider die Struktur der verwendeten Structs öfter ändert, als manch einer seine Unterhosen. Ich könnte jedes mal Fluchen wie ein Kesselflicker. Ich weiß zwar nicht wieso die das machen, irgend einen Grund wird das schon haben, aber es ist ein Unding. Da fliegen Variablen aus raus, neue kommen rein und wir reden hier von Struktur-"Monstern" wie AVFrame oder AVCodecContext und AVFormatContext. 

Wenn dann die Decodierung und wie Wiedergabe funktioniert mache ich mich an die Implementierung von den ganzen Dingern die hier in meiner TODO Liste stehen. Sowas wie Aufnahme von Internetstreams würde ich auch gerne einbauen, aber Apple ist da ziemlich konsequent und das kann ich leider nicht einbinden. 

 

Christian

Share this post


Link to post
hackbart

Mittlerweile kompiliert Delphi die Anwendung unter MacOS 64bit und ich habe auf das aktuelle ffmpeg migriert. Video und Radio geht, jetzt mache ich mich an das Einbinden der Dinge die auf der Todo-Liste stehen.

Ich muss allerdings noch etliche Bugs in dem OSX 64 Bit Code von Embarcadero ausmerzen. Mehr dazu werde ich wohl zu gegebenem Zeitpunkt bei Delphipraxis posten.

 

Christian

Share this post


Link to post
lsby

Hallo,

 

danke für dein Feedback. 

 

Gibt es eventuell schon eine Testversion?

 

Gruß aus Köln

 

Share this post


Link to post
hackbart

Jein, ich muss noch einiges an Fehlern in der Cocoa Implementierung von Embarcadero reparieren.

So führt der Menüeintrag "Programm beenden" dazu, dass die Anwendung terminiert wird und alle Klassen nicht korrekt geschlossen werden. In dem mitgelieferten Code steht ein NSApp.Terminate anstelle eines NSApp.Stop. 

Dann verwurstet die Referenzimplementierung meine Menüstruktur. An dem Problem sitze ich gerade, was ziemlich nervig ist. Das hab ich in älteren Versionen schon gepatched. https://www.delphipraxis.net/180558-macos-menueeintraege.html

Jetzt sind noch einige Einträge hinzugekommen, die ich reparieren muss. QM sieht anders aus :)

 

Auch nervig ist, dass der Posix Code teilweise nicht 64bit tauglich ist. Dadurch lief meine Synapse TCP Implementierung unter Mac OS 64 nicht. Zum Glück wusste ich wonach ich suchen darf, denn über diese Probleme bin ich auch schon gestolpert. Wenn man einen Pointer auf DWord mapped gibts halt Probleme, da Zeiger unter 64bit 8byte groß sind und nicht 4.

 

In der alten Version habe ich  mittels UpdateSystemActivity den Bildschirmschoner deaktivert. Das geht nicht mehr, also musste ich eine andere Lösung finden. Die bei stackoverflow aufgeführten Ansätze sind zwar leicht umzusetzen, aber Shellbefehle in einer Appstore tauglichen Anwendung aufzurufen ist nicht möglich. Ich nutze jetzt IOPMAssertionCreateWithName und das scheint zu gehen.

 

Mein iMac 5k hat leider ein Problem mit Ghosting und nach einigen Minuten Radioprogramm abspielen hatte ich das Hintergrundbild für einen längeren Zeitraum noch als Schatten. Um das zu verhindern animiere ich die Anzeige. Das ganze schaut sogar recht gut aus:

 

https://youtu.be/H6HRwyW1LFk

 

Christian

Share this post


Link to post
hackbart

So, mittlerweile habe ich bis auf ein paar kleinere Dinge die auf meiner zu erledigen Liste stehen alles eingebaut. Danach geht es an Langzeittests. Ich gehe mal nicht davon aus, dass die neue Anwendung größere Probleme bereitet, aber bevor ich ein Release veröffentliche sollte das ganze stabil funktionieren.

Bildschirmfoto 2019-08-22 um 20.32.18.jpg

Christian

Share this post


Link to post
hackbart

Ich hab das ganze jetzt den ganzen Tag laufen lassen und soweit scheint alles prima. Ich teste heute noch die Aufnahmefunktionen und werde mal schauen wie ich in einer Sandboxed Anwendung sowas wie einen cronjob erstellen kann, damit programmierte Aufnahmen auch vorgenommen werden.

 

Christian

Share this post


Link to post
hackbart

Aktuell bin ich dabei die Releasebuild zu testen und Sendersuchlauf bzw. alle anderen Dinge die man jetzt nicht so oft im Programm benutzt durchzugehen. Ich denke heute Abend ein Release in den Store zu laden und hoffe mal darauf, dass der Review nicht ewig dauert. 

 

Nur als kurze Info was dann neu ist:

 

-changed: 64bit build with updated ffmpeg decoders, based on the last stable build

-changed: animated idle background (raindrop window glass effect with thunder strokes from time to time). This is intend to prevent burn in on monitors and looks also quite nice. The rendering is done entirely GPU via Pixelshader with very low GPU usage.

-updated: transponder list for Astra 19.2, 23, 28 and Hotbird. 

-changed: the hibernation and screensaver is disabled when you play tv or the option window is open, hibernation is disabled when you listen to radio or record something

 

So gegen 14 Uhr habe ich die Binary hochgeladen. Leider gab es noch keine Rückmeldung wann diese zum Review zur Verfügung steht bzw. in Builds wird sie nicht gelistet. Also heißt es Geduld und wenn morgen noch keine Meldung erscheint, dann frage ich dort mal nach.

Share this post


Link to post
hackbart

Nachtrag: Heute morgen hab ich eine Mail gehabt, dass in der avcodec.dylib diverse API Funktionen benutzt werden, die ich nicht verwenden kann. Sprich ich muss die FFmpeg Bibliotheken neu kompilieren. Mal gucken ob das dann funktioniert.

Share this post


Link to post
hackbart

Hmm, ich habe da sich bei Apple wohl gerade alles etwas zieht meinen PDF Generator aktualisiert und am Freitag um 7 Uhr zum Review freigegeben. Der wartet immer noch und aktuell scheint etwas der Wurm drin zu sein 😕

Die Anwendung an sich ist ziemlich einfach und 100% made in Pascal/Delphi. Das ganze Teil stammt übrigens aus den 90ern und damit habe ich teile meiner Referate in PDF kompiliert. Sprich da ist jetzt nix was auf irgendwelche API Funktionen von Apple zurückgreift. Ich hoffe mal wenn ich eine neue Version vom Sat>IP Viewer einreiche geht das etwas schneller von statten. "Früher" hatte man lediglich 1-2 Tage Latenz.

Share this post


Link to post
hackbart

Die Applikation ist durch den automatisierten Test und wartet auf das Review. Wann das nun sein wird kann ich nicht sagen, aber sofern nicht irgendwelche banalen Dinge bemängelt werden, gehe ich mal davon aus, dass die Anwendung dann automatisch im Store erscheint. In 64bit, mit aktuellen Decodern und naja im Rahmen dessen was der Store erlaubt. Ich würde auch gerne die Internetstreams wie DVB  Übertragungen speichern können (exakt so wie im DVBViewer), aber das geht nun einmal nicht.

 

Christian

Share this post


Link to post
hackbart

Seit vorhin ist die App im Store. Ich gehe mal davon aus, dass man die einfach durchgewunken hat. 

Share this post


Link to post
baldrick

Super. Vielen Dank.

Läuft schonmal ganz gut auf macmini i5 (2014) mit Netstream4Sat auf 19.2 und 28.2. App Store hat das Update zwar nicht erkannt, aber alte Version löschen und nochmal laden ging dann. Das animierte Regenbild sieht echt cool aus.  Hier und da ruckelts und hakt es noch, aber 10.15 ist ja auch noch nicht final.

Bin mal gespannt was die EyeTV4Beta noch bringt sofern die dann auch mal kommt.

Edited by baldrick

Share this post


Link to post
hackbart

Gerne, hakeln sollte eigentlich nichts, außer das Einstellungsfenster. Das wollte ich komplett umkrempeln (irgendwann). Das Regenbild ist leider notwendig, zumindest bei meinem Mac5k. Das IPS Display brennt immer schneller ein. Wo ich vor einem Jahr noch 10 Minuten brauchte bei einem statischen Bild (wie der IDE), so leuchtet die Anzeige jetzt schon nach 2 Minuten nach. Das statische Bild wird, neben dem Regen, auch immer wieder vergrößert und verkleinert. Da brennt jetzt nix mehr ein, aber mal abgesehen davon ist es schon ärgerlich dass so ein ziemlich teurer Computer solche Macken nach 4 Jahren Nutzung zeigt. Erinnert mich an meinen ersten PC, wo der Norton Commander noch nachdem der PC 4 Stunden abgeschaltet war nachleuchtete :)

 

Christian

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...