diff options
author | Sebastian Dröge <sebastian.droege@collabora.co.uk> | 2012-07-23 11:50:11 +0200 |
---|---|---|
committer | Josep Torra <n770galaxy@gmail.com> | 2013-03-10 11:11:50 +0100 |
commit | 031a7ceec41b828018e433d40ef497641b3d6b9e (patch) | |
tree | d5c12e02a2e6b89bb73b2d28497f04b895186f4c | |
parent | 2220012dff32e1a456af81c605225f55622bb9a8 (diff) | |
download | gstreamer-plugins-base-031a7ceec41b828018e433d40ef497641b3d6b9e.tar.gz |
video: Correct usage of the base class stream lock
And also renegotiate if the srcpad requires reconfiguration
Conflicts:
gst-libs/gst/video/gstvideodecoder.c
-rw-r--r-- | gst-libs/gst/video/gstvideodecoder.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/gst-libs/gst/video/gstvideodecoder.c b/gst-libs/gst/video/gstvideodecoder.c index 06e1810fc..a1fcb1050 100644 --- a/gst-libs/gst/video/gstvideodecoder.c +++ b/gst-libs/gst/video/gstvideodecoder.c @@ -2207,15 +2207,17 @@ gst_video_decoder_finish_frame (GstVideoDecoder * decoder, { GstFlowReturn ret = GST_FLOW_OK; GstVideoDecoderPrivate *priv = decoder->priv; - GstVideoCodecState *state = priv->output_state; + GstVideoCodecState *state; GstBuffer *output_buffer; GST_LOG_OBJECT (decoder, "finish frame %p", frame); + GST_VIDEO_DECODER_STREAM_LOCK (decoder); + if (G_UNLIKELY (priv->output_state_changed)) gst_video_decoder_negotiate (decoder); - GST_VIDEO_DECODER_STREAM_LOCK (decoder); + state = priv->output_state; gst_video_decoder_prepare_finish_frame (decoder, frame, FALSE); priv->processed++; |