markad-plugin (noad) -> Alpha Testversion

  • Quote

    Originally posted by wilderigel
    ja, dass:


    thx. dafuer laeuft's aber eh schon ganz gut. bin zufrieden :)

    produktiv: intel dh67bl, sat>ip, octopusnet, 16gig boot-ssd, yavdr 0.6.1, cir lirc
    testing: zotac ion-f itx, 1x tt s2-3600 usb, 8gig boot-ssd, yavdr 0.5 testing
    tv: samsung 75" amp:denon avr-x1300

  • Hi,


    Quote

    Original von FireFly
    Das hat sich wohl kürzlich wieder geändert, so dass das DECLARE_ALIGNED von internal.h zurück nach mem.h gewandert ist, siehe http://lists.mplayerhq.hu/pipe…log/2009-July/023583.html


    Mit dieser Änderung kompiliert es jetzt auch bei mir durch.


    Danke dir für den Hinweis, mit einen Update auf die letzte SVN Version läuft es wieder ...



    Quote

    Original von uxtuner
    libvdr-noad.so.1.7.9: undefined symbol: av_init_packet


    Sehr wahrscheinlich stimmt bei einer derartigen Meldung deine "DEV"-Version nicht mit der Runtime-Version über ein.
    Check doch mal per ldd ob die richtigen Bibliotheken verwendet werden.
    Vielleicht sind ja mehrere Versionen von ffmpeg installiert und die Suchreihenfolge stimmt nicht zwischen /usr/lib bzw. /usr/local/lib


    z.B.
    # ldd /opt/vdr/lib/libvdr-noad.so.1.6.0
    linux-gate.so.1 => (0xb80d7000)
    libavcodec.so.52 => /usr/local/lib/libavcodec.so.52 (0xb777e000)
    libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb7690000)
    libm.so.6 => /lib/i686/cmov/libm.so.6 (0xb7669000)
    libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb765c000)
    libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb7501000)
    libavutil.so.50 => /usr/local/lib/libavutil.so.50 (0xb74ef000)
    libz.so.1 => /usr/lib/libz.so.1 (0xb74da000)
    libmp3lame.so.0 => /usr/local/lib/libmp3lame.so.0 (0xb7460000)
    libvorbisenc.so.2 => /usr/lib/libvorbisenc.so.2 (0xb7366000)
    libvorbis.so.0 => /usr/lib/libvorbis.so.0 (0xb733e000)
    libxvidcore.so.4 => /usr/lib/libxvidcore.so.4 (0xb71d3000)
    libpthread.so.0 => /lib/i686/cmov/libpthread.so.0 (0xb71ba000)
    /lib/ld-linux.so.2 (0xb80d8000)
    libogg.so.0 => /usr/lib/libogg.so.0 (0xb71b5000)

  • hi,


    bei meiner suse 10.2 hat er die variable CPU_COUNT nicht gefundne und immer abgebrochen, habe sie dann im code auf 2 bzw. 1 gesetzt und konnte compilieren aber bei hd aufnahme kam die eHD bei der dekodierung immer ins stocken (Anixe HD)

  • Hi!


    Die Definition von SYS_DVBS2 in recv.h, falls es nicht definiert ist, wird denke ich so nicht funktionieren. Das ist ja eine Enumeration und kein Define in frontend.h.


    Sollte das ev. besser über die DVB-Api abgefragt werden? Bei DVBS2 ist DVB_API_VERSION = 5, weiß nicht wie das beim Multiproto war/ist bzw. ob man den überhaupt noch unterstützen sollte?


    In recv.h musste ich übrigens auch das folgende einfügen (wie schon hier im Thread erwähnt), dass noad kompiliert:

    Code
    #ifndef __RECV_H
     #define __RECV_H
    
    
    +#define __STDC_CONSTANT_MACROS
    +#ifndef DECLARE_ALIGNED
    +#define DECLARE_ALIGNED(n,t,v) t v __attribute__ ((aligned (n)))
    +#endif


    Gruß,
    Brougs78

    - -- --- ================================================================ --- -- -
    Antec Fusion, Intel E5200, Asus P5N7A-VM (VDPAU), DD CineS2 v6 + DD DuoFlex CI // yavdr-0.6.1
    - -- --- ================================================================ --- -- -

  • Quote

    Original von FireFly


    Das hat sich wohl kürzlich wieder geändert, so dass das DECLARE_ALIGNED von internal.h zurück nach mem.h gewandert ist, siehe http://lists.mplayerhq.hu/pipe…log/2009-July/023583.html


    Mit dieser Änderung kompiliert es jetzt auch bei mir durch.


    Danke für den wertvollen Link, jetzt klappt es auch bei mir. :arme


    Gruß,
    Alex

    Server: CPU J1900 | 1x CineS2 | Debian Bullseye headless| VDR 2.6.3
    Client: 2x Himbeere mit vdr

  • Brougs78


    Quote

    Sollte das ev. besser über die DVB-Api abgefragt werden? Bei DVBS2 ist DVB_API_VERSION = 5, weiß nicht wie das beim Multiproto war/ist bzw. ob man den überhaupt noch unterstützen sollte?

    SYS_DVBS2 wird erst seit VDR 1.7.2 verwendet, aber scheinbar haben viele die VDR 1.7.0 noch so unheimlich gern. Ich habe aber mal was reingebastelt ;) Übrigens verwende ich selbst nur einen VDR 1.6.0 ...


    @HG88


    Quote

    aber bei hd aufnahme kam die eHD bei der dekodierung immer ins stocken (Anixe HD)

    Im Logfile sind aber keine Fehler "error decoding video"? Ansonsten muss man sich klar sein, das bei H264 eine zusätzliche Softwaredekodierung vorgenommen wird. Geplant ist von mir, Eintellungen pro Kanal machen zu können (wie bei meinem infosatepg-Plugin), also z.B. nur Video oder nur Audio-AC3 oder ... muss man mal schauen was da Sinn macht, evtl. sogar noch einen Offline-Teil. Der wäre dann aber Dateiformatabhängig, was natürlich nicht so schön wäre.


    @All


    Danke für die #defines und die Tipps zu den unterschiedlichen ffmpeg-Versionen (was für ein Chaos) habe alles in der recv.h untergebracht.


    Habe noch etwas in pes2audioes gefunden, also nicht wundern, wenn ac3 oder mp2 nicht immer funktioniert.


    Gruß


    Joe_D

  • Mal ne ganz blöde Frage....


    mit meinem ffmpeg-0.4.9-3.pre1 kann ich wohl nciht mitspielen, oder?


    Weil son "libavcodec.pc" kann ich nirgends finden...


    Minimale Requirements wären gut!


    Gruß Christian

    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



  • Ok, ich hab gerade nochmal geschaut.


    also dieses *.pc packageconfig file hab ich nciht, deshalb musste ich auch im Graphtft Makefile immer den Pfad manuell setzen.


    FFMDIR = /usr/include/ffmpeg
    HAVE_AVCODEC = 1


    Von daher wird das mit der automatischen Erkennung beir mir nix werden.


    Ansonsten hab ich die libs in /usr/lib.


    Kann ich das Makefile so modifizieren das es klappt?


    Christian

    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



    Edited once, last by CKone ().

  • Hi!


    Wird derzeit eigentlich jedes Frame analysiert? Weil auf HD-Kanälen führt das ja zu einer hohen CPU-Last. Könnte man das ev. reduzieren, dass nur jedes I-Frame analysiert wird oder noch weniger?


    Auf jeden Fall toll dass es wieder ein noad für die aktuelle VDR-Version gibt :]


    Gruß,
    Brougs78

    - -- --- ================================================================ --- -- -
    Antec Fusion, Intel E5200, Asus P5N7A-VM (VDPAU), DD CineS2 v6 + DD DuoFlex CI // yavdr-0.6.1
    - -- --- ================================================================ --- -- -

  • frage zur funktionsweise:
    das plugin muss augenblicklich bei der aufzeichnung entscheiden ob ne marke sein muss oder nicht?
    hat also keine nachlaufzeit um das zu entscheiden mit zeug was danach kommt?

  • CKone


    Quote

    Minimale Requirements wären gut!

    Ich persönlich entwickle unter Debian SID, das kann ich aber unmöglich als Minimal ansetzen, denn damit würde ich ja 95% der Leute aussperren. Im Endeffekt ist nur ffmpeg problematisch, da hier alles so fliessend ist.


    Klar kannst Du das Makefile so abändern, das es bei Dir funktioniert.


    Brougs78


    Bislang wird immer jedes Frame dekodiert und auch analysiert. Das Dekodieren kann man IMHO nicht reduzieren, sehrwohl die Analyse. Wie schonmal geschrieben habe ich da vor Einstellungen anzubieten. Zuvor muss aber erstmal das Grundgerüst stehen.


    Quote

    Auf jeden Fall toll dass es wieder ein noad für die aktuelle VDR-Version gibt

    Naja, es ist ja gar kein "richtiges" noad, nur ein Feldversuch und ein Rahmen um anderen Leuten ein Mitarbeiten zu ermöglichen. Ich bin nämlich kein Bildverarbeitungs-Crack. Auch das ganze TS/PES-Parsen und Dekodieren habe ich mir mühsam aneignen müssen.


    wilderigel


    Ja, das Plugin muss sofort entscheiden ob eine Marke gesetzt werden muss oder nicht. Es können aber alte Marken verschoben werden. Das wird z.B. gemacht wenn kurz nach der Timer/Event-Startmarke eine AspectRatio-Änderung auftritt. Dann wird die Startmarke auf das AspectRatio-Ereignis gesetzt.


    Was schwierig Online möglich sein wird ist z.B. ein Bildvergleich zweier Schnittmarken um Überlappungen zu erkennen.


    Vorteil der Online-Version: Absolut unabhängig vom geschriebenen Dateiformat. Deshalb funktioniert die Version ohne Probleme mit 1.6.x und 1.7.x. Im Code gibt es hierfür nur eine einzige Stelle an der eine Unterscheidung gemacht werden muss (für H264). Ansonsten ist alles gleich.


    Nachteil ist aber, das Vergangenes nicht einfach nachanalysiert werden kann und das das Dekodieren zusätzliche Last erzeugt.


    Gruß


    Joe_D

  • Joe_D


    wie kommen der Sache näher. Das FFMPEG scheint er mit


    Code
    FFMDIR = /usr/include/ffmpeg INCLUDES += -I$(FFMDIR) -I$(FFMDIR)/libavcodec


    jetzt zu schlucken, jetzt kommt das hier.


    Code
    make[1]: *** Keine Regel vorhanden, um das Target »vdr/plugin.h«,    benötigt von »noad.o«, zu erstellen.  Schluss.


    System wie gesagt SuSE 10, schon 3 Tage älter.


    Danke schon mal,
    Christian

    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



  • Quote

    Original von Joe_D
    Vorteil der Online-Version: Absolut unabhängig vom geschriebenen Dateiformat. Deshalb funktioniert die Version ohne Probleme mit 1.6.x und 1.7.x. Im Code gibt es hierfür nur eine einzige Stelle an der eine Unterscheidung gemacht werden muss (für H264). Ansonsten ist alles gleich.


    Nachteil ist aber, das Vergangenes nicht einfach nachanalysiert werden kann und das das Dekodieren zusätzliche Last erzeugt.


    hmm, hast du vor das (natürlich erst wenn das grundgerüst steht) auch auf offline-version umzubauen?
    das problem bei online ist bei mir eine äusserst schwache CPU (VIA C3 1GHz), wo ich an sowas wie online nicht mal nachdenken darf. Offline hat bei mir unter vdr 1.6.0 das klassische noad immer hervorragende dienste geleistet, der große vorteil war da in meinen augen immer, dass nach der aufnahme mit entsprechend niedrigster priorität die aufnahme analysiert wurde une das entsprechende cutfile erstellt wurde. da ist mir das immer mehr oder weniger egal gewesen, wenn es nochmal 3h nach der aufnahme gewerkelt hat ...


    nichts desto trotz: danke für deine bisherige arbeit! :)


    >>>Cyber

    Hardware: Lex Twister (CI945A), Core2Duo T7200 (2x2.0GHz), 2GB SO-DDR2, 2x8GB SSD & 2x2TB WD SATA-HDD (jew. RAID1), Terratec Cinergy 1200 DVB-C
    Software: Debian Squeeze, Kernel 3.6.6
    VDR: etobi's vdr (1.7.X), recording-only; plugins: streamdev-server,dummydevice; addons: XXV, markad, projectX

  • Also bei mir läufts, hab kurzer Hand die letzte svn vom ffmpeg installiert. Ein Test nach einem Film heute sah ganz gut aus.

    - Client1: Thermaltake DH 102 mit 7" TouchTFT * Debian Stretch/vdr-2.4.0/graphtft/MainMenuHooks-Patch * Zotac H55-ITX WiFi * Core i3 540 * 4GB RAM ** Zotac GT630 * 1 TB System HDD * 4 GB RAM * Harmony 900 * satip-Plugin

    - Client2: Alfawise H96 Pro Plus * KODI
    - Server: Intel Pentium G3220 * DH87RL * 16GB RAM * 4x4TB 3.5" WD RED + 1x500GB 2.5" * satip-Plugin
    - SAT>IP: Inverto iLNB

  • @All


    Hier ist es ja so still? Das Ding kann doch fast nichts ;)


    Ich habe das Plugin jetzt umbenannt in MarkAd, da es in Umfang und Funktionalität IMHO nicht an noad herankommt.


    Morgen oder übermorgen gibt es dann die erste "Grundversion", bei der das Demuxen (cMarkAdDemux), Dekodieren (cMarkAdDecoder), die Bildanalyse (cMarkAdVideo) und die Tonanalyse (cMarkAdAudio) auch Standalone verwendet werden können.


    Die Bild- und Tondaten selbst werden in einem eigenen Kontext gespeichert, der unabhängig von der libavcodec ist (oder vom VDR). Dadurch ist man dann vollständig "frei" und nicht auf einen AVCodecContext oder ein AVFrame angewiesen.


    Zudem hat die libavcodec dann nur noch Bindungen in cMarkAdDecoder, es wäre also vorstellbar durch Austausch dieser Klasse einen anderen Dekodierer zu verwenden. Testweise habe ich ein HAVE_AVCODEC-Define hinzugefügt mit dem man das Dekodieren komplett an- oder abschalten kann.
    Manche Informationen lassen sich zudem allein aus dem Parsen des Bitstroms herausfinden (z.B. Tonkanäle bei AC3 oder AspectRatio, Frametype bei Video). Für H264 bräuchte ich aber noch Informationen, vor allem wie der generelle Aufbau der PES-Pakete dort aussieht, also SequenceHeader, PictureHeader, etc. pp. (für H262 gibt es exzellente Quellen).


    Gruß


    Joe_D

  • @Chrissi1993


    Klar kann man das mit VDR1.6 nutzen, ich selbst entwickle es ja unter VDR1.6.


    Die 1.7.x-Unterstützung ist nur dem Umstand zu verdanken, das ich eben nicht die Aufnahmedateien untersuche sondern den Datenstrom wie er empfangen wird. Und da gibt es zwischen 1.6 und 1.7 keine Unterschiede.


    Gruß


    Joe_D


    P.S: Auf http://projects.vdr-developer.org/projects/show/plg-markad gibt es jetzt eine Projekt-Homepage (ist aber noch leer)

Participate now!

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