diff --git a/doc/print_options.c b/doc/print_options.c index 339b942fb8..c369cfdb3b 100644 --- a/doc/print_options.c +++ b/doc/print_options.c @@ -39,6 +39,9 @@ static void print_usage(void) static void print_option(const AVOption *opts, const AVOption *o, int per_stream) { + if (!(o->flags & (AV_OPT_FLAG_DECODING_PARAM | AV_OPT_FLAG_ENCODING_PARAM))) + return; + printf("@item -%s%s @var{", o->name, per_stream ? "[:stream_specifier]" : ""); switch (o->type) { case AV_OPT_TYPE_BINARY: printf("hexadecimal string"); break; diff --git a/libavcodec/mpeg12.c b/libavcodec/mpeg12.c index 4a83cfd531..3f5548d6dd 100644 --- a/libavcodec/mpeg12.c +++ b/libavcodec/mpeg12.c @@ -2026,6 +2026,12 @@ static int mpeg1_decode_sequence(AVCodecContext *avctx, width = get_bits(&s->gb, 12); height = get_bits(&s->gb, 12); + if (width == 0 || height == 0) { + av_log(avctx, AV_LOG_WARNING, "Invalid horizontal or vertical size " + "value.\n"); + if (avctx->err_recognition & AV_EF_BITSTREAM) + return AVERROR_INVALIDDATA; + } s->aspect_ratio_info = get_bits(&s->gb, 4); if (s->aspect_ratio_info == 0) { av_log(avctx, AV_LOG_ERROR, "aspect ratio has forbidden 0 value\n"); @@ -2343,7 +2349,8 @@ static int decode_chunks(AVCodecContext *avctx, picture_start_code_seen = 1; if (s2->width <= 0 || s2->height <= 0) { - av_log(avctx, AV_LOG_ERROR, "%dx%d is invalid\n", s2->width, s2->height); + av_log(avctx, AV_LOG_ERROR, "Invalid frame dimensions %dx%d.\n", + s2->width, s2->height); return AVERROR_INVALIDDATA; }