]> git.sesse.net Git - ffmpeg/commitdiff
avcodec/av1dec: parse dimensions from the sequence header in extradata
authorJames Almer <jamrial@gmail.com>
Fri, 25 Sep 2020 14:20:41 +0000 (11:20 -0300)
committerJames Almer <jamrial@gmail.com>
Wed, 30 Sep 2020 00:38:27 +0000 (21:38 -0300)
Signed-off-by: James Almer <jamrial@gmail.com>
libavcodec/av1dec.c

index 0bb04a3e44a8fd1d9cb3cc51c384ab6fbc49c7ee..f6b9fbbac3caf291145b92150c8df33db8f18b6f 100644 (file)
@@ -405,6 +405,9 @@ static av_cold int av1_decode_free(AVCodecContext *avctx)
 static int set_context_with_sequence(AVCodecContext *avctx,
                                      const AV1RawSequenceHeader *seq)
 {
+    int width = seq->max_frame_width_minus_1 + 1;
+    int height = seq->max_frame_height_minus_1 + 1;
+
     avctx->profile = seq->seq_profile;
     avctx->level = seq->seq_level_idx[0];
 
@@ -423,6 +426,13 @@ static int set_context_with_sequence(AVCodecContext *avctx,
         break;
     }
 
+    if (avctx->width != width || avctx->height != height) {
+        int ret = ff_set_dimensions(avctx, width, height);
+        if (ret < 0)
+            return ret;
+    }
+    avctx->sample_aspect_ratio = (AVRational) { 1, 1 };
+
     if (seq->timing_info.num_units_in_display_tick &&
         seq->timing_info.time_scale) {
         av_reduce(&avctx->framerate.den, &avctx->framerate.num,