diff options
author | Thiago Santos <thiago.sousa.santos@collabora.com> | 2013-05-14 22:04:19 -0300 |
---|---|---|
committer | Thiago Santos <thiago.sousa.santos@collabora.com> | 2013-05-16 15:00:39 -0300 |
commit | f74f9cd3abe2f5cf00b0731e0e474027bb048f6b (patch) | |
tree | 5c439b57e19bd5d5c14efa8a5a88a796fbcc24d2 | |
parent | 62860f4fa9b071f710c50ad97f6e0ee4c71fda88 (diff) | |
download | gstreamer-plugins-bad-f74f9cd3abe2f5cf00b0731e0e474027bb048f6b.tar.gz |
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
-rw-r--r-- | ext/smoothstreaming/gstmssmanifest.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/ext/smoothstreaming/gstmssmanifest.c b/ext/smoothstreaming/gstmssmanifest.c index 4879fa29b..8b50f4a48 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; } |