summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVíctor Manuel Jáquez Leal <victorx.jaquez@intel.com>2016-12-09 17:56:02 +0100
committerVíctor Manuel Jáquez Leal <victorx.jaquez@intel.com>2016-12-09 17:56:02 +0100
commitdaed911caf4bbeee35273e78ebe029a03cf645b9 (patch)
treea408cbdfb43d747fa1023241351a4b4d02f54e61
parentba49dc9dd77e858946fd2ad277117abcc8e36ad9 (diff)
vaapidecode: lock stream when setting caps
-rw-r--r--gst/vaapi/gstvaapidecode.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/gst/vaapi/gstvaapidecode.c b/gst/vaapi/gstvaapidecode.c
index db490615..6b490176 100644
--- a/gst/vaapi/gstvaapidecode.c
+++ b/gst/vaapi/gstvaapidecode.c
@@ -463,14 +463,17 @@ gst_vaapidecode_negotiate (GstVaapiDecode * decode)
GstVideoDecoder *const vdec = GST_VIDEO_DECODER (decode);
GstVaapiPluginBase *const plugin = GST_VAAPI_PLUGIN_BASE (vdec);
- GST_DEBUG_OBJECT (decode, "Input codec state changed, doing renegotiation");
+ GST_DEBUG_OBJECT (decode, "input codec state changed: renegotiating");
+ GST_VIDEO_DECODER_STREAM_LOCK (vdec);
if (!gst_vaapi_plugin_base_set_caps (plugin, decode->sinkpad_caps, NULL))
return FALSE;
if (!gst_vaapidecode_update_src_caps (decode))
return FALSE;
if (!gst_vaapi_plugin_base_set_caps (plugin, NULL, decode->srcpad_caps))
return FALSE;
+ GST_VIDEO_DECODER_STREAM_UNLOCK (vdec);
+
if (!gst_video_decoder_negotiate (vdec))
return FALSE;