[gst-cvs] gst-plugins-base: vorbisdec: don' t put invalid bitrate values into the taglist

Tim Mueller tpm at kemper.freedesktop.org
Wed Jun 3 12:50:06 PDT 2009


Module: gst-plugins-base
Branch: master
Commit: 20fb58be198e7d76ece4e6c635cda7c919fad6d2
URL:    http://cgit.freedesktop.org/gstreamer/gst-plugins-base/commit/?id=20fb58be198e7d76ece4e6c635cda7c919fad6d2

Author: Tim-Philipp Müller <tim.muller at collabora.co.uk>
Date:   Wed Jun  3 20:42:39 2009 +0100

vorbisdec: don't put invalid bitrate values into the taglist

Bitrates are stored as 32-bit signed integers in the vorbis
identification headers, but seem to be read incorrectly,
namely as unsigned 32-bit integers, into the vorbis structure
members which are of type long, which makes our check for
values <= 0 fail with files that put -1 in there for unset
values.

---

 ext/vorbis/vorbisdec.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/ext/vorbis/vorbisdec.c b/ext/vorbis/vorbisdec.c
index 1885be0..c5517bb 100644
--- a/ext/vorbis/vorbisdec.c
+++ b/ext/vorbis/vorbisdec.c
@@ -721,18 +721,18 @@ vorbis_handle_comment_packet (GstVorbisDec * vd, ogg_packet * packet)
   gst_tag_list_add (vd->taglist, GST_TAG_MERGE_REPLACE,
       GST_TAG_ENCODER_VERSION, vd->vi.version,
       GST_TAG_AUDIO_CODEC, "Vorbis", NULL);
-  if (vd->vi.bitrate_nominal > 0) {
+  if (vd->vi.bitrate_nominal > 0 && vd->vi.bitrate_nominal <= 0x7FFFFFFF) {
     gst_tag_list_add (vd->taglist, GST_TAG_MERGE_REPLACE,
         GST_TAG_NOMINAL_BITRATE, (guint) vd->vi.bitrate_nominal, NULL);
     bitrate = vd->vi.bitrate_nominal;
   }
-  if (vd->vi.bitrate_upper > 0) {
+  if (vd->vi.bitrate_upper > 0 && vd->vi.bitrate_upper <= 0x7FFFFFFF) {
     gst_tag_list_add (vd->taglist, GST_TAG_MERGE_REPLACE,
         GST_TAG_MAXIMUM_BITRATE, (guint) vd->vi.bitrate_upper, NULL);
     if (!bitrate)
       bitrate = vd->vi.bitrate_upper;
   }
-  if (vd->vi.bitrate_lower > 0) {
+  if (vd->vi.bitrate_lower > 0 && vd->vi.bitrate_lower <= 0x7FFFFFFF) {
     gst_tag_list_add (vd->taglist, GST_TAG_MERGE_REPLACE,
         GST_TAG_MINIMUM_BITRATE, (guint) vd->vi.bitrate_lower, NULL);
     if (!bitrate)





More information about the Gstreamer-commits mailing list