[markad] überarbeiteter Decoder

  • Ich bekommen einen Bus-Zugriffsfehler.



    Ich benutze folgendes:




    Code
    00-markad-libavcodec58-V0-01.diff
    01-markad-Makefile-V0-06.diff
    02-deprecated-V0-04.diff
    03-markad-decoder-V0-58.diff
  • Hallo hondansx ,

    das war ja mal eine vorbildliche Fehlerbeschreibung. Hier mal eine erste Analyse:

    Code
    /usr/bin/markad_fehler --loglevel=3 -R -vvvv  - /video/@video/video0/Der_Bachelor/Folge_1/2020-01-08.20.13.2-0.rec/

    Du nutzt gar nicht den neuen Decoder von mir, sondern den ursprünglichen. Ich habe schon lange nicht mehr mit dem originalem Decoder getestet, das Log File sieht gar nicht so aus, wie ich es erwarten würde.

    Aber kein Problem, einen Crash dürfe es trotzdem nicht geben. Soweit es mir möglich und vom Aufwand sinnvoll ist, versuche ich mich auch da an Fehlerbehebungen. Ich schaue mir das mal im Laufe des Wochenendes an.

    Ich habe einen Timer gesetzt auf die nächste Sendung aus deinem Test, bitte nehmen die Sendung vom nächsten Mittwoch 20:15 auch auf, dann können wir das direkt vergleichen.

    Du hast unter Debian eine ältere libavcodec Version, wie ich unter Ubuntu ( libavcodec 57.107.100 / 57.107.100), das könnte auch eine mögliche Ursache sein. Ich werde versuchen, ob ich ein Debian installiert bekomme.

    Bitte teste nochmals mit dem neuen Decoder, da ist dann auch das Log ausführlicher. Das Log File dazu posten reicht dann für mich.

    Code
    markad --loglevel=3 --astopoffs=0 --cDecoder --log2rec nice <Pfad zum Recording>
  • Hallo hondansx ,

    unter Ubuntu 18.04 kann ich dein Problem nicht reproduzieren. Ich habe mir mal schnell ein Debian Buster installiert, das sieht bei mir dann aber ganz anders aus.

    Code
    cat /etc/debian_version
    10.2

    Damit kompiliert es bei mir nicht mal, aber das würde sich einfach fixen lassen.

    Hast du absichtlich ältere avcodec libs installiert ?

  • Debian Buster hat libavcodec 58.35.100. Musste da in decoder.cpp leicht anpassen damit es kompiliert hat:


    VDR: Zotac ZBOX EN860, 16GB RAM, 2 TB HDD, Debian Bookworm, vdr-2.4.1, softhdcuvid, satip

  • Hallo Xcoder ,

    so habe ich das auf meiner Debian Buster Test Server auch gemacht. hondansx hat aber eine viel ältere libavcodec drauf, vermutlich weil dies die letzte war, mit der der ursprüngliche Code kompiliert hat. Da macht es auch keinen Sinn mehr, darin Fehler zu suchen.

    hondansx : Am besten die aktuelle libavcodec installierten und den angepassten Patch in Anhang verwenden.

  • Bitte teste nochmals mit dem neuen Decoder, da ist dann auch das Log ausführlicher. Das Log File dazu posten reicht dann für mich.

    Code
    markad --loglevel=3 --astopoffs=0 --cDecoder --log2rec nice <Pfad zum Recording>


    Mit dem neuen Decoder läuft es durch, aber es wird keine marks Datei erstellt.

  • kfb77 sind die neuen diff's allgemein oder speziell erst mal für Debian?

    Gruß utiltiy



    VDR Projekte VDR Projects

  • Hallo utiltiy ,

    die neuen diff's unterschieden sich nur in der libavcodec Version Nummer in den Compiler Direktiven. Sie haben sonst keinen Unterschied und somit keine Auswirkung für Ubuntu. Wenn man kein Debian Buster hat, lohnt es sich nicht, sie zu verwenden, sie stören aber auch nicht.

  • Hallo hondansx ,

    laut deinem Log kann libavcodec nicht mal intern einen Buffer allokieren um die Frames zu dekodieren. Dann kann es auch keine Marken geben.

    Code
    cDecoder::GetFrameInfo(): av_frame_get_buffer failed rc=-22

    Ich habe den Fehler unter Debin Buster mit aktuellen libavcodec nicht. Also am besten, wie du schon geschrieben hast, erst mal einen Update machen und dann nochmal testen.

  • Sie haben sonst keinen Unterschied und somit keine Auswirkung für Ubuntu.

    OK, das gilt dann wohl auch für Arch, deswegen war meine Nachfrage.

    Gruß utiltiy



    VDR Projekte VDR Projects

  • Bei meinem PI mit Raspbian Buster kompiliert er das Plugin aber er installiert das eigentliche markad nicht.

    Code
    Jan 12 16:33:08 raspberrypi vdr: [16873] initializing plugin: markad (0.1.6 (ea2e182)): Markiere Werbung
    Jan 12 16:33:08 raspberrypi vdr: [16873] markad: cannot find /usr/bin/markad, please install

    RPI3, DVB-Sky S960, VDR 2.4.4, Raspbian Jessie, Onkyo AV Receiver, Panasonic Plasma.

  • Asta

    der hat markad nicht installiert, weil er es gar nicht bauen konnte. Du hast zahlreiche Fehler beim Kompilieren bekommen. Ich vermute dir fehlen einige libs.

    Code
    apt-cache policy libavcodec-dev
    apt-cache policy libavformat-dev
    apt-cache policy libavutil-dev

    Wenn einer diese Befehle "Installed: (None)" ausgibt, die fehlenden libs über apt-get install libav… installieren.

    Dann nochmal "make clean && make all" und darauf achten, dass keine Fehlermeldungen kommen, ggf. die Fehlermeldungen von "make all" posten.

  • libavcodec-dev:

    Installiert: 7:4.1.4-1+rpt1~deb10u1

    Installationskandidat: 7:4.1.4-1+rpt1~deb10u1


    libavformat-dev:

    Installiert: 7:4.1.4-1+rpt1~deb10u1

    Installationskandidat: 7:4.1.4-1+rpt1~deb10u1


    libavutil-dev:

    Installiert: 7:4.1.4-1+rpt1~deb10u1

    Installationskandidat: 7:4.1.4-1+rpt1~deb10u1


    Die Ausgabe von "make all" bekomme ich nicht vollständig kopiert. Es sind zu viele Zeilen für mein putty.

    RPI3, DVB-Sky S960, VDR 2.4.4, Raspbian Jessie, Onkyo AV Receiver, Panasonic Plasma.

    Einmal editiert, zuletzt von Asta ()

  • Asta

    wow, das hätte ich nicht erwartet.

    Ich habe nochmals tiefer in die Glasgugel reingeschaut: Da muss beim Anwenden der Patches was schief gegangen sein. Poste mal bitte aus dem Verzeichnis ".../PLUGIN/src/markad/command" das "Makefile".

    Laut deiner make Ausgabe fehlt "decoder_new.o" und "-lavformat". Die Änderung im Makefile kommt mit dem letzten Patch. Hast du die Patches in numerischer Reihenfolge angewendet ?

    Code
    g++ -g -rdynamic -O3 -funroll-loops -Wall -Wextra -Woverloaded-virtual -Wno-parentheses  markad-standalone.o decoder.o marks.o streaminfo.o video.o audio.o demux.o  -lavcodec -lavutil -pthread -o markad


    Sollte aber so aussehen (andere Compiler Options sollten egal sein):

    Code
    g++ -g -O2 -fdebug-prefix-map=/build/vdr-hON7XR/vdr-2.4.0=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE  markad-standalone.o decoder.o marks.o streaminfo.o video.o audio.o demux.o decoder_new.o -lavcodec -lavutil -lavformat -pthread -o markad

Jetzt mitmachen!

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