diff options
author | Matej Knopp <matej.knopp@gmail.com> | 2011-12-02 17:53:23 +0100 |
---|---|---|
committer | Sebastian Dröge <sebastian.droege@collabora.co.uk> | 2011-12-05 09:41:34 +0100 |
commit | 27b677d179a29564a483bfeb0aad230f53e873d3 (patch) | |
tree | d2c5aa519242df5fe7a307b6b36d6cf94df2726c /gst-libs | |
parent | cacdd29b5c575336f72d20cebb7adcd7252e052f (diff) |
basevideodecoder: Fix reference counting of codec_data
Diffstat (limited to 'gst-libs')
-rw-r--r-- | gst-libs/gst/video/gstbasevideodecoder.c | 5 |
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; |