[vlc-commits] demux: mp4: compute new pos for audio if blockalign is missing

Francois Cartegnie git at videolan.org
Sun Nov 16 13:12:07 CET 2014


vlc | branch: master | Francois Cartegnie <fcvlcdev at free.fr> | Sun Nov 16 13:03:01 2014 +0100| [901cfac0e6b756cc5b0f93bf49e45666dd65d7a7] | committer: Francois Cartegnie

demux: mp4: compute new pos for audio if blockalign is missing

Prevented playback of blockalign less audio samples

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

 modules/demux/mp4/mp4.c |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/modules/demux/mp4/mp4.c b/modules/demux/mp4/mp4.c
index 34bd180..aecc247 100644
--- a/modules/demux/mp4/mp4.c
+++ b/modules/demux/mp4/mp4.c
@@ -3088,7 +3088,8 @@ static uint64_t MP4_TrackGetPos( mp4_track_t *p_track )
         MP4_Box_data_sample_soun_t *p_soun =
             p_track->p_sample->data.p_sample_soun;
 
-        if( p_track->fmt.i_cat != AUDIO_ES || p_soun->i_qt_version == 0 )
+        if( p_track->fmt.i_cat != AUDIO_ES || p_soun->i_qt_version == 0 ||
+            p_track->fmt.audio.i_blockalign <= 1 )
         {
             i_pos += ( p_track->i_sample -
                        p_track->chunk[p_track->i_chunk].i_sample_first ) *
@@ -3097,9 +3098,8 @@ static uint64_t MP4_TrackGetPos( mp4_track_t *p_track )
         else
         {
             /* we read chunk by chunk unless a blockalign is requested */
-            if( p_track->fmt.audio.i_blockalign > 1 )
-                i_pos += ( p_track->i_sample - p_track->chunk[p_track->i_chunk].i_sample_first ) /
-                                p_soun->i_sample_per_packet * p_soun->i_bytes_per_frame;
+            i_pos += ( p_track->i_sample - p_track->chunk[p_track->i_chunk].i_sample_first ) /
+                        p_soun->i_sample_per_packet * p_soun->i_bytes_per_frame;
         }
     }
     else



More information about the vlc-commits mailing list