vlc | branch: master | Francois Cartegnie <[email protected]> | Tue Apr 14 23:58:20 2015 +0200| [ed21c7bd263d4709d2955de040c63e76a22910a5] | committer: Francois Cartegnie
demux: avi: add workaround for broken ADPCM rate/scale (fix #12726) Some muxer is trowing incorrect rate/scale and then duration. As we're not computing pts from fully decoded samples, we need a correct pts for avcodec input. Fix is possible since ADPCM uses a fixed bits/sample and header. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=ed21c7bd263d4709d2955de040c63e76a22910a5 --- modules/demux/avi/avi.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/modules/demux/avi/avi.c b/modules/demux/avi/avi.c index 34a3362..767333a 100644 --- a/modules/demux/avi/avi.c +++ b/modules/demux/avi/avi.c @@ -451,6 +451,14 @@ static int Open( vlc_object_t * p_this ) tk->i_samplesize = 0; /* ADTS/AAC VBR */ } + /* Fix broken scale/rate */ + if ( tk->i_codec == VLC_CODEC_ADPCM_IMA_WAV && + tk->i_samplesize && tk->i_samplesize > tk->i_rate ) + { + tk->i_scale = 1017; + tk->i_rate = p_auds->p_wf->nSamplesPerSec; + } + es_format_Init( &fmt, AUDIO_ES, tk->i_codec ); fmt.audio.i_channels = p_auds->p_wf->nChannels; _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
