Commit 88f41990 authored by Francois Cartegnie's avatar Francois Cartegnie Committed by Jean-Baptiste Kempf

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

Prevented playback of blockalign less audio samples

(cherry picked from commit 901cfac0e6b756cc5b0f93bf49e45666dd65d7a7)
Signed-off-by: default avatarJean-Baptiste Kempf <jb@videolan.org>
parent 6fc02a4a
...@@ -3509,7 +3509,8 @@ static uint64_t MP4_TrackGetPos( mp4_track_t *p_track ) ...@@ -3509,7 +3509,8 @@ static uint64_t MP4_TrackGetPos( mp4_track_t *p_track )
MP4_Box_data_sample_soun_t *p_soun = MP4_Box_data_sample_soun_t *p_soun =
p_track->p_sample->data.p_sample_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 - i_pos += ( p_track->i_sample -
p_track->chunk[p_track->i_chunk].i_sample_first ) * p_track->chunk[p_track->i_chunk].i_sample_first ) *
...@@ -3518,9 +3519,8 @@ static uint64_t MP4_TrackGetPos( mp4_track_t *p_track ) ...@@ -3518,9 +3519,8 @@ static uint64_t MP4_TrackGetPos( mp4_track_t *p_track )
else else
{ {
/* we read chunk by chunk unless a blockalign is requested */ /* 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 ) /
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;
p_soun->i_sample_per_packet * p_soun->i_bytes_per_frame;
} }
} }
else else
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment