gst/qtdemux/qtdemux.c: For VBR audio, don't try to calculate the samples_per_frame.
authorWim Taymans <wim.taymans@gmail.com>
Wed, 19 Apr 2006 09:27:00 +0000 (09:27 +0000)
committerWim Taymans <wim.taymans@gmail.com>
Wed, 19 Apr 2006 09:27:00 +0000 (09:27 +0000)
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (qtdemux_parse_trak):
For VBR audio, don't try to calculate the samples_per_frame.
Fixes #338935.

gst/qtdemux/qtdemux.c

index 9321c45..07d426b 100644 (file)
@@ -3162,15 +3162,18 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak)
       stream->bytes_per_packet = QTDEMUX_GUINT32_GET (stsd->data + offset + 4);
       stream->bytes_per_frame = QTDEMUX_GUINT32_GET (stsd->data + offset + 8);
       stream->bytes_per_sample = QTDEMUX_GUINT32_GET (stsd->data + offset + 12);
-      stream->samples_per_frame = (stream->bytes_per_frame /
-          stream->bytes_per_packet) * stream->samples_per_packet;
-
 
       GST_LOG ("samples/packet:   %d", stream->samples_per_packet);
       GST_LOG ("bytes/packet:     %d", stream->bytes_per_packet);
       GST_LOG ("bytes/frame:      %d", stream->bytes_per_frame);
       GST_LOG ("bytes/sample:     %d", stream->bytes_per_sample);
 
+      if (!stream->sampled) {
+        stream->samples_per_frame = (stream->bytes_per_frame /
+            stream->bytes_per_packet) * stream->samples_per_packet;
+        GST_LOG ("samples/frame:    %d", stream->samples_per_frame);
+      }
+
       offset = 68;
     } else if (version == 0x00000000) {
       stream->bytes_per_sample = samplesize / 8;