From 5f746e306fc000b4d907b16dfcf4639c8ff14ee6 Mon Sep 17 00:00:00 2001 From: Francois Cartegnie Date: Thu, 13 Apr 2017 15:48:16 +0200 Subject: [PATCH] demux: mp4: fix builtin sample size computing (fix #18224) --- modules/demux/mp4/mp4.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/modules/demux/mp4/mp4.c b/modules/demux/mp4/mp4.c index e6627ce1c1..fdd0824818 100644 --- a/modules/demux/mp4/mp4.c +++ b/modules/demux/mp4/mp4.c @@ -3379,7 +3379,7 @@ static inline uint32_t MP4_GetFixedSampleSize( const mp4_track_t *p_track, /* QuickTime "built-in" support case fixups */ if( p_track->fmt.i_cat == AUDIO_ES && - p_soun->i_compressionid == 0 && p_track->i_sample_size == 1 ) + p_soun->i_compressionid == 0 && p_track->i_sample_size <= 2 ) { switch( p_track->fmt.i_codec ) { @@ -3398,7 +3398,8 @@ static inline uint32_t MP4_GetFixedSampleSize( const mp4_track_t *p_track, case VLC_CODEC_F32B: case VLC_CODEC_F64L: case VLC_CODEC_F64B: - i_size = ((p_soun->i_samplesize+7)/8) * p_soun->i_channelcount; + if( p_track->i_sample_size < ((p_soun->i_samplesize+7U)/8U) * p_soun->i_channelcount ) + i_size = ((p_soun->i_samplesize+7)/8) * p_soun->i_channelcount; break; case VLC_CODEC_ALAW: case VLC_FOURCC( 'u', 'l', 'a', 'w' ): -- 2.11.4.GIT