[markad] überarbeiteter Decoder

  • Kannst du für cppcheck inline suppresssions aktivieren?

    Ja, ist jetzt drin, geht dann auch fehlerfrei mit Ubuntu 22.04.

    Aber mit Ubuntu 20.04 kommt der Fehler trotzdem weiterhin:

    Code
    cppcheck --enable=all --inline-suppr --suppress=missingIncludeSystem --suppress=unusedFunction:plugin/markad.cpp --suppress=unusedFunction:plugin/status.cpp -DLIBAVCODEC_VERSION_INT=3763044 -DDEBUGMEM=1 --error-exitcode=1 . > /dev/null
    command/win32/localtime_r.cpp:17:13: portability: Assigning a pointer to an integer is not portable. [AssignmentAddressToInteger]
      errno_t r = localtime_s(buf, timer); // cppcheck-suppress AssignmentAddressToInteger
                ^
    make: *** [Makefile:76: cppcheck] Fehler 1

    Zum selber testen: Der Aufruf kommt aus dem Makefile mit "make cppcheck"


    Edit: Bei der Version von cppcheck aus Ubuntu 20.04 muss das cppcheck-suppress in einer eigenen Zeile davor stehen.

  • Sehr schräg. Aber jetzt ist auch 20.04 ok?

  • Cool. :)


    Was mir gerade auffällt, diese Änderungen sehen verdächtig aus.

    Code
                    if ((strlen(optarg) + 1) > sizeof(config.markFileName)) {
                        fprintf(stderr, "markad: mark file name too long: %s\n", optarg);
                        return 2;
                    }
                    strncpy(config.markFileName, optarg, sizeof(config.markFileName) - 1);
                    config.markFileName[strlen(optarg) + 1] = 0;

    Nach dem if() { } check

    - passt die string länge in jedem Fall und es kann einfach strcpy verwendet werden. strcpy(config.markFileName, optarg)

    - ist diese Zeile überflüssig, weil schon von strncpy nullterminiert, war ja genug Platz:

    Code
    config.markFileName[strlen(optarg) + 1] = 0;
  • Ich wünsche euch allen einen guten Rutsch ins neue Jahr.

    Es gibt noch die letzte Version für das alte Jahr:

    Die Version 3.1.0 ist auf vdr-plugin-markad verfügbar. Seit langem mal wieder ein Feature Release. Vielen Dank an wirbel für seine Anpassungen um markad auch unter Windows zum Laufen zu bekommen.

    Code
    - new feature: compilable under Windows with MinGW-w64 (written by wirbel@vdr-portal)
    - new feature: optimize channel start mark with near blackscreen
    - optimize search for undetected info logo before end mark
    - some minor bug fixes and optimizations, see git
  • Die Version 3.1.1 ist auf vdr-plugin-markad verfügbar.

    Das erste Bugfix Release enthält eine Fehlerbehebung beim Ermitteln der Marken über die Anzahl der Tonkanälen, den ich leider bei den Tests der 3.1.0 übersehen habe.

    Code
    2023-01-09: Version 3.1.1
    - fix unintentionally deletion of channel stop mark
    - some minor bug fixes and optimizations, see git
  • wirbel

    ich habe in deinem fork noch einen commit gefunden, der mich an eine Altlast erinnert hat. Ich habe mich mal daran bedient, mit einer kleinen Änderung: der Link version.h -> ../version.h muss bleiben.

  • Aber gerne doch. :)

  • Ein Hinweis für alle, die lang abgehangene Betriebssysteme lieben: ffmepg Version kleiner als 2.7.2 (z.B. aus Debian 8 oder Rasbian Jessie), welches schon lange beim Build als "deprecated" gemeldet wird, wird ab der nächsten markad Version nicht mehr unterstützt. Ab der nächsten markad Version ist für den Build mindestens ffmpeg 2.7.2 (z.B. aus Ubuntu 14.04, easyvdr V3) Voraussetzung.

  • Die Version 3.2.0 ist auf vdr-plugin-markad verfügbar.

    Code
    - end of support for libavcodec < 56.57.100 (ffmpeg 2.4)
    - new feature: detect frame in recording to optimize detection of "advertising in frame with logo" before start or after logo stop
    - some minor bug fixes and optimizations, see git

    Wie schon angekündigt wurde der Support für ffmpeg 2.4 entfernt. Man muss auch mal durchfegen im Code ...

    ffmpeg 2.7.2 (Ubuntu 14.04 / yaVDR 0.6 / easyVDR 3) wird voraussichtlich noch bis April 2024 drin bleiben. Wenn danach der Support für Ubuntu 14.04 endgültig ausläuft, werde ich auch da aufräumen. Also nach 10 Jahren bitte mal wieder einen Update einplanen. ;)


    Mir sind bei Test schon eine Weile Fehlerkennungen bei dem Thema "Werbung im Rahmen mit Logo" aufgefallen. Das sollte sich jetzt merklich verbessert haben.

  • Die Version 3.2.1 ist auf vdr-plugin-markad verfügbar.

    Code
    2023-03-23: Version 3.2.1
    - fix encoder for libavcodec >= 59.25.100 (ffmpeg >= 5.1)
    - fix memory leaks, out-of-bounds array access and uninitialized value access reported by valgrind
    - some minor bug fixes and optimizations, see git

    Unter den "kleinen Bugfixes" sind vor allem Fehlerbehebungen für die in der 3.2.0 neu eingeführte Funktion der Rahmenerkennung.

  • Ich wünsche euch allen frohe Ostern und natürlich gibt es auch eine markad Oster Version dazu:

    Die Version 3.2.2 ist auf vdr-plugin-markad verfügbar.

    Code
    -  rewrite plugins epg handler
       use VPS start from next event to signal VPS stop of running recording
       needed for channels who do not send VPS stop events
       same as VDR self handle this case
       thx to MarkusE@vdr-portal.de for reporting
    - some minor bug fixes and optimizations, see git

    Damit müsste nun die "VPS light" Funktion für alle Sender sowohl mit, als auch ohne epg2vdr funktionierten. Zur Erinnerung: Damit kann markad den Start und das Ende der Aufnahme auf die VPS Events legen, falls in der Aufnahme nichts besseres gefunden wurde (z.B. bei Doppelfolgen).

    Darüber hinaus nutzt das Live Plugin noch die Infos um festzustellen, ob eine Aufnahme vollständig war.

  • Die Version 3.2.3 ist auf vdr-plugin-markad verfügbar.

    Code
    2023-04-16: Version 3.2.3
    - declare ffmpeg < 4.2.7 as deprecated
    - optimize detection of colored logo on same color background
    - optimize frame detection used by search for advertisement in frame with logo
    - some minor bug fixes and optimizations, see git
  • Die Version 3.2.3 ist auf vdr-plugin-markad verfügbar.

    Code
    - declare ffmpeg < 4.2.7 as deprecated

    das bedeutet focal ist Minimum, mit meinem 7:2.8.15-0ubuntu0.16.04.1 bin ich da jetzt raus?

    CKone: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G540, 2x 2GB Kingston DDR3, Zotac GT630 1GB, S2-1600, Ocz Agility 3 60GB, LG GH24NS DVD, 15.6" Selbstbau TFT, Harmony 665, CIR Selbstbau - das Ganze im Silverstone SST-SG03B
    CKtwo: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G1610, 2x 2GB Corsair DDR3, Zotac GT630 1GB, TT S2-1600, Ocz Vertex 2 50 GB, 92 Kanal Seduatmo, Harmony 665, atric USB
    CKthree: yavdr-ansible/22.04 LTS/2.6.1/kodi19.3 auf Intel NUC, Celeron J4005, UHD Graphics 600, 4GB Crucial DDR4, Ocz Vertex2 50 GB, Harmony 350

    PowerEdge: Ubuntu Server 16.04 LTS / VDR 2.4.1 auf Dell PowerEdge T20, Xeon E3-1225 v3, 16GB ECC DDR3, 2x Cine S2 V6 mit Duoflex, Samsung 840 EVO 120GB, 3x WD White WD80EZAZ 8TB in SW Raid5



  • Nein, ganz raus wird es voraussichtlich erst sein, wenn 16.04 End of life ist. Also in 3 Jahren.

    Das bedeutet erstmal nur, dass ich damit nicht mehr teste und es neue Features im Decoder und Encoder möglicherweise dafür nicht mehr geben wird. Aber wenn du mir ein Problem meldest, kümmere ich mich die nächsten 3 Jahre noch darum. Aktuell hat ja sogar noch Ubuntu 14.04. den gleichen Status. Siehe auch Wiki.

    Es gibt jetzt beim Build eine warning, mehr nicht. Ich möchte damit rechtzeitig (3 Jahre Vorlauf) erinnern, mal einen Update durchzuführen.

    Einmal editiert, zuletzt von kfb77 ()

  • Hi,

    Super. Das klingt sehr gut! Ich hab ja leider sehr wenig Hoffnung easyvdr v5 noch zum Laufen zu bringen mit Softhddevice und Gt730 ohne Falschfarben OSD...

    Deshalb verharre ich ja bei 14.04. Ich versuche es heute noch einmal zu testen.

    MfG Stefan

    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

  • Deshalb verharre ich ja bei 14.04.

    Damit wird aber April 2024 das Ende für markad erreicht sein. Irgendwann muss ich mal die ganzen Sonderbehandlungen los werden, sonst kann man den Code nicht mehr lesen. Das gilt auch für VDR 2.2. (8 Jahre alt), der dann auch raus fliegen wird.

  • wobei es hier wohl noch was gäbe... https://launchpad.net/~savoury…ield.series_filter=xenial


    müsste man mal schauen wo das sonst noch auf dem vdr Server benutzt wird, vermutlich nirgends.


    [EDIT]

    es gibt für xenial einen 3.2.4 bei yavdr welchen ich eh schon installiert hatte

    Packages in “unstable-main” : unstable-main : “yaVDR” team


    von daher vermutlich alles oki

    CKone: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G540, 2x 2GB Kingston DDR3, Zotac GT630 1GB, S2-1600, Ocz Agility 3 60GB, LG GH24NS DVD, 15.6" Selbstbau TFT, Harmony 665, CIR Selbstbau - das Ganze im Silverstone SST-SG03B
    CKtwo: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G1610, 2x 2GB Corsair DDR3, Zotac GT630 1GB, TT S2-1600, Ocz Vertex 2 50 GB, 92 Kanal Seduatmo, Harmony 665, atric USB
    CKthree: yavdr-ansible/22.04 LTS/2.6.1/kodi19.3 auf Intel NUC, Celeron J4005, UHD Graphics 600, 4GB Crucial DDR4, Ocz Vertex2 50 GB, Harmony 350

    PowerEdge: Ubuntu Server 16.04 LTS / VDR 2.4.1 auf Dell PowerEdge T20, Xeon E3-1225 v3, 16GB ECC DDR3, 2x Cine S2 V6 mit Duoflex, Samsung 840 EVO 120GB, 3x WD White WD80EZAZ 8TB in SW Raid5



    2 Mal editiert, zuletzt von CKone ()

  • Oder gleich selber bauen (alle Befehle als root):

    cd /usr/src

    git clone https://github.com/FFmpeg/FFmpeg

    cd FFmpeg

    git checkout n4.4.2 # bitte nicht den aktuellen master Stand aus dem git verwenden, sondern eine getaggte Version

    # am besten die von Ubuntu 22.04, da ich auf der entwickle

    ./configure --enable-libx264 --enable-gpl

    make all

    make install

Jetzt mitmachen!

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