qtdemux: fix index size check and debug message
authorThiago Santos <thiagoss@osg.samsung.com>
Tue, 7 Jul 2015 19:46:33 +0000 (16:46 -0300)
committerThiago Santos <thiagoss@osg.samsung.com>
Wed, 8 Jul 2015 14:53:44 +0000 (11:53 -0300)
It is allocating samples_count + n_samples, not only n_samples

gst/isomp4/qtdemux.c

index 04cc4e4..52053f8 100644 (file)
@@ -2670,13 +2670,14 @@ qtdemux_parse_trun (GstQTDemux * qtdemux, GstByteReader * trun,
     goto fail;
   data = (guint8 *) gst_byte_reader_peek_data_unchecked (trun);
 
-  if (stream->n_samples >=
+  if (stream->n_samples + samples_count >=
       QTDEMUX_MAX_SAMPLE_INDEX_SIZE / sizeof (QtDemuxSample))
     goto index_too_big;
 
   GST_DEBUG_OBJECT (qtdemux, "allocating n_samples %u * %u (%.2f MB)",
-      stream->n_samples, (guint) sizeof (QtDemuxSample),
-      stream->n_samples * sizeof (QtDemuxSample) / (1024.0 * 1024.0));
+      stream->n_samples + samples_count, (guint) sizeof (QtDemuxSample),
+      (stream->n_samples + samples_count) *
+      sizeof (QtDemuxSample) / (1024.0 * 1024.0));
 
   /* create a new array of samples if it's the first sample parsed */
   if (stream->n_samples == 0)