Beiträge von jojo61

    Ulrich ja SD geht nicht. Das scheint mir an CUDA zu liegen. Hier muss ich wohl noch einen Thread zum abholen der Frames einbauen. Da habe ich schon stundenlang gesucht und nicht gefunden woran es liegt. Die Frames kommen total unregelmäsig vom decoder und dann spinnt die synsconisation.

    Das Radio Plugin habe ich nicht.. muss mal sehen ob ich das mal ausprobiere. Die Skalierung ist auch absicht Ich schaue eh immer nur in Fullscreen auf meinem Beamer. Das ist aber leicht zu beheben.


    biggsmann Versuche mal die Pfade deiner Lib in das Makefile zu schreiben mit -L/usr/local/lib evtl. auch -L/usr/local/lib/libav...


    mfg

    Jojo61

    Hallo Biggsmann

    ok entferne mal das -DUSE_VDPAU unud das -DUSE_VAAPI aus dem Makefile. Und dann schau dir mal die Librarys die bei meinem ldd mit gebunden sind und prüfe ob die bei dir vorhanden sind. Mich wundert das bei dir nix aus /usr/lib64 abgebunden wird. Wo liegen bei dir die libav* libraries ?

    Welche distro setzt du ein ?


    mfg

    jojo61


    PS: bei fehlenden includes bricht der Compiler immer ab

    hier mal das ldd von mir:

    biggsmann Ich habe dir mal einen Compileraufruf angehängt damit du siehst welche Flags ich beim compilieren habe. Ich denke dir fehlt da etwas und er compiliert nicht alles was du brauchst. Hier das Beispiel für audio.c aber das gilt für alle anderen Files auch:


    cc -g -O3 -Wdeclaration-after-statement -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -I/usr/include -I/usr/src/vdr/vdr-2.2.0/include -I/usr/include/alsa -I/usr/include/libdrm -I/usr/local/cuda/include -I./opengl -I./ -DPLUGIN_NAME_I18N='"softhdcuvid"' -D_GNU_SOURCE -DDEBUG -DCUVID -DHAVE_GL -DAV_INFO -DAV_INFO_TIME=3000 -DUSE_PIP -DUSE_MPEG_COMPLETE -DH264_EOS_TRICKSPEED -DUSE_VDR_SPU -DUSE_ALSA -DUSE_OSS -DUSE_GLX -DUSE_SWRESAMPLE -g -W -Wextra -Winit-self -Wdeclaration-after-statement -c -o audio.o audio.c


    Ulrich danke für den patch ich werde ihn gleich einspielen. Makefiles sind nicht so mein Ding


    mfg

    jojo61

    die Grab Funktion muss ich noch ausbauen. Da direkt auf der Karte gerendert wird kann man nichts mehr graben.


    Den FFMPEG Patch hatte ich früh in der Entwicklung gefunden. Danach habe ich das abholen der fertigen Frames nochmal geändert und es könnte sein

    das man deswegen den Bufferüberlauf in FFMPEG nicht mehr hinbekommt. Insofern kann es gut sein das der Patch nicht mehr nötig ist weil derBuffer nicht mehr voll läuft.


    biggsmann kannes sein das du nicht die NVIDIA gl libs dazu linkst? Poste mal ein ldd vom plugin.


    mfg

    Jojo61

    Ulrich: du hast doch die beiden Stellen gefunden. Die erste Stelle bei Zeile 852 musst du patchen auf

    ctx->frame_queue = av_fifo_alloc((ctx->nb_surfaces + 2 ) * sizeof(CuvidParsedFrame));


    biggsmann Die glew Library wird gebraucht. Evtl. stimmt der Pfad im Makefile nicht bei dir zur -LGLEW oder -LGLX


    Den Fehler in FFMPEG sicht man bei interlaced programmen nach einiger Zeit. Bei mir war es bei RTL HD nahezu immer sofort zu sehen.

    Dann kommt ein falscher Frame vom dekoder und das Bild springt vor in der Zeit.


    mfg

    joj61

    Hi


    so nun habe ich das ursprüngliche softhddevce völlig umgeschrieben und CUDA mit einer opengl ausgabe implementiert.. Es ist immer noch work in progress, aber ich denke es ist Zeit für einen öffentlichen test :-).


    Download ist von https://github.com/jojo61/vdr-plugin-softhdcuvid.git


    Leider muss man mal wieder FFMPEG patchen da dort noch ein Fehler beim deinterlacen von cuda frames verborgen ist.

    Im README habe ich es beschrieben.

    Zusätzlich wird das CUDA SDK von NVIDIA gebraucht.


    Ich habe im GIT auf die Historie verzichtet da ich nicht denke das es hier noch wichtig ist,


    mfg

    Jojo61

    Ich hab nun mal versucht das etwas schneller zu bekommen, aber mit MMX Befehlen wird es auch nicht besser. Bei mir sind es etwa 40% CPU load

    an einen i7-4790K @ 4.00GHz. Ich denke die Lösung mit vdpau als Ausgabebuffer ist ungeeignet da umkopiert werden muss bei 10 Bit Farbtiefe, Das geht wohl nur mit schnellen Rechnern. Ich bastel noch an einer opengl Lösung ohne umkopieren, aber das dauert noch.


    mfg

    Jojo61

    hmm


    dann Übersetze das Plugin mal mit DEBUG und schaue im Log nach sowas wie "CUVID Init ok" oder "CUVID Init failed"

    Poste mal das Debug Log etwac vor und nach dieser Zeile. Speziell die Formate die Angezeigt werden sind interessant. Da muss dann sowas wie

    AV_PIX_FMT_CUDA dabei sein. Das Log kommt wenn man auf eine HEVC Sender schaltet,


    mfg

    Jojo61