diff options
author | Carl Eugen Hoyos <cehoyos@ag.or.at> | 2011-12-03 03:31:24 +0100 |
---|---|---|
committer | Carl Eugen Hoyos <cehoyos@ag.or.at> | 2011-12-03 03:34:23 +0100 |
commit | 2d6a45c12a9151aa8c3407cd2981a160c71db708 (patch) | |
tree | bbfe6b97b7b930a01d9e7cdcad8340d57a2582a1 /libavcodec | |
parent | 215b7724e7ef332eab5aff8d1ab6b77a11f47c4f (diff) | |
download | ffmpeg-2d6a45c12a9151aa8c3407cd2981a160c71db708.tar.gz |
Silence warnings when decoding QNAP Systems H264 codec.
Fixes ticket #571.
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/h264.c | 3 | ||||
-rw-r--r-- | libavcodec/h264_parser.c | 3 |
2 files changed, 5 insertions, 1 deletions
diff --git a/libavcodec/h264.c b/libavcodec/h264.c index 3bc13aa2d4..2974d818e8 100644 --- a/libavcodec/h264.c +++ b/libavcodec/h264.c @@ -4083,7 +4083,8 @@ static int decode_frame(AVCodecContext *avctx, } 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; av_log(avctx, AV_LOG_ERROR, "no frame!\n"); return -1; diff --git a/libavcodec/h264_parser.c b/libavcodec/h264_parser.c index 0b8798dbed..ee766a1f27 100644 --- a/libavcodec/h264_parser.c +++ b/libavcodec/h264_parser.c @@ -148,6 +148,7 @@ static inline int parse_nal_units(AVCodecParserContext *s, unsigned int slice_type; int state = -1; const uint8_t *ptr; + int q264 = buf_size >=4 && !memcmp("Q264", buf, 4); /* set some sane default values */ s->pict_type = AV_PICTURE_TYPE_I; @@ -266,6 +267,8 @@ static inline int parse_nal_units(AVCodecParserContext *s, } buf += consumed; } + if (q264) + return 0; /* didn't find a picture! */ av_log(h->s.avctx, AV_LOG_ERROR, "missing picture in access unit with size %d\n", buf_size); return -1; |