summaryrefslogtreecommitdiffstats
path: root/gst/flv/gstflvdemux.c
diff options
context:
space:
mode:
authorJulien Moutte <julien@moutte.net>2008-06-13 22:46:43 +0000
committerJulien Moutte <julien@moutte.net>2008-06-13 22:46:43 +0000
commitbb7f93bd4eee6e78378e2157c6448e28dda717e1 (patch)
tree89d5b852ecadaacca1118a2bc0330ae2ed2dc071 /gst/flv/gstflvdemux.c
parent7d5e4116a6f74a94af6eb533d75ca19d84e3c30d (diff)
downloadgst-plugins-bad-bb7f93bd4eee6e78378e2157c6448e28dda717e1.tar.gz
gst-plugins-bad-bb7f93bd4eee6e78378e2157c6448e28dda717e1.tar.bz2
gst-plugins-bad-bb7f93bd4eee6e78378e2157c6448e28dda717e1.zip
gst/flv/: Introduce demuxing support for AAC and
Original commit message from CVS: 2008-06-14 Julien Moutte <julien@fluendo.com> * gst/flv/gstflvdemux.c: (gst_flv_demux_cleanup), (gst_flv_demux_dispose): * gst/flv/gstflvdemux.h: * gst/flv/gstflvparse.c: (gst_flv_parse_audio_negotiate), (gst_flv_parse_tag_audio), (gst_flv_parse_video_negotiate), (gst_flv_parse_tag_video): Introduce demuxing support for AAC and H.264/AVC inside FLV. * sys/dshowdecwrapper/gstdshowaudiodec.c: (gst_dshowaudiodec_init), (gst_dshowaudiodec_chain), (gst_dshowaudiodec_push_buffer), (gst_dshowaudiodec_sink_event), (gst_dshowaudiodec_setup_graph): * sys/dshowdecwrapper/gstdshowaudiodec.h: * sys/dshowdecwrapper/gstdshowvideodec.c: (gst_dshowvideodec_init), (gst_dshowvideodec_sink_event), (gst_dshowvideodec_chain), (gst_dshowvideodec_push_buffer), (gst_dshowvideodec_src_getcaps): * sys/dshowdecwrapper/gstdshowvideodec.h: Lot of random fixes to improve stability (ref counting, safety checks...)
Diffstat (limited to 'gst/flv/gstflvdemux.c')
-rw-r--r--gst/flv/gstflvdemux.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/gst/flv/gstflvdemux.c b/gst/flv/gstflvdemux.c
index 045b3450..0f5e3f79 100644
--- a/gst/flv/gstflvdemux.c
+++ b/gst/flv/gstflvdemux.c
@@ -118,6 +118,16 @@ gst_flv_demux_cleanup (GstFLVDemux * demux)
gst_adapter_clear (demux->adapter);
+ if (demux->audio_codec_data) {
+ gst_buffer_unref (demux->audio_codec_data);
+ demux->audio_codec_data = NULL;
+ }
+
+ if (demux->video_codec_data) {
+ gst_buffer_unref (demux->video_codec_data);
+ demux->video_codec_data = NULL;
+ }
+
if (demux->audio_pad) {
gst_element_remove_pad (GST_ELEMENT (demux), demux->audio_pad);
gst_object_unref (demux->audio_pad);
@@ -1098,6 +1108,16 @@ gst_flv_demux_dispose (GObject * object)
demux->new_seg_event = NULL;
}
+ if (demux->audio_codec_data) {
+ gst_buffer_unref (demux->audio_codec_data);
+ demux->audio_codec_data = NULL;
+ }
+
+ if (demux->video_codec_data) {
+ gst_buffer_unref (demux->video_codec_data);
+ demux->video_codec_data = NULL;
+ }
+
if (demux->audio_pad) {
gst_object_unref (demux->audio_pad);
demux->audio_pad = NULL;