diff options
author | Thiago Santos <thiago.sousa.santos@collabora.com> | 2011-12-30 00:02:46 -0300 |
---|---|---|
committer | Tim-Philipp Müller <tim.muller@collabora.co.uk> | 2012-01-04 17:30:37 +0000 |
commit | 7da86792f784231abf57f8f19df7edb74022dbdd (patch) | |
tree | 948e02b4759c73c4d4b6538c67df2b4c20b10f5d | |
parent | b30c8d5df577b63d343131ad8bfcd2c661b0b9b5 (diff) |
basevideocodec: Reset should reset current caps
New caps will need to be negotiated when reset happens
(PAUSED to READY). Without reseting the internal
stored format, basevideoencoder/decoder wouldn't call the
configuration function when the same caps was negotiated
again as they would believe this was the same caps as before.
The issue is that _stop has been called when going to READY and
the elements would have reset their internal codec libs/state as
well. A new configuration should be done.
-rw-r--r-- | gst-libs/gst/video/gstbasevideocodec.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/gst-libs/gst/video/gstbasevideocodec.c b/gst-libs/gst/video/gstbasevideocodec.c index 68e203d55..ee162be77 100644 --- a/gst-libs/gst/video/gstbasevideocodec.c +++ b/gst-libs/gst/video/gstbasevideocodec.c @@ -119,6 +119,8 @@ gst_base_video_codec_reset (GstBaseVideoCodec * base_video_codec) gst_buffer_replace (&base_video_codec->state.codec_data, NULL); gst_caps_replace (&base_video_codec->state.caps, NULL); + memset (&base_video_codec->state, 0, sizeof (GstVideoState)); + base_video_codec->state.format = GST_VIDEO_FORMAT_UNKNOWN; GST_BASE_VIDEO_CODEC_STREAM_UNLOCK (base_video_codec); } |