summaryrefslogtreecommitdiff
path: root/gst-libs
diff options
context:
space:
mode:
authorMatej Knopp <matej.knopp@gmail.com>2011-12-02 17:53:23 +0100
committerSebastian Dröge <sebastian.droege@collabora.co.uk>2011-12-05 09:41:34 +0100
commit27b677d179a29564a483bfeb0aad230f53e873d3 (patch)
treed2c5aa519242df5fe7a307b6b36d6cf94df2726c /gst-libs
parentcacdd29b5c575336f72d20cebb7adcd7252e052f (diff)
basevideodecoder: Fix reference counting of codec_data
Diffstat (limited to 'gst-libs')
-rw-r--r--gst-libs/gst/video/gstbasevideodecoder.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/gst-libs/gst/video/gstbasevideodecoder.c b/gst-libs/gst/video/gstbasevideodecoder.c
index 35f7b7581..80cd1cf5e 100644
--- a/gst-libs/gst/video/gstbasevideodecoder.c
+++ b/gst-libs/gst/video/gstbasevideodecoder.c
@@ -300,6 +300,7 @@ gst_base_video_decoder_setcaps (GstBaseVideoDecoder * base_video_decoder,
codec_data = gst_structure_get_value (structure, "codec_data");
if (codec_data && G_VALUE_TYPE (codec_data) == GST_TYPE_BUFFER) {
state.codec_data = GST_BUFFER (gst_value_get_buffer (codec_data));
+ gst_buffer_ref (state.codec_data);
}
if (base_video_decoder_class->set_format) {
@@ -308,8 +309,8 @@ gst_base_video_decoder_setcaps (GstBaseVideoDecoder * base_video_decoder,
}
if (ret) {
- gst_buffer_replace (&GST_BASE_VIDEO_CODEC (base_video_decoder)->
- state.codec_data, NULL);
+ gst_buffer_replace (&GST_BASE_VIDEO_CODEC (base_video_decoder)->state.
+ codec_data, NULL);
gst_caps_replace (&GST_BASE_VIDEO_CODEC (base_video_decoder)->state.caps,
NULL);
GST_BASE_VIDEO_CODEC (base_video_decoder)->state = state;