pesintta/vdr-plugin-vaapidevice

No OSD with latest commit.

Closed this issue · 12 comments

Hi,

I see different error messages ... I get (with latest commit):

Mar 05 00:11:24 [vdr] [18025] VAAPI: Device ready
Mar 05 00:11:24 [vdr] [18067] VAAPI-ERROR: video/vaapi: no osd subpicture yet
Mar 05 00:11:24 [vdr] [18067] VAAPI-ERROR: video: display buffer empty, duping frame (1/0) 0
Mar 05 00:11:24 [vdr] [18067] VAAPI-ERROR: video/vaapi: no osd subpicture yet
Mar 05 00:11:24 [vdr] [18067] VAAPI-ERROR: video: display buffer empty, duping frame (2/0) 0
Mar 05 00:11:24 [vdr] [18067] VAAPI-ERROR: video/vaapi: no osd subpicture yet

And after some time:

Mar 05 00:11:25 [vdr] [18067] VAAPI-ERROR: video/vaapi: no osd subpicture yet
Mar 05 00:11:25 [vdr] [18067] VAAPI-ERROR: video: display buffer empty, duping frame (585/0) 6
Mar 05 00:11:25 [vdr] [18067] VAAPI-ERROR: video/vaapi: can't destroy 8 surfaces
Mar 05 00:11:25 [vdr] [18067] VAAPI-ERROR: video/vaapi: can't destroy postproc context!
Mar 05 00:11:25 [vdr] [18067] VAAPI-ERROR: video/vaapi: can't destroy config!
Mar 05 00:11:25 [vdr] [18067] VAAPI: video/vaapi: supports video processing
Mar 05 00:11:25 [vdr] [18067] VAAPI-ERROR: video/vaapi: no osd subpicture yet
Mar 05 00:11:25 [vdr] [18067] VAAPI: video/vaapi: noise reduction supported

Best regards,

Space #

Btw.... I am on

[ebuild R ] media-video/ffmpeg-3.3.6:0/55.57.57::gentoo USE="X alsa bzip2 encode gpl hardcoded-tables iconv mp3 network postproc threads vaapi x264 zlib (-altivec) -amr -amrenc -bluray -bs2b -cdio -celt -chromaprint -chromium -cpudetection -debug -doc -fdk -flite -fontconfig -frei0r -fribidi -gcrypt -gme -gmp -gnutls -gsm -iec61883 -ieee1394 -jack -jpeg2k -kvazaar -ladspa -libass -libcaca -libilbc -librtmp -libsoxr -libv4l -lzma (-mipsdspr1) (-mipsdspr2) (-mipsfpu) (-mmal) -modplug -nvenc -openal -opengl -openh264 -openssl -opus -oss -pic -pulseaudio -rubberband -samba -schroedinger -sdl -snappy -sofalizer -speex -ssh -static-libs {-test} -theora -truetype -twolame -v4l -vdpau -vorbis -vpx -wavpack -webp -x265 -xcb -xvid -zeromq -zimg -zvbi" ABI_X86="(64) -32 (-x32)" CPU_FLAGS_X86="mmx mmxext sse sse2 -3dnow -3dnowext -aes -avx -avx2 -fma3 -fma4 -sse3 -sse4_1 -sse4_2 -ssse3 -xop" FFTOOLS="aviocat cws2fws ffescape ffeval ffhash fourcc2pixfmt graph2dot ismindex pktdumper qt-faststart sidxindex trasher" 0 KiB

Also just noticed that it does not even work without skindesigner. So this seems to be a different issue...

Test was done on 48a0f79

Latest error message:

Mar 05 00:31:19 [vdr] [18573] VAAPI-ERROR: video/vaapi: no osd subpicture yet
Mar 05 00:31:19 [vdr] [18573] VAAPI-ERROR: video/vaapi: can't associate subpicture
Mar 05 00:31:19 [vdr] [18573] VAAPI-ERROR: video/vaapi: vaSyncSurface failed: invalid VASurfaceID

I need to try to bisect the commit tomorrow ... current infos I can provide:

working: 6372704
not-working: 192789d

libva version used:

[ebuild   R   ~] x11-libs/libva-2.1.0:0/2::gentoo  USE="X drm utils -opengl -vdpau -wayland" ABI_X86="(64) -32 (-x32)" VIDEO_CARDS="intel -i965 -nouveau -nvidia" 0 KiB
[ebuild   R   ~] x11-libs/libva-intel-driver-2.1.0::gentoo  USE="X drm -wayland" ABI_X86="(64) -32 (-x32)" 0 KiB

EDIT: Updated the working/non-working git hashes ...

With dfe5a20 I see first strange things (on channel change the OSD only pops up for very short time but menu is still accessible). OSD seems to be "overwritten" once the channel is tuned ... if I press Ok to display channelchange OSD again it remains there for the configured time ...

EDIT: That effect has started on an earlier commit, just did not test channelchange ... the last fully working commit for me is 6372704 ...

Ok, latest status:

  • 6372704 - last fully working commit for me
  • 966661b - no picture at all
  • ddf9b0f - OSD available but during channelchange it get's cleared as soon as the picture starts moving
  • 9b2c17f - no OSD at all

Same here (no OSD at all):
1000x "VAAPI-ERROR: video/vaapi: no osd subpicture yet" in Log,
vdr-2.3.8 with vdr-plugin-skinnopacity (native).

It could be that OSD is initalized before video context is usable.
Could you test the following patch (totally untested):

diff --git a/vaapidev.c b/vaapidev.c
index 6303338..2d93200 100644
--- a/vaapidev.c
+++ b/vaapidev.c
@@ -996,11 +996,11 @@ static void StartVideo(void)
        // FIXME: not good looking, mapped and then resized.
        VideoSetFullscreen(1);
     }
-    VideoOsdInit();
     if (!MyVideoStream->Decoder) {
        VideoStreamOpen(MyVideoStream);
        AudioSyncStream = MyVideoStream;
     }
+    VideoOsdInit();
 }

 /**

After testing I decided to add the above change to master branch. It looks more correct that way. Please give it a try and report back if OSD now works.

Hi,

issue seems to be resolved (in a short test) ... I have OSD and channelchange info remains open as expected.

Thanks!

Still looking good, so I think this issue is resolved.

Thank you for testing and verifying fixes.