[softhddevice] Patch für libavcodec 9.10 unter Ubuntu 14.04 trusty

  • Hallo,
    ich schaue gerade wo es klemmt, wenn man die yaVDR VDR-Pakete für Ubuntu 14.04 baut.
    Bei softhddevice liefert make diese Ausgabe: http://paste.ubuntu.com/6672403/
    Es dürfte an diesem Fehler in Zeile 90 hängen:

    Code
    codec.c:785:6: error: ‘AV_CH_LAYOUT_STEREO_DOWNMIX’ undeclared (first use in this function)
          AV_CH_LAYOUT_STEREO_DOWNMIX;
          ^


    Die Definition steckt (wie bei ffmpeg auch) in libavutil/channel_layout.h: http://libav.org/doxygen/maste…el__layout_8h_source.html

    Code
    $ apt-cache policy libavutil-dev
    libavutil-dev:
      Installiert:           6:9.10-1ubuntu7
      Installationskandidat: 6:9.10-1ubuntu7
      Versionstabelle:
     *** 6:9.10-1ubuntu7 0
            500 http://de.archive.ubuntu.com/ubuntu/ trusty/universe amd64 Packages
            100 /var/lib/dpkg/status


    Mit diesem Patch baut er das Paket zumindest lokal erfolgreich:

    Bei ffmpeg wird libavutil/channel_layout.h in libavcodec/avcodec.h includiert, bei libav offenbar nicht.


    Dummerweise reicht das nicht, damit Launchpad das 64-Bit Paket akzeptiert (https://launchpad.net/~seahawk…98/+listing-archive-extra) - da wird noch im Buildlog ( https://launchpadlibrarian.net…usty_FAILEDTOBUILD.txt.gz ) das hier angeprangert:


    Hat jemand eine Idee, wie sich das lösen lässt?

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Dank dem Hinweis von gda, dass die Definitionen fehlen, weil er nicht alle nötigen Header findet, sieht der nötige Patch jetzt so aus:


    Dummerweise ist das so nicht abwärtskompatibel zu libav 8.9 aus Ubuntu precise


    Die Paket-Quellen (eventuell für die EasyVDRler, denen das Paket noch in ihrem PPA für trusty fehlt interessant) gibt es hier: https://launchpad.net/~seahawk…97/+listing-archive-extra

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Danke dafür. Wir hatten mit den ersten Versionen von trusty durchaus das Plugin erfolgreich gebaut. Nachdem das PPA vor dem Bau immer ein dist-upgrade macht baute es irgendwann nicht mehr, weshalb wir das Plugin im PPA löschten und direkt im ISO die alte Version installierten.


    Ich seh mir dass gleich an.


    Andy

  • Plugin hat im PPA erfolgreich gebaut. Nochmals Danke!!!


    Wegen Lintianwarnung habe ich die Standardsversion von 3.9.3 auf 3.9.4 hochgesetzt.


    Andy

  • Hi seahawk: funktioniert bis auf Ton. Durch Aufnahme von libswresample konnte auch das gelöst werden.


    http://www.vdr-portal.de/board…ellem-ffmpeg/#post1174842


    Andy

  • Danke für die Rückmeldung, ich hab heute erst mal nur in der VM ein paar Pakete ausprobiert, bis zur GUI bin ich noch nicht gekommen.
    Klappt das mit libswresample tatsächlich mit mit libav oder nutzt ihr ffmpeg?

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Wir nutzen soweit ich weiß ffmpeg , wenn du näheres wissen möchtest, solltest du mango kontaktieren. Wolfgang baut alle Pakete rund um VDR bei uns


    Andy

  • Hi seahawk,


    Danke für die Rückmeldung, ich hab heute erst mal nur in der VM ein paar Pakete ausprobiert, bis zur GUI bin ich noch nicht gekommen.
    Klappt das mit libswresample tatsächlich mit mit libav oder nutzt ihr ffmpeg?


    libav unterstützt ja kein swresample, also ffmpeg.
    Mit ffmpeg-2.1
    "SoftHDDevice" Depends geändert - libavcodec-dev, libavformat-dev -> libavcodec-ffmpeg-dev, libavformat-ffmpeg-dev,
    und "libswresample-ffmpeg-dev, libavutil-ffmpeg-dev" hinzugefügt Build PPA Ok & test Ton Ok, keine Mickey Mouse-Stimmen.


    Gruss
    Wolfgang

    TT S2-6400 - saa716x kompilieren unter 20.04(Focal)

  • Das habe ich gestern dann auch gemacht - dann braucht es den Patch auch nicht:)

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Also dies bedeutet das libav und ffmpeg nicht mal mehr mit den Includes kompatible sind.
    Hat denn einer von den Volldeppen ein #define FFMPEG oder #define LIBAV definiert?
    Oder wie denken sich die Volldeppen, wie man beides unterstützen soll?


    Volldeppen = Entwickler von libav und ffmpeg, mir als Verwender ist es egal wer nun im Recht oder Unrecht bei dem Fork ist.


    Johns

    Sag mir, wo die Developer sind. Wo sind sie geblieben? . . . . . . . . . . . . . . . . . . . . SoftHdDevice - A software and GPU emulated HD output device plugin.
    Sag mir, wo die Developer sind. Was ist geschehn?


    Client0: Crown CW02 MSI_C847MS-E33 Zotac_GT640_passiv Cine-S2 iMon-MCE / streamdev softhddevice
    Client1: Lian_Li_PC-Q09FB ASRock_H67M-ITX/HT I3-2100 ASUS_ENGT520_passiv / streamdev softhddevice
    Test: Lian_Li_PC-Q09R Asus C60M1-I / streamdev
    Server0: Dockstar TT-S2-3600-USB / streamdev
    Server2: Lian_Li_PC-Q07R Intel_DH61DL G620 WD20EARX 90W PicoPSU Cine-S2+DuoFlex-S2+DuoFlex-CT / streamdev / 22 Watt Verbrauch

  • Volldeppen = Entwickler von libav und ffmpeg, mir als Verwender ist es egal wer nun im Recht oder Unrecht bei dem Fork ist.

    Nachdem sich ffmpeg unter Ubuntu 14.04 mit nur wenig Aufwand parallel zu libav nutzen lässt (die Header schließen sich gegenseitig aus, aber die sind ja nur beim Bauen relevant, was auf launchpad oder in einem chroot passieren kann) sehe ich da aktuell kein echtes Problem. Du hattest ja schon angekündigt, dass du nur ffmpeg unterstützen willst und es mit libav mangels swresample nicht mehr in den höheren Versionen funktionieren wird.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Solange es noch einfach ist, lass ich den Kompatiblitätscode drin. Der Teil funktioniert nicht mehr mit ffmpeg, weil die irgendwas kaputt gemacht haben, sprich Mickymausstimmen. Bei den Letzten Tests hatte dies aber noch mit libav funktioniert.


    Scheinbar hat nun auch Ubuntu eingesehen, daß man ffmpeg auch braucht.


    Wenn ein einfaches #define gegeben hätte, dann hätte man deinen Patch ja auch noch einbauen können.
    Ich will erstmal noch eine Stabile Version releasen und dann für die Nächste den Alten Balast abwerfen.


    Johns

    Sag mir, wo die Developer sind. Wo sind sie geblieben? . . . . . . . . . . . . . . . . . . . . SoftHdDevice - A software and GPU emulated HD output device plugin.
    Sag mir, wo die Developer sind. Was ist geschehn?


    Client0: Crown CW02 MSI_C847MS-E33 Zotac_GT640_passiv Cine-S2 iMon-MCE / streamdev softhddevice
    Client1: Lian_Li_PC-Q09FB ASRock_H67M-ITX/HT I3-2100 ASUS_ENGT520_passiv / streamdev softhddevice
    Test: Lian_Li_PC-Q09R Asus C60M1-I / streamdev
    Server0: Dockstar TT-S2-3600-USB / streamdev
    Server2: Lian_Li_PC-Q07R Intel_DH61DL G620 WD20EARX 90W PicoPSU Cine-S2+DuoFlex-S2+DuoFlex-CT / streamdev / 22 Watt Verbrauch

  • Scheinbar hat nun auch Ubuntu eingesehen, daß man ffmpeg auch braucht.


    Nicht direkt, aber es gibt findige Paketbauer die es einem leicht machen diese Beschränkung auf libav zu umgehen ;)


    Für die alten libav-Versionen fände ich es gut, wenn der Kompatibilitäts-Code möglichst lange drin bleiben könnte (da hängen wir mit yaVDR 0.5 noch sehr dran).

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Zur Not gibt man selbst den define im Makefile vor USE_LIBAV bzw. USE_FFMPEG. Auf die Deppen muss man sich dann nicht mehr verlassen... :)


    Lars

  • Hab das für mich jetzt pragmatisch gelöst und "ffmpeg 1.2.5" aus Jon Severinsson's ffmpeg PPA bei mir hinterlegt. Damit baut "softhddevice" und auch "markad" unter Trusty wieder, beide funktionieren natürlich auch, nur mit dem Ton happert es noch bei SHD ... Mutti hörte sich grad an wie Minni Mouse, hab mich zwar gekugelt, aber dafür gibt es sicher eine Lösung ...


    Regards
    fnu

    HowTo: APT pinning

  • In unstable-main für trusty habe ich ein ffmpeg 2.1 Paket hinterlegt, dessen Libs parallel zu libav installiert sein dürfen, nur die Build-Depends muss man ein bisschen anpassen. Mit dem Ton hatte ich auf dem Test-System keine Probleme, allerdings fehlt mir ein passender Reciever für Passthrough.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Hmm, da möchte aus dem o.a. PPA zitieren, dessen ffmpeg Versionen ich mich immer mal wieder bedient habe:


    Zitat

    ...
    FFmpeg 0.7 is backward compatible with FFmpeg 0.6 and 0.5, as well as Libav 0.6 and 0.5; FFmpeg 0.10 is backward compatible with FFmpeg 0.8 and 0.9, as well as Libav 0.7 and 0.8; FFmpeg 0.11 is not backward compatible with any FFmpeg or Libav versions; FFmpeg 1.0 is not backward compatible with any FFmpeg or Libav versions; FFmpeg 1.2 is backwards compatible with FFmpeg 1.1, as well as Libav 9; FFmpeg 2.1 is backwards compatible with FFmpeg 2.0, but not any Libav versions.
    ...


    Es waren keinerlei (!) Anpassungen in, an, für SoftHDDevice oder markad nötig. Trusty hosted IMHO "libav 9" ...


    Regards
    fnu

    HowTo: APT pinning

    Einmal editiert, zuletzt von fnu ()

  • Das Problem bei den ffmpeg-Paketen von Jon Severinsson ist für mich, dass die erstellten ffmpeg-Pakete das gleiche Namensschema haben wie die libav-Pakete. Man kann also nur über die Paketprioritäten bestimmen, ob man ffmpeg oder libav bekommt und erhält keine Rückmeldung bei der Installation, wenn nur libav installiert ist, auch eine automatische Abhängigkeit zu libswresample (das Paket gibt es nur für ffmpeg - vielleicht ist das auch die Erklärung für den fehlenden Ton bei dir) wird nicht erzeugt:


    Die Anpassungen sind nur für die Build-Depends nötig, die Plugins und Programme selbst funktionieren ohne weitere Anpassungen mit der neuen Version (unter Arch Linux nutze ich sie ja auch schon länger mit ffmpeg 2.x).


    Aber es ist immer gut, wenn man die Funktion von softhddevice gegen die verschiedenen ffmpeg-Versionen gebaut mal miteinander vergleichen kann :)

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Ich baue die Patche gerade ins Plugin ein. Leider entsteht dann die besagte Mickymausstimme.


    Bei ffmpeg wird dies durch einen neuen Code gelöst, der libswresample verwendet.
    Die libav Lösung libavresample ist leider nicht kompatible.


    Für ffmpeg SWRESAMPLE=1 verwenden und libswresample installieren.


    Johns

    Sag mir, wo die Developer sind. Wo sind sie geblieben? . . . . . . . . . . . . . . . . . . . . SoftHdDevice - A software and GPU emulated HD output device plugin.
    Sag mir, wo die Developer sind. Was ist geschehn?


    Client0: Crown CW02 MSI_C847MS-E33 Zotac_GT640_passiv Cine-S2 iMon-MCE / streamdev softhddevice
    Client1: Lian_Li_PC-Q09FB ASRock_H67M-ITX/HT I3-2100 ASUS_ENGT520_passiv / streamdev softhddevice
    Test: Lian_Li_PC-Q09R Asus C60M1-I / streamdev
    Server0: Dockstar TT-S2-3600-USB / streamdev
    Server2: Lian_Li_PC-Q07R Intel_DH61DL G620 WD20EARX 90W PicoPSU Cine-S2+DuoFlex-S2+DuoFlex-CT / streamdev / 22 Watt Verbrauch

  • Ich baue die Patche gerade ins Plugin ein. Leider entsteht dann die besagte Mickymausstimme.


    Danke - wie sehen denn deine Pläne für die Unterstützung von libav aus? Damals hattest du ja angekündigt, dich auf ffmpeg (und libswresample) zu beschränken. Für yaVDR und easyVDR sollte die Umstellung auf ffmpeg kein größeres Problem darstellen, Nutzer der kommenden Ubuntu- und Debian-Versionen werden aber in das Problem laufen...

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!