markad & libav-9.18 Problem

  • Hallo,


    ich versuche auf Ubuntu Trusty armhf (14.04) das vdr-plugin-markad aus dem vdr-developer git zu bauen. Leider schlägt das bei der Datei decoder.cpp fehl - sieh spoiler, wohl weil die Version der von Ubuntu mitgelieferten libav-9.18/libavcodec54 nicht sauber erkannt wird und deswegen die "#if LIBAVCODEC_VERSION_INT" nicht greifen. Libavcodec.so ist Version 54.53.0 - sollte also passen und nicht im else-Zweig enden - siehe Code. Klappt die Versionsberechnung unter armhf so nicht?

    Code
    #if LIBAVCODEC_VERSION_INT >= ((54<<16)+(51<<8)+100)
    	video_context = avcodec_alloc_context3(NULL);
    #else
    	video_context = avcodec_alloc_context();
    #endif



    Danke & Gruß, ollo

  • Hi,
    Guck mal im easyvdr 2.0 git, da ist von Wolfi. M der Code compilierfähig für trusty drin....


    Gesendet von meinem HTC One mit Tapatalk 2

    Test-VDR1: HP rp5700 Fertigsystem, Core2Duo E6400, 2GB RAM, FF-SD C-2300, nvidia Slim-GT218 x1 | easyVDR 2.0 64Bit
    VDR3: in Rente

    VDR4: MSI G31M2 v2, Digitainer2-Geh., t6963c 6" gLCD, E5200, 2GB, 3TB WD Red, GT730, 2x TT S2-3200; easyVDR 3.5 64bit
    VDR5: Gigabyte
    GA-G31M-S2L, Intel E2140, Zotac GT730 passiv, Digitainer2-Geh., t6963c 6 " gLCD, 2 TB WD Red, 2x TT S2-3200 (an 1 Kabel) easyVDR 3.5 64bit
    VDR6:
    Intel E5200, GT630 passiv, F1 750 GB, t6963c gLCD, 2x TT S2-3200 | easyVDR 3.5 64bit
    VDR-User #1068
    www.easy-vdr.de

  • Hi,
    Ah
    Hatte mich schon gefragt was das eigentlich heissen sollte vor smartphone autokorrektur... Jetzt verstehe ich dass du ARM meintest....
    Ok, dann keine Ahnung...
    Gesendet von meinem HTC One mit Tapatalk 2

    Test-VDR1: HP rp5700 Fertigsystem, Core2Duo E6400, 2GB RAM, FF-SD C-2300, nvidia Slim-GT218 x1 | easyVDR 2.0 64Bit
    VDR3: in Rente

    VDR4: MSI G31M2 v2, Digitainer2-Geh., t6963c 6" gLCD, E5200, 2GB, 3TB WD Red, GT730, 2x TT S2-3200; easyVDR 3.5 64bit
    VDR5: Gigabyte
    GA-G31M-S2L, Intel E2140, Zotac GT730 passiv, Digitainer2-Geh., t6963c 6 " gLCD, 2 TB WD Red, 2x TT S2-3200 (an 1 Kabel) easyVDR 3.5 64bit
    VDR6:
    Intel E5200, GT630 passiv, F1 750 GB, t6963c gLCD, 2x TT S2-3200 | easyVDR 3.5 64bit
    VDR-User #1068
    www.easy-vdr.de

  • ... danke, aber ich habe mir schon das trusty Paket von YaVDR angesehen und dort ist nix anders.

    Das liegt daran, dass das Paket nicht gegen die libav aus den Ubuntu-Quellen gebaut wird, sondern gegen ein ffmpeg-Paket aus unstable-main. IIRC musste ich da auch eingreifen, als ich das markad-Paket das erste mal gegen libav gebaut hatte.

    Libavcodec.so ist Version 54.53.0

    Dann wäre das Paket ja neuer als das für i386 und x64, da gibt es nur eine /usr/lib/x86_64-linux-gnu/libavcodec.so.54.35.0: http://packages.ubuntu.com/tru…d64/libavcodec54/filelist
    Was steht denn in der /usr/include/libavcodec/version.h aus dem Paket libavcodec-dev?
    Bei den regulären Paketen für trusty steht da

    Code
    #define LIBAVCODEC_VERSION_MAJOR 54
    #define LIBAVCODEC_VERSION_MINOR 35
    #define LIBAVCODEC_VERSION_MICRO  0
    
    
    #define LIBAVCODEC_VERSION_INT  AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
                                                   LIBAVCODEC_VERSION_MINOR, \
                                                   LIBAVCODEC_VERSION_MICRO)

    Da wäre klar, warum er im else-Zweig landet.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • ... ich nehme alles zurück und behaupte das Gegenteil ?( Die libavcodec ist tatsächlich v54.35.0 :rolleyes:


    Wenn ich nun aber den Check bzgl. avcodec_alloc_context bzw. avcodec_alloc_context3 für video_context anpasse, bleiben immernoch die Fehler bei av_free(video_context). Da hilft es in command/decoder.h die <libavutil/mem.h> zu includieren, allerdings als extern "C". Dann das gleiche Spiel hier nochmal und es kompiliert :]



    Gruß, ollo

Participate now!

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