[FFmpeg-devel] [PATCH 2/2] avcodec/wma: handle run_level_decode error
Michael Niedermayer
michael at niedermayer.cc
Thu Aug 26 13:33:05 EEST 2021
On Tue, Aug 24, 2021 at 09:43:43AM -0400, Olivier Crête wrote:
> From: Stéphane Cerveau <scerveau at collabora.com>
>
> Consider data as invalid if ff_wma_run_level_decode
> gets out with an error.
>
> It avoids an unpleasant sound distorsion.
>
> See http://trac.ffmpeg.org/ticket/9358
> ---
> libavcodec/wmadec.c | 11 +++++++----
> 1 file changed, 7 insertions(+), 4 deletions(-)
>
> diff --git a/libavcodec/wmadec.c b/libavcodec/wmadec.c
> index d627bbe50e..d43fe239ce 100644
> --- a/libavcodec/wmadec.c
> +++ b/libavcodec/wmadec.c
> @@ -601,15 +601,18 @@ static int wma_decode_block(WMACodecContext *s)
> if (s->channel_coded[ch]) {
> int tindex;
> WMACoef *ptr = &s->coefs1[ch][0];
> + int ret;
>
> /* special VLC tables are used for ms stereo because
> * there is potentially less energy there */
> tindex = (ch == 1 && s->ms_stereo);
> memset(ptr, 0, s->block_len * sizeof(WMACoef));
> - ff_wma_run_level_decode(s->avctx, &s->gb, &s->coef_vlc[tindex],
> - s->level_table[tindex], s->run_table[tindex],
> - 0, ptr, 0, nb_coefs[ch],
> - s->block_len, s->frame_len_bits, coef_nb_bits);
> + ret = ff_wma_run_level_decode(s->avctx, &s->gb, &s->coef_vlc[tindex],
> + s->level_table[tindex], s->run_table[tindex],
> + 0, ptr, 0, nb_coefs[ch],
> + s->block_len, s->frame_len_bits, coef_nb_bits);
> + if (ret < 0)
> + return ret;
> }
> if (s->version == 1 && s->avctx->channels >= 2)
> align_get_bits(&s->gb);
Does this just discard the packet or replace by silence ?
if it discards it, it can cause problems with av-sync
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
Observe your enemies, for they first find out your faults. -- Antisthenes
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20210826/e0845dbd/attachment.sig>
More information about the ffmpeg-devel
mailing list