On Mon, Aug 06, 2012 at 02:48:43PM +0200, Janne Grunau wrote:
> CC: libav-sta...@libav.org
> ---
>  libavcodec/nuv.c    |    9 +++++----
>  libavcodec/rtjpeg.h |    3 +++
>  2 files changed, 8 insertions(+), 4 deletions(-)
> 
> diff --git a/libavcodec/nuv.c b/libavcodec/nuv.c
> index 2e01602..4cb9b95 100644
> --- a/libavcodec/nuv.c
> +++ b/libavcodec/nuv.c
> @@ -184,17 +184,18 @@ static int decode_frame(AVCodecContext *avctx, void 
> *data, int *data_size,
>      }
>      if (c->codec_frameheader) {
>          int w, h, q;
> -        if (buf_size < 12) {
> +        if (buf_size < RTJPEG_HEADER_SIZE || buf[4] != RTJPEG_HEADER_SIZE ||
> +            buf[5] != RTJPEG_FILE_VERSION) {
>              av_log(avctx, AV_LOG_ERROR, "invalid nuv video frame\n");
> -            return -1;
> +            return AVERROR_INVALIDDATA;
>          }
>          w = AV_RL16(&buf[6]);
>          h = AV_RL16(&buf[8]);
>          q = buf[10];
>          if (!codec_reinit(avctx, w, h, q))
>              return -1;
> -        buf = &buf[12];
> -        buf_size -= 12;
> +        buf = &buf[RTJPEG_HEADER_SIZE];
> +        buf_size -= RTJPEG_HEADER_SIZE;
>      }
>  
>      if (keyframe && c->pic.data[0])
> diff --git a/libavcodec/rtjpeg.h b/libavcodec/rtjpeg.h
> index 95b59e9..d159895 100644
> --- a/libavcodec/rtjpeg.h
> +++ b/libavcodec/rtjpeg.h
> @@ -25,6 +25,9 @@
>  #include <stdint.h>
>  #include "dsputil.h"
>  
> +#define RTJPEG_FILE_VERSION 0
> +#define RTJPEG_HEADER_SIZE 12
> +
>  typedef struct {
>      int w, h;
>      DSPContext *dsp;
> -- 

looks OK
_______________________________________________
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to