[vlc-commits] demux: mp4: fully read uncompressed samples (fix #11572)

Francois Cartegnie git at videolan.org
Fri Jun 6 12:29:18 CEST 2014


vlc | branch: master | Francois Cartegnie <fcvlcdev at free.fr> | Fri Jun  6 12:22:15 2014 +0200| [2815ff05ba582c3a2d71f9c912a57873b0a62d2f] | committer: Francois Cartegnie

demux: mp4: fully read uncompressed samples (fix #11572)

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=2815ff05ba582c3a2d71f9c912a57873b0a62d2f
---

 modules/demux/mp4/mp4.c |   11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/modules/demux/mp4/mp4.c b/modules/demux/mp4/mp4.c
index 8bbd687..a94fc19 100644
--- a/modules/demux/mp4/mp4.c
+++ b/modules/demux/mp4/mp4.c
@@ -3408,17 +3408,18 @@ static uint32_t MP4_TrackGetReadSize( mp4_track_t *p_track, uint32_t *pi_nb_samp
 
         /* uncompressed */
         *pi_nb_samples = 0;
-        mtime_t i_length = CLOCK_FREQ / 10;
-        for( uint32_t i=p_track->i_sample; i<p_chunk->i_sample_count; i++ )
+        for( uint32_t i=p_track->i_sample;
+             i<p_chunk->i_sample_first+p_chunk->i_sample_count &&
+             i<p_track->i_sample_count;
+             i++ )
         {
-            i_length -= CLOCK_FREQ * p_chunk->p_sample_delta_dts[i] / p_track->i_timescale;
-            if ( i_length < 0 || *pi_nb_samples == QT_V0_MAX_SAMPLES )
-                break;
             (*pi_nb_samples)++;
             if ( p_track->i_sample_size == 0 )
                 i_size += p_track->p_sample_size[i];
             else
                 i_size += p_track->i_sample_size;
+            if ( *pi_nb_samples == QT_V0_MAX_SAMPLES )
+                break;
         }
     }
 



More information about the vlc-commits mailing list