From db73c4337dbac61630f7f1e86883bfffaaab4861 Mon Sep 17 00:00:00 2001 From: Thiago Santos Date: Thu, 7 Jan 2010 13:54:21 -0300 Subject: [PATCH] asfdemux: Post bitrate tag If stream bitrate object is available, post the bitrate tags. Fixes #599297 --- gst/asfdemux/gstasfdemux.c | 13 +++++++++++-- gst/asfdemux/gstasfdemux.h | 3 --- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/gst/asfdemux/gstasfdemux.c b/gst/asfdemux/gstasfdemux.c index 9757e7d384..a22fddd870 100644 --- a/gst/asfdemux/gstasfdemux.c +++ b/gst/asfdemux/gstasfdemux.c @@ -3006,6 +3006,7 @@ gst_asf_demux_process_bitrate_props_object (GstASFDemux * demux, guint8 * data, guint64 size) { guint16 num_streams, i; + AsfStream *stream; if (size < 2) goto not_enough_data; @@ -3026,8 +3027,16 @@ gst_asf_demux_process_bitrate_props_object (GstASFDemux * demux, guint8 * data, bitrate = gst_asf_demux_get_uint32 (&data, &size); if (stream_id < GST_ASF_DEMUX_NUM_STREAM_IDS) { - demux->bitrate[stream_id] = bitrate; - GST_DEBUG ("bitrate[%u] = %u", stream_id, bitrate); + GST_DEBUG_OBJECT (demux, "bitrate of stream %u = %u", stream_id, bitrate); + stream = gst_asf_demux_get_stream (demux, stream_id); + if (stream) { + if (stream->pending_tags == NULL) + stream->pending_tags = gst_tag_list_new (); + gst_tag_list_add (stream->pending_tags, GST_TAG_MERGE_REPLACE, + GST_TAG_BITRATE, bitrate, NULL); + } else { + GST_WARNING_OBJECT (demux, "Stream id %u wasn't found", stream_id); + } } else { GST_WARNING ("stream id %u is too large", stream_id); } diff --git a/gst/asfdemux/gstasfdemux.h b/gst/asfdemux/gstasfdemux.h index d28dea104f..797c40f96d 100644 --- a/gst/asfdemux/gstasfdemux.h +++ b/gst/asfdemux/gstasfdemux.h @@ -144,9 +144,6 @@ struct _GstASFDemux { gint64 packet; /* current packet */ guint speed_packets; /* Known number of packets to get in one go*/ - /* bitrates are unused at the moment */ - guint32 bitrate[GST_ASF_DEMUX_NUM_STREAM_IDS]; - gchar **languages; guint num_languages;