Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

gstreamer crashes in vaapisink with "could not render surface" #745

Open
Markus-Pietrek-MSC opened this issue Aug 29, 2023 · 2 comments
Open
Assignees

Comments

@Markus-Pietrek-MSC
Copy link

Hello,

in Yocto Mickledore playing a video via vaapisink is no longer possible with libva 2.16.

Playing a video "gst-launch-1.0 playbin uri=file:///video.mp4 video-sink=vaapisink" results in this error message.

Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Got context from element 'vaapisink0': gst.vaapi.Display=context, gst.vaapi.Display=(GstVaapiDisplay)"\(GstVaapiDisplayGLX\)\ vaapidisplayglx0", gst.vaapi.Display.GObject=(GstObject)"\(GstVaapiDisplayGLX\)\ vaapidisplayglx0";
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
ERROR: from element /GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:vbin/GstVaapiSink:vaapisink0: Internal error: could not render surface
Additional debug info:
/usr/src/debug/gstreamer1.0-vaapi/1.22.0-r0/gst/vaapi/gstvaapisink.c(1541): gst_vaapisink_show_frame_unlocked (): /GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:vbin/GstVaapiSink:vaapisink0
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...

A workaround is to use xvimagesink which has a much higher CPU load.

Copying Yocto's kirkstone libva 2.14 to mickledore helps, then the video is successfully displayed with vaapisink and little CPU load. So I assume it is an issue with libva.

This has been reproduced on Kabylake, Skylake, ElkhartLake and other CPUs.

The BSP uses yocto and the associated meta-intel.

Best regards,
Markus

@XinfengZhang
Copy link
Contributor

XinfengZhang commented Sep 14, 2023

suppose it is not a vaapi issue, @xhaihao are you aware of such issue?

@Markus-Pietrek-MSC AFAIK, gstvaapisink are using vaPutSurfaces, glimagesink is the recommended one
to save the CPU load, you should use DMA surface sharing. please refer
#734

@Markus-Pietrek-MSC
Copy link
Author

Thanks, glimagesink has not these issues.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants