L'octidi 8 floréal, an CCXXV, Michael Niedermayer a écrit :
> The code does use 16bit sized arrays later so larger deltas would not work
> 
> Signed-off-by: Michael Niedermayer <mich...@niedermayer.cc>
> ---
>  libavcodec/svq3.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/libavcodec/svq3.c b/libavcodec/svq3.c
> index 3e35fd73d6..76a465b9c0 100644
> --- a/libavcodec/svq3.c
> +++ b/libavcodec/svq3.c
> @@ -551,7 +551,7 @@ static inline int svq3_mc_dir(SVQ3Context *s, int size, 
> int mode,
>                  dy = get_interleaved_se_golomb(&s->gb_slice);
>                  dx = get_interleaved_se_golomb(&s->gb_slice);
>  
> -                if (dx == INVALID_VLC || dy == INVALID_VLC) {

> +                if (dx != (int16_t)dx || dy != (int16_t)dy) {

Is this cast not an undefined behaviour if dx is not in the range?

An explicit "& 0x7FFF" may be better. Or using uint16_t, I do not know
the code.

>                      av_log(s->avctx, AV_LOG_ERROR, "invalid MV vlc\n");
>                      return -1;
>                  }

Regards,

-- 
  Nicolas George

Attachment: signature.asc
Description: Digital signature

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to