summaryrefslogtreecommitdiff
path: root/libavcodec/ffv1dec.c
diff options
context:
space:
mode:
Diffstat (limited to 'libavcodec/ffv1dec.c')
-rw-r--r--libavcodec/ffv1dec.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/libavcodec/ffv1dec.c b/libavcodec/ffv1dec.c
index a0a50abed4..b10e212ce5 100644
--- a/libavcodec/ffv1dec.c
+++ b/libavcodec/ffv1dec.c
@@ -330,6 +330,15 @@ static int decode_slice_header(FFV1Context *f, FFV1Context *fs)
}
f->cur->sample_aspect_ratio.num = get_symbol(c, state, 0);
f->cur->sample_aspect_ratio.den = get_symbol(c, state, 0);
+
+ if (av_image_check_sar(f->width, f->height,
+ f->cur->sample_aspect_ratio) < 0) {
+ av_log(f->avctx, AV_LOG_WARNING, "ignoring invalid SAR: %u/%u\n",
+ f->cur->sample_aspect_ratio.num,
+ f->cur->sample_aspect_ratio.den);
+ f->cur->sample_aspect_ratio = (AVRational){ 0, 1 };
+ }
+
if (fs->version > 3) {
fs->slice_reset_contexts = get_rac(c, state);
fs->slice_coding_mode = get_symbol(c, state, 0);
@@ -342,6 +351,7 @@ static int decode_slice_header(FFV1Context *f, FFV1Context *fs)
}
}
}
+
return 0;
}