On Sun, Apr 29, 2012 at 01:33:41PM -0400, Derek Buitenhuis wrote:
> From: Hendrik Leppkes <[email protected]>
> 
> The index of the motion vector has to be checked before being
> multiplied by 2 for the array index.
> 
> Signed-off-by: Michael Niedermayer <[email protected]>
> ---
>  libavcodec/indeo3.c |    4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/libavcodec/indeo3.c b/libavcodec/indeo3.c
> index ed3535a..8083940 100644
> --- a/libavcodec/indeo3.c
> +++ b/libavcodec/indeo3.c
> @@ -773,12 +773,12 @@ static int parse_bintree(Indeo3DecodeContext *ctx, 
> AVCodecContext *avctx,
>                  /* get motion vector index and setup the pointer to the mv 
> set */
>                  if (!ctx->need_resync)
>                      ctx->next_cell_data = 
> &ctx->gb.buffer[(get_bits_count(&ctx->gb) + 7) >> 3];
> -                mv_idx = *(ctx->next_cell_data++) << 1;
> +                mv_idx = *(ctx->next_cell_data++);
>                  if (mv_idx >= ctx->num_vectors) {
>                      av_log(avctx, AV_LOG_ERROR, "motion vector index out of 
> range\n");
>                      return AVERROR_INVALIDDATA;
>                  }
> -                curr_cell.mv_ptr = &ctx->mc_vectors[mv_idx];
> +                curr_cell.mv_ptr = &ctx->mc_vectors[mv_idx << 1];
>                  curr_cell.tree   = 1; /* enter the VQ tree */
>                  UPDATE_BITPOS(8);
>              } else { /* VQ tree DATA code */
> -- 

looks OK
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to