From 9259ee6729165ecc122a48f7a2af974266eda97e Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sebastian=20Dr=C3=B6ge?= Date: Thu, 25 Jul 2013 14:25:08 +0200 Subject: [PATCH] videoencoder/decoder: Call reset() before start() too --- gst-libs/gst/video/gstvideodecoder.c | 4 ++++ gst-libs/gst/video/gstvideoencoder.c | 7 ++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/gst-libs/gst/video/gstvideodecoder.c b/gst-libs/gst/video/gstvideodecoder.c index 15e41d8..37337ae 100644 --- a/gst-libs/gst/video/gstvideodecoder.c +++ b/gst-libs/gst/video/gstvideodecoder.c @@ -2033,6 +2033,10 @@ gst_video_decoder_change_state (GstElement * element, GstStateChange transition) goto open_failed; break; case GST_STATE_CHANGE_READY_TO_PAUSED: + GST_VIDEO_DECODER_STREAM_LOCK (decoder); + gst_video_decoder_reset (decoder, TRUE); + GST_VIDEO_DECODER_STREAM_UNLOCK (decoder); + /* Initialize device/library if needed */ if (decoder_class->start && !decoder_class->start (decoder)) goto start_failed; diff --git a/gst-libs/gst/video/gstvideoencoder.c b/gst-libs/gst/video/gstvideoencoder.c index 891d0ab..48b6b1c 100644 --- a/gst-libs/gst/video/gstvideoencoder.c +++ b/gst-libs/gst/video/gstvideoencoder.c @@ -1365,6 +1365,9 @@ gst_video_encoder_change_state (GstElement * element, GstStateChange transition) break; case GST_STATE_CHANGE_READY_TO_PAUSED: /* Initialize device/library if needed */ + GST_VIDEO_ENCODER_STREAM_LOCK (encoder); + gst_video_encoder_reset (encoder, TRUE); + GST_VIDEO_ENCODER_STREAM_UNLOCK (encoder); if (encoder_class->start && !encoder_class->start (encoder)) goto start_failed; break; @@ -1376,9 +1379,11 @@ gst_video_encoder_change_state (GstElement * element, GstStateChange transition) switch (transition) { case GST_STATE_CHANGE_PAUSED_TO_READY: - gst_video_encoder_reset (encoder, TRUE); if (encoder_class->stop && !encoder_class->stop (encoder)) goto stop_failed; + GST_VIDEO_ENCODER_STREAM_LOCK (encoder); + gst_video_encoder_reset (encoder, TRUE); + GST_VIDEO_ENCODER_STREAM_UNLOCK (encoder); break; case GST_STATE_CHANGE_READY_TO_NULL: /* close device/library if needed */ -- 2.7.4