summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian.droege@collabora.co.uk>2012-07-23 11:50:11 +0200
committerJosep Torra <n770galaxy@gmail.com>2013-03-10 11:11:50 +0100
commit031a7ceec41b828018e433d40ef497641b3d6b9e (patch)
treed5c12e02a2e6b89bb73b2d28497f04b895186f4c
parent2220012dff32e1a456af81c605225f55622bb9a8 (diff)
downloadgstreamer-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.c6
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++;