gst/qtdemux/qtdemux.c: Don't crash on twos/sowt/raw audio. #345830.
authorWim Taymans <wim.taymans@gmail.com>
Fri, 7 Jul 2006 14:30:26 +0000 (14:30 +0000)
committerWim Taymans <wim.taymans@gmail.com>
Fri, 7 Jul 2006 14:30:26 +0000 (14:30 +0000)
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (qtdemux_parse_trak):
Don't crash on twos/sowt/raw audio. #345830.

ChangeLog
gst/qtdemux/qtdemux.c

index d05b3c276bdd220a6043720c3eab8cc5c82173c7..277c50f47e0f414c48aeced88146a47cfef0f78c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2006-07-07  Wim Taymans  <wim@fluendo.com>
+
+       * gst/qtdemux/qtdemux.c: (qtdemux_parse_trak):
+       Don't crash on twos/sowt/raw audio. #345830.
+
 2006-07-07  Wim Taymans  <wim@fluendo.com>
 
        Patch by: Lutz Mueller <lutz at topfrose dot de>
index b2cbae3854df454b99758e3835197a5256f55032..5dd0e0dcb2a09b63a05df242cce748f6b8411cd5 100644 (file)
@@ -3256,10 +3256,14 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak)
       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);
+      if (fourcc != GST_MAKE_FOURCC ('t', 'w', 'o', 's') &&
+          fourcc != GST_MAKE_FOURCC ('s', 'o', 'w', 't') &&
+          fourcc != GST_MAKE_FOURCC ('r', 'a', 'w', ' ')) {
+        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 == 0x00020000) {