Silence warnings when decoding QNAP Systems H264 codec.

Fixes ticket #571.
This commit is contained in:
Carl Eugen Hoyos 2011-12-03 03:31:24 +01:00
parent 215b7724e7
commit 2d6a45c12a
2 changed files with 5 additions and 1 deletions

View File

@ -4083,7 +4083,8 @@ static int decode_frame(AVCodecContext *avctx,
} }
if(!(s->flags2 & CODEC_FLAG2_CHUNKS) && !s->current_picture_ptr){ if(!(s->flags2 & CODEC_FLAG2_CHUNKS) && !s->current_picture_ptr){
if (avctx->skip_frame >= AVDISCARD_NONREF) if (avctx->skip_frame >= AVDISCARD_NONREF ||
buf_size >= 4 && !memcmp("Q264", buf, 4))
return 0; return 0;
av_log(avctx, AV_LOG_ERROR, "no frame!\n"); av_log(avctx, AV_LOG_ERROR, "no frame!\n");
return -1; return -1;

View File

@ -148,6 +148,7 @@ static inline int parse_nal_units(AVCodecParserContext *s,
unsigned int slice_type; unsigned int slice_type;
int state = -1; int state = -1;
const uint8_t *ptr; const uint8_t *ptr;
int q264 = buf_size >=4 && !memcmp("Q264", buf, 4);
/* set some sane default values */ /* set some sane default values */
s->pict_type = AV_PICTURE_TYPE_I; s->pict_type = AV_PICTURE_TYPE_I;
@ -266,6 +267,8 @@ static inline int parse_nal_units(AVCodecParserContext *s,
} }
buf += consumed; buf += consumed;
} }
if (q264)
return 0;
/* didn't find a picture! */ /* didn't find a picture! */
av_log(h->s.avctx, AV_LOG_ERROR, "missing picture in access unit with size %d\n", buf_size); av_log(h->s.avctx, AV_LOG_ERROR, "missing picture in access unit with size %d\n", buf_size);
return -1; return -1;