[FFmpeg-devel] [PATCH]Silence Q264 warnings, v2
Carl Eugen Hoyos
cehoyos at ag.or.at
Sat Dec 3 01:17:22 CET 2011
Hi!
Attached patch silences two warnings when decoding Q264 (ticket 571).
Please comment, Carl Eugen
-------------- next part --------------
diff --git a/libavcodec/h264.c b/libavcodec/h264.c
index 3bc13aa..2974d81 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 0b8798d..ee766a1 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;
More information about the ffmpeg-devel
mailing list