mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-15 11:55:32 +00:00
d946e7972e
vaapisink takes the display lock, then does a gst_buffer_replace which can take the lock on the gst_vaapi_video_pool. vaapipostproc asks the gst_vaapi_video_pool for a new surface. This takes the lock on the gst_vaapi_video_pool; if you're unlucky, there are no free surfaces, which means that gst_vaapi_surface_create is called. gst_vaapi_surface_create takes the display lock. If vaapisink and vaapipostproc are in different threads, and this happens, you get a deadlock. vaapisink holds the display lock, and wants the gst_vaapi_video_pool lock. vaapipostproc holds the gst_vaapi_video_pool lock and wants the display lock. Work around this by releasing the display lock in vaapisink around the gst_buffer_replace. https://bugzilla.gnome.org/show_bug.cgi?id=738249 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk> Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> |
||
---|---|---|
.. | ||
gstcompat.h | ||
gstvaapi.c | ||
gstvaapidecode.c | ||
gstvaapidecode.h | ||
gstvaapidecodebin.c | ||
gstvaapidecodebin.h | ||
gstvaapiencode.c | ||
gstvaapiencode.h | ||
gstvaapiencode_h264.c | ||
gstvaapiencode_h264.h | ||
gstvaapiencode_h265.c | ||
gstvaapiencode_h265.h | ||
gstvaapiencode_jpeg.c | ||
gstvaapiencode_jpeg.h | ||
gstvaapiencode_mpeg2.c | ||
gstvaapiencode_mpeg2.h | ||
gstvaapiencode_vp8.c | ||
gstvaapiencode_vp8.h | ||
gstvaapiparse.c | ||
gstvaapiparse.h | ||
gstvaapipluginbase.c | ||
gstvaapipluginbase.h | ||
gstvaapipluginutil.c | ||
gstvaapipluginutil.h | ||
gstvaapipostproc.c | ||
gstvaapipostproc.h | ||
gstvaapisink.c | ||
gstvaapisink.h | ||
gstvaapiuploader.c | ||
gstvaapiuploader.h | ||
gstvaapivideobuffer.c | ||
gstvaapivideobuffer.h | ||
gstvaapivideobufferpool.c | ||
gstvaapivideobufferpool.h | ||
gstvaapivideocontext.c | ||
gstvaapivideocontext.h | ||
gstvaapivideomemory.c | ||
gstvaapivideomemory.h | ||
gstvaapivideometa.c | ||
gstvaapivideometa.h | ||
gstvaapivideometa_texture.c | ||
gstvaapivideometa_texture.h | ||
Makefile.am |