From f74f9cd3abe2f5cf00b0731e0e474027bb048f6b Mon Sep 17 00:00:00 2001 From: Thiago Santos Date: Tue, 14 May 2013 22:04:19 -0300 Subject: [PATCH] mssdemux: add bitrate info to audio streams bitrate info is always present on the QualityLevel xml node as part of the adaptive selection processing, put it into caps as some decoders require it (avdec_wmav2 for example) https://bugzilla.gnome.org/show_bug.cgi?id=699924 --- ext/smoothstreaming/gstmssmanifest.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/ext/smoothstreaming/gstmssmanifest.c b/ext/smoothstreaming/gstmssmanifest.c index 4879fa29bc..8b50f4a489 100644 --- a/ext/smoothstreaming/gstmssmanifest.c +++ b/ext/smoothstreaming/gstmssmanifest.c @@ -451,8 +451,9 @@ _gst_mss_stream_add_h264_codec_data (GstCaps * caps, const gchar * codecdatastr) } static GstCaps * -_gst_mss_stream_video_caps_from_qualitylevel_xml (xmlNodePtr node) +_gst_mss_stream_video_caps_from_qualitylevel_xml (GstMssStreamQuality * q) { + xmlNodePtr node = q->xmlnode; GstCaps *caps; GstStructure *structure; gchar *fourcc = (gchar *) xmlGetProp (node, (xmlChar *) "FourCC"); @@ -556,8 +557,9 @@ _make_aacl_codec_data (guint64 sampling_rate, guint64 channels) } static GstCaps * -_gst_mss_stream_audio_caps_from_qualitylevel_xml (xmlNodePtr node) +_gst_mss_stream_audio_caps_from_qualitylevel_xml (GstMssStreamQuality * q) { + xmlNodePtr node = q->xmlnode; GstCaps *caps; GstStructure *structure; gchar *fourcc = (gchar *) xmlGetProp (node, (xmlChar *) "FourCC"); @@ -584,6 +586,9 @@ _gst_mss_stream_audio_caps_from_qualitylevel_xml (xmlNodePtr node) gst_structure_set (structure, "rate", G_TYPE_INT, (int) g_ascii_strtoull (rate, NULL, 10), NULL); } + if (q->bitrate) { + gst_structure_set (structure, "bitrate", G_TYPE_INT, q->bitrate, NULL); + } if (codec_data && strlen (codec_data)) { GstBuffer *buffer = gst_buffer_from_hex_string ((gchar *) codec_data); @@ -697,11 +702,11 @@ gst_mss_stream_get_caps (GstMssStream * stream) if (streamtype == MSS_STREAM_TYPE_VIDEO) caps = _gst_mss_stream_video_caps_from_qualitylevel_xml - (qualitylevel->xmlnode); + (qualitylevel); else if (streamtype == MSS_STREAM_TYPE_AUDIO) caps = _gst_mss_stream_audio_caps_from_qualitylevel_xml - (qualitylevel->xmlnode); + (qualitylevel); return caps; }