diff --git a/libavcodec/mpeg4video.h b/libavcodec/mpeg4video.h index 5fd5ecb0c4..846ce238b5 100644 --- a/libavcodec/mpeg4video.h +++ b/libavcodec/mpeg4video.h @@ -92,6 +92,8 @@ typedef struct Mpeg4DecContext { int divx_build; int xvid_build; int lavc_build; + ///< flag for having shown the warning about divxs invalid b frames + int showed_packed_warning; int cplx_estimation_trash_i; int cplx_estimation_trash_p; diff --git a/libavcodec/mpeg4video_parser.c b/libavcodec/mpeg4video_parser.c index b451517565..96ed519571 100644 --- a/libavcodec/mpeg4video_parser.c +++ b/libavcodec/mpeg4video_parser.c @@ -120,7 +120,7 @@ static av_cold int mpeg4video_parse_init(AVCodecParserContext *s) pc->first_picture = 1; pc->dec_ctx.m.quant_precision = 5; pc->dec_ctx.m.slice_context_count = 1; - pc->dec_ctx.m.showed_packed_warning = 1; + pc->dec_ctx.showed_packed_warning = 1; return 0; } diff --git a/libavcodec/mpeg4videodec.c b/libavcodec/mpeg4videodec.c index fb65481102..34ec2b3e61 100644 --- a/libavcodec/mpeg4videodec.c +++ b/libavcodec/mpeg4videodec.c @@ -2065,11 +2065,11 @@ static int decode_user_data(Mpeg4DecContext *ctx, GetBitContext *gb) ctx->divx_version = ver; ctx->divx_build = build; s->divx_packed = e == 3 && last == 'p'; - if (s->divx_packed && !s->showed_packed_warning) { + if (s->divx_packed && !ctx->showed_packed_warning) { av_log(s->avctx, AV_LOG_INFO, "Video uses a non-standard and " "wasteful way to store B-frames ('packed B-frames'). " "Consider using a tool like VirtualDub or avidemux to fix it.\n"); - s->showed_packed_warning = 1; + ctx->showed_packed_warning = 1; } } diff --git a/libavcodec/mpegvideo.h b/libavcodec/mpegvideo.h index a934a6d0a5..14f0a09cd8 100644 --- a/libavcodec/mpegvideo.h +++ b/libavcodec/mpegvideo.h @@ -568,7 +568,6 @@ typedef struct MpegEncContext { /* H.263 specific */ int gob_index; int obmc; ///< overlapped block motion compensation - int showed_packed_warning; ///< flag for having shown the warning about divxs invalid b frames int mb_info; ///< interval for outputting info about mb offsets as side data int prev_mb_info, last_mb_info; uint8_t *mb_info_ptr;