[FFmpeg-devel] [PATCH 1/3] dca: verify FSIZE96 when encountering X96 sync code

Kostya Shishkov kostya.shishkov
Thu Jan 6 15:25:03 CET 2011


On 6 January 2011 15:07, Anssi Hannula <anssi.hannula at iki.fi> wrote:
> ---
> ?libavcodec/dca.c | ? 12 +++++++++---
> ?1 files changed, 9 insertions(+), 3 deletions(-)
>
> diff --git a/libavcodec/dca.c b/libavcodec/dca.c
> index 70aaa4e..83f529b 100644
> --- a/libavcodec/dca.c
> +++ b/libavcodec/dca.c
> @@ -1352,12 +1352,18 @@ static int dca_decode_frame(AVCodecContext * avctx,
> ? ? ? ? ? ? s->xch_present = 1;
> ? ? ? ? ? ? break;
> ? ? ? ? }
> - ? ? ? ?case 0x1d95f262:
> - ? ? ? ? ? ?av_log(avctx, AV_LOG_DEBUG, "Possible X96 extension found at %d bits\n", get_bits_count(&s->gb));
> - ? ? ? ? ? ?av_log(avctx, AV_LOG_DEBUG, "FSIZE96 = %d bytes\n", get_bits(&s->gb, 12)+1);
> + ? ? ? ?case 0x1d95f262: {
> + ? ? ? ? ? ?int fsize96 = show_bits(&s->gb, 12) + 1;
> + ? ? ? ? ? ?if (s->frame_size != (get_bits_count(&s->gb) >> 3) - 4 + fsize96)
> + ? ? ? ? ? ? ? ?continue;
> +
> + ? ? ? ? ? ?av_log(avctx, AV_LOG_DEBUG, "X96 extension found at %d bits\n", get_bits_count(&s->gb));
> + ? ? ? ? ? ?skip_bits(&s->gb, 12);
> + ? ? ? ? ? ?av_log(avctx, AV_LOG_DEBUG, "FSIZE96 = %d bytes\n", fsize96);
> ? ? ? ? ? ? av_log(avctx, AV_LOG_DEBUG, "REVNO = %d\n", get_bits(&s->gb, 4));
> ? ? ? ? ? ? break;
> ? ? ? ? }
> + ? ? ? ?}
>
> ? ? ? ? skip_bits_long(&s->gb, (-get_bits_count(&s->gb)) & 31);
> ? ? }

looks fine, waiting for Benjamin's approval



More information about the ffmpeg-devel mailing list