summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/print_options.c3
-rw-r--r--libavcodec/mpeg12.c9
2 files changed, 11 insertions, 1 deletions
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;
}