From c74043423e391ce64e280df5cca8784dd638820b Mon Sep 17 00:00:00 2001 From: Julien Moutte Date: Mon, 23 Feb 2004 22:16:21 +0000 Subject: gst/: First batch implementing audio and video codec tags in demuxers. Original commit message from CVS: 2004-02-23 Julien MOUTTE * gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps), (gst_riff_create_audio_caps), (gst_riff_create_iavs_caps), (gst_riff_create_video_template_caps), (gst_riff_create_audio_template_caps), (gst_riff_create_iavs_template_caps): * gst-libs/gst/riff/riff-media.h: * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init), (gst_asf_demux_audio_caps), (gst_asf_demux_add_audio_stream), (gst_asf_demux_video_caps), (gst_asf_demux_add_video_stream): * gst/avi/gstavidemux.c: (gst_avi_demux_add_stream): * gst/matroska/matroska-demux.c: (gst_matroska_demux_add_stream), (gst_matroska_demux_video_caps), (gst_matroska_demux_audio_caps), (gst_matroska_demux_plugin_init): First batch implementing audio and video codec tags in demuxers. --- gst/avi/gstavidemux.c | 36 +++++++++++++++++++++++++++++++++--- 1 file changed, 33 insertions(+), 3 deletions(-) (limited to 'gst/avi/gstavidemux.c') diff --git a/gst/avi/gstavidemux.c b/gst/avi/gstavidemux.c index 2dc595d2..1b50b98e 100644 --- a/gst/avi/gstavidemux.c +++ b/gst/avi/gstavidemux.c @@ -863,26 +863,56 @@ gst_avi_demux_add_stream (GstAviDemux *avi) /* create stream name + pad */ switch (strh->type) { case GST_RIFF_FCC_vids: + { + char *codec_name = NULL; + GstTagList *list = gst_tag_list_new (); padname = g_strdup_printf ("video_%02d", avi->num_v_streams); templ = gst_element_class_get_pad_template (klass, "video_%02d"); - caps = gst_riff_create_video_caps (strf.vids->compression, strh, strf.vids); + caps = gst_riff_create_video_caps (strf.vids->compression, strh, + strf.vids, &codec_name); + gst_tag_list_add (list, GST_TAG_MERGE_APPEND, GST_TAG_VIDEO_CODEC, + codec_name, NULL); + gst_element_found_tags (GST_ELEMENT (avi), list); + gst_tag_list_free (list); + if (codec_name) g_free (codec_name); g_free (strf.vids); avi->num_v_streams++; break; + } case GST_RIFF_FCC_auds: + { + char *codec_name = NULL; + GstTagList *list = gst_tag_list_new (); padname = g_strdup_printf ("audio_%02d", avi->num_a_streams); templ = gst_element_class_get_pad_template (klass, "audio_%02d"); - caps = gst_riff_create_audio_caps (strf.auds->format, strh, strf.auds); + caps = gst_riff_create_audio_caps (strf.auds->format, strh, strf.auds, + &codec_name); + gst_tag_list_add (list, GST_TAG_MERGE_APPEND, GST_TAG_AUDIO_CODEC, + codec_name, NULL); + gst_element_found_tags (GST_ELEMENT (avi), list); + gst_tag_list_free (list); + if (codec_name) g_free (codec_name); g_free (strf.auds); avi->num_a_streams++; break; + } case GST_RIFF_FCC_iavs: + { + char *codec_name = NULL; + GstTagList *list = gst_tag_list_new (); padname = g_strdup_printf ("video_%02d", avi->num_v_streams); templ = gst_element_class_get_pad_template (klass, "video_%02d"); - caps = gst_riff_create_iavs_caps (strh->fcc_handler, strh, strf.iavs); + caps = gst_riff_create_iavs_caps (strh->fcc_handler, strh, strf.iavs, + &codec_name); + gst_tag_list_add (list, GST_TAG_MERGE_APPEND, GST_TAG_VIDEO_CODEC, + codec_name, NULL); + gst_element_found_tags (GST_ELEMENT (avi), list); + gst_tag_list_free (list); + if (codec_name) g_free (codec_name); g_free (strf.iavs); avi->num_v_streams++; break; + } default: g_assert (0); } -- cgit