Video Treiber für Odroid-N2+ (softhdodroid)

  • Ja. Nah dran ;)

  • Ich verstehe es grad nicht. Ich habe vor ein paar Tagen das Audio von softhdcuvid auf ffmpeg 7 umgestellt.

    Bisher hatte ich mit ffmpeg 6 keine Probleme. Eigentlich wollte ich das für das softhdodroid auch nun compatibel mit ffmpeg 7 machen.

    Bist du sicher das wir hier von ffmpeg 6 und ffmpeg 5 reden ?

  • Ich bin mit den Konstanten durcheinander gekommen :(


    Aber das mich jetzt auch darauf gebracht, warum es nicht kompiliert.

    audio_ctx->channel_layout ist deprecated und wurde ersetzt durch audio_ctx->ch_layout. Der Rückgabetyp ist komplett anders. Statt int64_t ein AVChannelLayout.


    Dann gibt es noch die beiden defines

    Code
    AV_CHANNEL_LAYOUT_STEREO_DOWNMIX <- Typ AVChannelLayout
    AV_CH_LAYOUT_STEREO_DOWNMIX      <- Typ int64_t

    Das ist genau umgekehrt zu den Api-Änderungen channel_layout <-> ch_layout.


    Und damit sieht der richtige schmale Fix so aus:

    Code
    -    av_opt_set_channel_layout(audio_decoder->Resample, "out_channel_layout", CodecDownmix ? AV_CHANNEL_LAYOUT_STEREO_DOWNMIX : audio_ctx->channel_layout,  0);
    +    av_opt_set_channel_layout(audio_decoder->Resample, "out_channel_layout", CodecDownmix ? AV_CH_LAYOUT_STEREO_DOWNMIX : audio_ctx->channel_layout,  0);


    AV_CH_LAYOUT_STEREO_DOWNMIX statt AV_CHANNEL_LAYOUT_STEREO_DOWNMIX

  • jojo61 Ich habe von Ugoos ein SK1-Sample (S928X) erhalten. CE 22 NE (Kernel 5.4) läuft darauf ganz gut mit Dolby-Vision. Ich habe meine chroot-Umgebung so angepasst, dass da inzwischen ein UBUNTU 22.04 läuft und verwende zur Ausgabe ebenfalls Dein Plugin. Sobald alles richtig läuft, werde ich das Installations-Skript auf mein Github legen. Das sollte dann auch mit anderen Amlogic-Boxen laufen.


    Allerdings habe ich bei UHD-Sendern unter Kernel 5.4 (CE) in der chroot-Umgebung kein Bild. Wenn ich KODI das ganze darstellen lasse (VNSI-Server), funktioniert die Ausgabe mit Bild und Ton. Teilweise habe ich mit Deinem Plugin auch nur Ton, aber kein Bild (QVC UHD). Hast Du eine Ahnung, woran das liegen könnte? Ich würde ungerne auf den 5.15-Kernel wechseln, weil ich dann Dolby-Vision verliere. Auf meinem Odroid N2+ (S922X) mit CE NO (Kernel 5.15) läuft es ohne Probleme...

  • Das beste wäre wohl, Ugoos würde jojo61 auch so ein SK1 zur Verfügung stellen ;)

    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD

  • Allerdings habe ich bei UHD-Sendern unter Kernel 5.4 (CE) in der chroot-Umgebung kein Bild.

    Ja das ist mir schon bekannt. Nur leider kann ich mangels Hardware nicht mit dem Kernel 5.4 testen.

    Ich habe hier nur Odroid-N2+ und wie du schon sagst, da läuft es mit Kernel 4.9 und 5.15. Wobei der Kernel 5.15 eh noch nicht für produktiven Einsatz geeignet ist. Da hat Dr. Seltsam schon recht ein SK1 würde da sicher helfen :)

  • Das Problem hängt ja nicht vom Prozessor ab. CE 5.4 läuft ja auch auf dem N2.

    Edit: Ich sehe gerade, dass ich Mist erzählt habe. Es gibt nur die NO (5.15) oder die NG. Die NE-Version läuft nicht auf dem N2.

  • jojo61 Ja, das ist ein HDR-fähiger TV, der auch Dolby-Vision kann. HDR2SDR steht auf no. SES UHD Demo macht kein Bild und keinen Ton, bei QVC UHD bleibt das Bild des letzten Senders stehen und es kommt nur Ton.

    Unter KODI kommen Bild und Ton (VNSI Server VDR -> CE). Es ändert auch nichts, wenn der HDR2SDR auf yes steht.

  • beta Tja da hilft dann alles nichts. Ohne eine Hardware zum testen kann ich da nicht weiterhelfen.

    Irgend etwas muss da im Kernel 5.4 wohl noch gesetzt werden und das finde ich nicht als trockenübung.


    Könntest du mir evtl.. shell zugang zum Rechner verschaffen. Dann könnte ich zumindest mal in /sys/class schauen ob mir was auffällt.

  • Nach einer längeren Session mit beta bin ich mit dem Kernel 5.4 leider nicht weiter gekommen. Ich habe zwar ein paar Dinge gefunden und nun kommt das erste Frame als Bild an. Aber der decoder macht dann nicht weiter und das erste Frame bleibt einfach stehen bis vom vdr dann ein Clear kommt.

    Da es beim Kernel 5.15 ja ohne Probleme geht werden wir für UHD wohl auf diesen Kernel warten müssen.


    Danke an beta für die tolle Unterstützung. :thumbup:

  • jojo61 Wenn hier einer Danke sagen muss, dann ja wohl ich. Jojo, Du hast Dir Zeit genommen und versucht, das Ganze auf meinem Rechner zu debuggen und dafür sage ich Dir herzlich Danke! Wenn Du mal in der Düsseldorfer Gegend bist, melde Dich und ich gebe einen aus :)

  • Hallo jojo,


    der anliegende Patch

    • gleicht Formatierungen in VideoSetTrickspeed und CodecVideoDecode an
    • macht eine kürzliche Änderung in Mute wieder rückgängig, da damit die Zeitlupe stehen blieb. PlayTSAudio muss mittels SkipAudio die Funktion mit size returnieren, da sonst vdr nach kurzer Zeit die Lieferung von Videodaten einstellt. Das Leeren des Audio ringbuffers ist unumgänglich, da sonst nach Ende der Zeitlupe zunächst dessen veralteter Inhalt ausgegeben wird.
    • sorgt dafür, dass die Funktion GetSTC beim Abspielen von Audio-only anstelle der fehlenden Video PTS stattdessen die Audio PTS zurückgibt. Damit funktionieren die Trickfunktionen auch beim Abspielen von Radioaufnahmen. (Wenn man das Radio-Plugin in der Version von siricco verwendet, sollte man unbedingt anstelle der PlayPes() Function die StillPicture() Function verwenden. Die mit PlayPes aus den Hintergrundbildern erstellten Videopakete haben allesamt die gleiche PTS, was beim Spulen zu Problemen führt.)
    • behebt eine Situation beim Spulen in Radioaufnahmen, die vdr unbedienbar macht, weil in VideoGetClock eine while-Schleife nie verlassen wird. Das lag wahrscheinlich an der PlayPes-Funktion des radio-Plugins, sollte aber dennoch nicht passieren. Mir erschien der Code etwas suspekt, daher habe ich Video-und Radioaufnahmen mal ohne separate TrickPTS getestet. Das funktioniert ohne erkennbare Einschränkungen, daher habe ich den Teil rausgeworfen.
    • ändert den Rückgabewert von GetSTC im Fehlerfall von AV_NOPTS_VALUE (was ein positiver Wert ist) auf -1. Das entspricht auch der "Referenzimplementierung" von kls im dvbsddevice-Plugin.

    Files

    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD

  • Mir erschien der Code etwas suspekt, daher habe ich Video-und Radioaufnahmen mal ohne separate TrickPTS getestet. Das funktioniert ohne erkennbare Einschränkungen

    Wenn ich mich richtig erinnere habe ich das eingebaut weil bei TrickSpeed der Fortschrittsbalken im OSD rumgesprungen ist.

    Aber wenn es zu Problemen mit reinem Audio führt dann ist es besser wenn es raus ist.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!