From 975f147abebe7e58fc74e8fb34f141ffec18dd06 Mon Sep 17 00:00:00 2001 From: Carlos Rafael Giani Date: Tue, 2 Aug 2016 13:38:25 +0200 Subject: [PATCH] asfdemux: Add byte rate based bitrate tag in case there are no audio props https://bugzilla.gnome.org/show_bug.cgi?id=769418 --- gst/asfdemux/gstasfdemux.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gst/asfdemux/gstasfdemux.c b/gst/asfdemux/gstasfdemux.c index f65bf82..283538c 100644 --- a/gst/asfdemux/gstasfdemux.c +++ b/gst/asfdemux/gstasfdemux.c @@ -2625,6 +2625,27 @@ gst_asf_demux_add_audio_stream (GstASFDemux * demux, g_free (codec_name); } + if (audio->byte_rate > 0) { + /* Some ASF files have no bitrate props object (often seen with + * ASF files that contain raw audio data). Example files can + * be generated with FFmpeg (tested with v2.8.6), like this: + * + * ffmpeg -i sine-wave.wav -c:a pcm_alaw file.asf + * + * In this case, if audio->byte_rate is nonzero, use that as + * the bitrate. */ + + guint bitrate = audio->byte_rate * 8; + + if (tags == NULL) + tags = gst_tag_list_new_empty (); + + /* Add bitrate, but only if there is none set already, since + * this is just a fallback in case there is no bitrate tag + * already present */ + gst_tag_list_add (tags, GST_TAG_MERGE_KEEP, GST_TAG_BITRATE, bitrate, NULL); + } + if (extradata) gst_buffer_unref (extradata); -- 2.7.4