gstreamer/gst-libs/gst/vaapi
Martin Sherburn b5425da1de display: drm: fix race condition setting device type
There is a race condition where g_drm_device_type can be left set to
DRM_DEVICE_RENDERNODES when it shouldn't.

If thread 1 comes in and falls into the last else statement setting up both
RENDERNODES and LEGACY types. And begins to process the first type (RENDERNODES),
it sets g_drm_device_type = RENDERNODES.

Now when thread 2 comes in and sees g_drm_device_type is RENDERNODES, it queues
up that type to be tried but then encounters the lock and has to wait until the
first thread finishes. Once the lock is acquired it will then proceed to ONLY try
RENDERNODES and fail it. But it doesn't try LEGACY. And from then on, all future
attempts will only try RENDERNODES.

So to avoid this situation I have simply moved the acquisition of the lock higher
up in the attached patch.

https://bugzilla.gnome.org/show_bug.cgi?id=747914
2015-04-16 13:03:20 +02:00
..
egl_compat.h Add initial support for EGL. 2015-02-24 15:20:03 +01:00
egl_vtable.h Add initial support for EGL. 2015-02-24 15:20:03 +01:00
glibcompat.h legal: update copyright notice dates. 2014-01-22 19:02:35 +01:00
gstvaapibufferproxy.c guard buffer export API if not available 2015-04-13 13:22:50 +02:00
gstvaapibufferproxy.h surface: add support for GEM buffer exports. 2015-01-28 17:35:16 +01:00
gstvaapibufferproxy_priv.h guard buffer export API if not available 2015-04-13 13:22:50 +02:00
gstvaapicodec_objects.c Add initial VP8 decoder. 2014-04-18 20:03:44 +02:00
gstvaapicodec_objects.h Add initial VP8 decoder. 2014-04-18 20:03:44 +02:00
gstvaapicodedbuffer.c encoder: rework GstVaapiCodedBuffer and related proxy. 2013-12-04 19:14:38 +01:00
gstvaapicodedbuffer.h encoder: rework GstVaapiCodedBuffer and related proxy. 2013-12-04 19:14:38 +01:00
gstvaapicodedbuffer_priv.h encoder: rework GstVaapiCodedBuffer and related proxy. 2013-12-04 19:14:38 +01:00
gstvaapicodedbufferpool.c legal: update copyright notice dates. 2014-01-22 19:02:35 +01:00
gstvaapicodedbufferpool.h legal: update copyright notice dates. 2014-01-22 19:02:35 +01:00
gstvaapicodedbufferproxy.c encoder: rework GstVaapiCodedBuffer and related proxy. 2013-12-04 19:14:38 +01:00
gstvaapicodedbufferproxy.h encoder: rework GstVaapiCodedBuffer and related proxy. 2013-12-04 19:14:38 +01:00
gstvaapicodedbufferproxy_priv.h encoder: rework GstVaapiCodedBuffer and related proxy. 2013-12-04 19:14:38 +01:00
gstvaapicompat.h texture: drop support for VA/GLX interfaces. 2015-01-27 18:11:44 +01:00
gstvaapicontext.c gstvaapicontext: Add VAConfigAttribValEncJPEG to the attribute list using for VAConfig creation. 2015-02-04 11:17:58 +02:00
gstvaapicontext.h context: add support for non-YUV 4:2:0 formats. 2014-04-25 19:24:07 +02:00
gstvaapicontext_overlay.c Remove HAVE_GST_VIDEO_OVERLAY_HWCAPS macro 2015-04-03 16:55:43 +03:00
gstvaapicontext_overlay.h context: move overlay composition to separate files. 2014-01-23 14:29:09 +01:00
gstvaapidebug.h
gstvaapidecoder.c decoder: cast GST_VAAPI_DECODER_STATUS_DROP_FRAME 2015-04-08 16:20:55 +02:00
gstvaapidecoder.h vaapidecode: Check the condition after taking the lock 2015-02-04 18:34:59 +02:00
gstvaapidecoder_dpb.c
gstvaapidecoder_dpb.h
gstvaapidecoder_h264.c decoder: cast GST_VAAPI_DECODER_STATUS_DROP_FRAME 2015-04-08 16:20:55 +02:00
gstvaapidecoder_h264.h decoder: h264: add support for NALU "alignment" optimization. 2014-06-19 15:29:12 +02:00
gstvaapidecoder_h265.c HEVC: silence the compiler 2015-04-16 11:25:42 +02:00
gstvaapidecoder_h265.h HEVC: Add HEVC(h265) decoder to core libgstvaapi 2015-04-13 15:41:45 +03:00
gstvaapidecoder_jpeg.c decoder: cast GST_VAAPI_DECODER_STATUS_DROP_FRAME 2015-04-08 16:20:55 +02:00
gstvaapidecoder_jpeg.h
gstvaapidecoder_mpeg2.c decoder: cast GST_VAAPI_DECODER_STATUS_DROP_FRAME 2015-04-08 16:20:55 +02:00
gstvaapidecoder_mpeg2.h
gstvaapidecoder_mpeg4.c decoder: mpeg4: remove an spurious comparison 2015-04-08 16:20:55 +02:00
gstvaapidecoder_mpeg4.h
gstvaapidecoder_objects.c decoder: h264: add initial support for repeat-first-field (RFF) flag. 2014-11-14 10:11:41 +01:00
gstvaapidecoder_objects.h decoder: h264: add initial support for repeat-first-field (RFF) flag. 2014-11-14 10:11:41 +01:00
gstvaapidecoder_priv.h vaapidecode: Check the condition after taking the lock 2015-02-04 18:34:59 +02:00
gstvaapidecoder_unit.c legal: add per-file authorship information. 2013-11-22 06:39:15 +01:00
gstvaapidecoder_unit.h libs: check that private headers remain private. 2014-01-23 14:29:09 +01:00
gstvaapidecoder_vc1.c update and move gstcompat.h 2015-04-03 17:08:30 +03:00
gstvaapidecoder_vc1.h
gstvaapidecoder_vp8.c build: fix conditional compilation of VP8 decoder. 2014-05-09 14:41:52 +02:00
gstvaapidecoder_vp8.h Add initial VP8 decoder. 2014-04-18 20:03:44 +02:00
gstvaapidisplay.c vaapidisplay: mark X11 display as compatible with EGL 2015-03-14 22:12:19 +02:00
gstvaapidisplay.h Add initial support for EGL. 2015-02-24 15:20:03 +01:00
gstvaapidisplay_drm.c display: drm: fix race condition setting device type 2015-04-16 13:03:20 +02:00
gstvaapidisplay_drm.h display: re-indent all GstVaapiDisplay related source code. 2013-12-20 17:16:12 +01:00
gstvaapidisplay_drm_priv.h display: refine the meaning of display type. 2015-01-27 18:11:44 +01:00
gstvaapidisplay_egl.c libs: remove unused variables 2015-04-08 16:20:55 +02:00
gstvaapidisplay_egl.h Add initial support for EGL. 2015-02-24 15:20:03 +01:00
gstvaapidisplay_egl_priv.h Add initial support for EGL. 2015-02-24 15:20:03 +01:00
gstvaapidisplay_glx.c libs: remove unused variables 2015-04-08 18:21:49 +02:00
gstvaapidisplay_glx.h display: re-indent all GstVaapiDisplay related source code. 2013-12-20 17:16:12 +01:00
gstvaapidisplay_glx_priv.h display: refine the meaning of display type. 2015-01-27 18:11:44 +01:00
gstvaapidisplay_priv.h window: add toplevel display indirection for visualid and colormap. 2015-01-27 18:11:45 +01:00
gstvaapidisplay_wayland.c window: add generic helper to create windows. 2015-01-27 18:11:45 +01:00
gstvaapidisplay_wayland.h display: re-indent all GstVaapiDisplay related source code. 2013-12-20 17:16:12 +01:00
gstvaapidisplay_wayland_priv.h display: refine the meaning of display type. 2015-01-27 18:11:44 +01:00
gstvaapidisplay_x11.c window: add generic helper to create windows. 2015-01-27 18:11:45 +01:00
gstvaapidisplay_x11.h display: re-indent all GstVaapiDisplay related source code. 2013-12-20 17:16:12 +01:00
gstvaapidisplay_x11_priv.h display: refine the meaning of display type. 2015-01-27 18:11:44 +01:00
gstvaapidisplaycache.c display: use a recursive mutex for the display cache. 2015-01-27 18:11:44 +01:00
gstvaapidisplaycache.h display: use a recursive mutex for the display cache. 2015-01-27 18:11:44 +01:00
gstvaapiencoder.c encoder: Only support YUV420 native format as input for now 2015-02-05 12:13:38 +02:00
gstvaapiencoder.h legal: update copyright notice dates. 2014-01-22 19:02:35 +01:00
gstvaapiencoder_h264.c encoder: h264: casts slice_param->slice_type 2015-04-08 16:20:55 +02:00
gstvaapiencoder_h264.h encoder: h264: add support for more than 2 views 2015-02-24 17:14:33 +02:00
gstvaapiencoder_jpeg.c Fix compiler warnings 2015-02-18 11:46:11 +02:00
gstvaapiencoder_jpeg.h encoder: Add JPEG Encoder 2015-02-04 11:16:05 +02:00
gstvaapiencoder_mpeg2.c encoder: mpeg2: use fabsf() instead of abs() 2015-04-08 16:20:55 +02:00
gstvaapiencoder_mpeg2.h legal: update copyright notice dates. 2014-01-22 19:02:35 +01:00
gstvaapiencoder_mpeg2_priv.h legal: update copyright notice dates. 2014-01-22 19:02:35 +01:00
gstvaapiencoder_objects.c encoder_objects: Add QuantizationMatrix and JPEGHuffmanTable 2015-02-04 11:15:38 +02:00
gstvaapiencoder_objects.h encoder: avoid GstVaapiCodedBuffer redefinition 2015-04-08 16:20:55 +02:00
gstvaapiencoder_priv.h encoder: notify the encoder of the submitted packed headers. 2014-01-23 15:48:58 +01:00
gstvaapiencoder_vp8.c libs: remove unused variables 2015-04-08 16:20:55 +02:00
gstvaapiencoder_vp8.h Add VP8 Encoder to core libgstvaapi. 2015-02-13 13:42:04 +02:00
gstvaapifilter.c filter: add initial support for high quality scaling. 2014-10-29 17:33:48 +01:00
gstvaapifilter.h filter: add initial support for high quality scaling. 2014-10-29 17:33:48 +01:00
gstvaapiimage.c Removal of gstreamer-0.10 support 2015-04-03 16:55:27 +03:00
gstvaapiimage.h
gstvaapiimage_priv.h
gstvaapiimagepool.c videopool: re-indent all GstVaapiVideoPool related source code. 2015-01-27 18:11:45 +01:00
gstvaapiimagepool.h videopool: re-indent all GstVaapiVideoPool related source code. 2015-01-27 18:11:45 +01:00
gstvaapiminiobject.c libs: expose GstVaapiMiniObject APIs to all backends. 2015-01-27 18:11:44 +01:00
gstvaapiminiobject.h libs: expose GstVaapiMiniObject APIs to all backends. 2015-01-27 18:11:44 +01:00
gstvaapiobject.c libs: re-indent all GstVaapiObject related source code. 2015-01-27 18:11:44 +01:00
gstvaapiobject.h libs: re-indent all GstVaapiObject related source code. 2015-01-27 18:11:44 +01:00
gstvaapiobject_priv.h display: record native display object. 2015-01-27 18:11:44 +01:00
gstvaapiparser_frame.c
gstvaapiparser_frame.h
gstvaapipixmap.c
gstvaapipixmap.h
gstvaapipixmap_priv.h libs: check that private headers remain private. 2014-01-23 14:29:09 +01:00
gstvaapipixmap_x11.c display: record native display object. 2015-01-27 18:11:44 +01:00
gstvaapipixmap_x11.h
gstvaapiprofile.c HEVC: gstvaapiprofile: Add profile definitions 2015-04-13 14:52:53 +03:00
gstvaapiprofile.h HEVC: gstvaapiprofile: Add profile definitions 2015-04-13 14:52:53 +03:00
gstvaapisubpicture.c Removal of gstreamer-0.10 support 2015-04-03 16:55:27 +03:00
gstvaapisubpicture.h
gstvaapisurface.c guard buffer export API if not available 2015-04-13 13:22:50 +02:00
gstvaapisurface.h surface: add initial support for foreign buffer imports. 2015-01-28 17:35:16 +01:00
gstvaapisurface_drm.c surface: add support for GEM buffer imports. 2015-01-28 17:35:16 +01:00
gstvaapisurface_drm.h surface: add support for GEM buffer imports. 2015-01-28 17:35:16 +01:00
gstvaapisurface_egl.c egl: allow for EGLImage imports into VA Surfaces. 2015-02-24 15:20:03 +01:00
gstvaapisurface_egl.h egl: allow for EGLImage imports into VA Surfaces. 2015-02-24 15:20:03 +01:00
gstvaapisurface_priv.h surface: add initial support for foreign buffer imports. 2015-01-28 17:35:16 +01:00
gstvaapisurfacepool.c videopool: add optional flags for surface pool allocation. 2015-01-27 18:11:45 +01:00
gstvaapisurfacepool.h videopool: add optional flags for surface pool allocation. 2015-01-27 18:11:45 +01:00
gstvaapisurfaceproxy.c surfaceproxy: add helper to create a wrapped surface object. 2015-01-27 18:11:44 +01:00
gstvaapisurfaceproxy.h surfaceproxy: add helper to create a wrapped surface object. 2015-01-27 18:11:44 +01:00
gstvaapisurfaceproxy_priv.h surfaceproxy: re-indent all GstVaapiSurfaceProxy related source code. 2015-01-27 18:11:44 +01:00
gstvaapitexture.c plugins: add support for GstVideoGLTextureOrientation. 2015-02-24 15:20:03 +01:00
gstvaapitexture.h plugins: add support for GstVideoGLTextureOrientation. 2015-02-24 15:20:03 +01:00
gstvaapitexture_egl.c egl: add texture abstraction. 2015-02-24 15:20:03 +01:00
gstvaapitexture_egl.h egl: add texture abstraction. 2015-02-24 15:20:03 +01:00
gstvaapitexture_glx.c plugins: add support for GstVideoGLTextureOrientation. 2015-02-24 15:20:03 +01:00
gstvaapitexture_glx.h texture: move to core libgstvaapi base library. 2015-01-27 18:11:44 +01:00
gstvaapitexture_priv.h plugins: add support for GstVideoGLTextureOrientation. 2015-02-24 15:20:03 +01:00
gstvaapitypes.h libs: re-introduce a GST_VAAPI_ID_INVALID value. 2015-01-27 18:11:44 +01:00
gstvaapiutils.c Remove HAVE_GST_VIDEO_OVERLAY_HWCAPS macro 2015-04-03 16:55:43 +03:00
gstvaapiutils.h filter: add initial support for high quality scaling. 2014-10-29 17:33:48 +01:00
gstvaapiutils_core.c libs: factor out usages of vaGetConfigAttributes(). 2014-01-23 18:51:59 +01:00
gstvaapiutils_core.h libs: factor out usages of vaGetConfigAttributes(). 2014-01-23 18:51:59 +01:00
gstvaapiutils_egl.c egl: add windowing support. 2015-02-24 15:20:03 +01:00
gstvaapiutils_egl.h egl: add windowing support. 2015-02-24 15:20:03 +01:00
gstvaapiutils_glx.c libs: re-indent all source code related to VA utilities. 2014-01-23 18:51:59 +01:00
gstvaapiutils_glx.h libs: re-indent all source code related to VA utilities. 2014-01-23 18:51:59 +01:00
gstvaapiutils_h264.c encoder: h264: add initial support for H.264 Stereo High profile. 2014-06-02 18:25:13 +02:00
gstvaapiutils_h264.h libs: re-indent all source code related to VA utilities. 2014-01-23 18:51:59 +01:00
gstvaapiutils_h264_priv.h libs: re-indent all source code related to VA utilities. 2014-01-23 18:51:59 +01:00
gstvaapiutils_h265.c HEVC: Add codec utility methods to core libgstvaapi 2015-04-13 14:53:46 +03:00
gstvaapiutils_h265.h HEVC: Add codec utility methods to core libgstvaapi 2015-04-13 14:53:46 +03:00
gstvaapiutils_h265_priv.h HEVC: Add codec utility methods to core libgstvaapi 2015-04-13 14:53:46 +03:00
gstvaapiutils_mpeg2.c legal: update copyright notice dates. 2014-01-22 19:02:35 +01:00
gstvaapiutils_mpeg2.h libs: re-indent all source code related to VA utilities. 2014-01-23 18:51:59 +01:00
gstvaapiutils_mpeg2_priv.h libs: re-indent all source code related to VA utilities. 2014-01-23 18:51:59 +01:00
gstvaapiutils_x11.c window: add toplevel API to determine a visual id. 2015-01-27 18:11:45 +01:00
gstvaapiutils_x11.h window: add toplevel API to determine a visual id. 2015-01-27 18:11:45 +01:00
gstvaapivalue.c libs: initialize GValues in a thread-safe manner. 2015-02-24 15:20:03 +01:00
gstvaapivalue.h legal: update copyright notice dates. 2014-01-22 19:02:35 +01:00
gstvaapiversion.h.in
gstvaapivideopool.c videopool: Release lock while allocating new object 2015-04-16 12:11:45 +02:00
gstvaapivideopool.h videopool: re-indent all GstVaapiVideoPool related source code. 2015-01-27 18:11:45 +01:00
gstvaapivideopool_priv.h videopool: re-indent all GstVaapiVideoPool related source code. 2015-01-27 18:11:45 +01:00
gstvaapiwindow.c window: add generic helper to create windows. 2015-01-27 18:11:45 +01:00
gstvaapiwindow.h window: add generic helper to create windows. 2015-01-27 18:11:45 +01:00
gstvaapiwindow_drm.c window: add generic helper to create windows. 2015-01-27 18:11:45 +01:00
gstvaapiwindow_drm.h window: re-indent all GstVaapiWindow related source code. 2014-07-25 17:36:12 +02:00
gstvaapiwindow_egl.c egl: add windowing support. 2015-02-24 15:20:03 +01:00
gstvaapiwindow_egl.h egl: add windowing support. 2015-02-24 15:20:03 +01:00
gstvaapiwindow_glx.c window: add toplevel API to determine the colormap. 2015-01-27 18:11:45 +01:00
gstvaapiwindow_glx.h window: re-indent all GstVaapiWindow related source code. 2014-07-25 17:36:12 +02:00
gstvaapiwindow_priv.h window: add toplevel API to determine the colormap. 2015-01-27 18:11:45 +01:00
gstvaapiwindow_wayland.c wayland: destroy vpp buffer pool on resize 2015-04-14 11:39:58 +02:00
gstvaapiwindow_wayland.h window: re-indent all GstVaapiWindow related source code. 2014-07-25 17:36:12 +02:00
gstvaapiwindow_x11.c window: add toplevel display indirection for visualid and colormap. 2015-01-27 18:11:45 +01:00
gstvaapiwindow_x11.h window: re-indent all GstVaapiWindow related source code. 2014-07-25 17:36:12 +02:00
gstvaapiwindow_x11_priv.h window: add toplevel API to determine the colormap. 2015-01-27 18:11:45 +01:00
gstvaapiworkarounds.h
libgstvaapi_priv_check.h libs: add missing file (libgstvaapi_priv_check.h). 2014-01-23 17:06:08 +01:00
Makefile.am build: don't compile HEVC if not supported 2015-04-14 11:36:13 +02:00
ogl_compat.h Add initial support for EGL. 2015-02-24 15:20:03 +01:00
sysdeps.h update and move gstcompat.h 2015-04-03 17:08:30 +03:00
video-format.c Removal of gstreamer-0.10 support 2015-04-03 16:55:27 +03:00
video-format.h Removal of gstreamer-0.10 support 2015-04-03 16:55:27 +03:00