diff options
author | Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> | 2016-12-09 17:56:02 +0100 |
---|---|---|
committer | Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> | 2016-12-09 17:56:02 +0100 |
commit | daed911caf4bbeee35273e78ebe029a03cf645b9 (patch) | |
tree | a408cbdfb43d747fa1023241351a4b4d02f54e61 | |
parent | ba49dc9dd77e858946fd2ad277117abcc8e36ad9 (diff) |
vaapidecode: lock stream when setting caps
-rw-r--r-- | gst/vaapi/gstvaapidecode.c | 5 |
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; |