gst/typefind/gsttypefindfunctions.c: fix bug in length computation improve debugging...
authorBenjamin Otte <otte@gnome.org>
Fri, 23 Jan 2004 02:33:15 +0000 (02:33 +0000)
committerBenjamin Otte <otte@gnome.org>
Fri, 23 Jan 2004 02:33:15 +0000 (02:33 +0000)
Original commit message from CVS:
2004-01-23  Benjamin Otte  <in7y118@public.uni-hamburg.de>

* gst/typefind/gsttypefindfunctions.c:
(mp3_type_frame_length_from_header): fix bug in length computation
(mp3_type_find): improve debugging output

ChangeLog
gst/typefind/gsttypefindfunctions.c

index fa4f4c3411b53f611074ad802900289df821178c..8711cc749355f789b73e5b3466c655a949e246d2 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2004-01-23  Benjamin Otte  <in7y118@public.uni-hamburg.de>
+
+       * gst/typefind/gsttypefindfunctions.c:
+       (mp3_type_frame_length_from_header): fix bug in length computation 
+       (mp3_type_find): improve debugging output
+
 2004-01-23  Julien MOUTTE  <julien@moutte.net>
 
        * gst-libs/gst/play/gstplay.c: (gst_play_pipeline_setup),
index 53c463294c96f299f8c8a90dc30c08590a3290eb..429b2878d5a995a1bcef6c20d8087f3466082d86 100644 (file)
@@ -227,8 +227,7 @@ mp3_type_frame_length_from_header (guint32 header, guint *put_layer,
                                   guint *put_channels, guint *put_bitrate,
                                   guint *put_samplerate)
 {
-  guint length;
-  gulong mode, samplerate, bitrate, layer, version, channels;
+  guint bitrate, layer, length, mode, samplerate, version, channels;
 
   if ((header & 0xffe00000) != 0xffe00000)
     return 0;
@@ -279,12 +278,12 @@ mp3_type_frame_length_from_header (guint32 header, guint *put_layer,
   if (layer == 1) {
     length = ((12000 * bitrate / samplerate) + length) * 4;
   } else {
-    length += ((layer == 3 && version == 0) ? 72000 : 144000) * bitrate / samplerate;
+    length += ((layer == 3 && version != 3) ? 72000 : 144000) * bitrate / samplerate;
   }
   
   GST_LOG ("mp3typefind: alculated mp3 frame length of %u bytes", length);
-  GST_LOG ("mp3typefind: samplerate = %lu - bitrate = %lu - layer = %lu - version = %lu"
-            " - channels = %lu",
+  GST_LOG ("mp3typefind: samplerate = %u - bitrate = %u - layer = %u - version = %u"
+            " - channels = %u",
             samplerate, bitrate, layer, version, channels);
   
   if (put_layer)
@@ -349,6 +348,7 @@ mp3_type_find (GstTypeFind *tf, gpointer unused)
        head = GUINT32_FROM_BE(*((guint32 *) head_data));
         if (!(length = mp3_type_frame_length_from_header (head, &layer,
                        &channels, &bitrate, &samplerate))) {
+         GST_LOG ("%d. header at offset %"G_GUINT64_FORMAT" was not an mp3 header", found + 1, offset);
          break;
        }
        if ((prev_layer && prev_layer != layer) ||