|
|
|
@@ -492,14 +492,14 @@ static int FUNC(frame_size)(CodedBitstreamContext *ctx, RWContext *rw, |
|
|
|
if (current->frame_size_override_flag) { |
|
|
|
fb(seq->frame_width_bits_minus_1 + 1, frame_width_minus_1); |
|
|
|
fb(seq->frame_height_bits_minus_1 + 1, frame_height_minus_1); |
|
|
|
|
|
|
|
priv->frame_width = current->frame_width_minus_1 + 1; |
|
|
|
priv->frame_height = current->frame_height_minus_1 + 1; |
|
|
|
} else { |
|
|
|
priv->frame_width = seq->max_frame_width_minus_1 + 1; |
|
|
|
priv->frame_height = seq->max_frame_height_minus_1 + 1; |
|
|
|
infer(frame_width_minus_1, seq->max_frame_width_minus_1); |
|
|
|
infer(frame_height_minus_1, seq->max_frame_height_minus_1); |
|
|
|
} |
|
|
|
|
|
|
|
priv->frame_width = current->frame_width_minus_1 + 1; |
|
|
|
priv->frame_height = current->frame_height_minus_1 + 1; |
|
|
|
|
|
|
|
CHECK(FUNC(superres_params)(ctx, rw, current)); |
|
|
|
|
|
|
|
return 0; |
|
|
|
@@ -516,14 +516,14 @@ static int FUNC(render_size)(CodedBitstreamContext *ctx, RWContext *rw, |
|
|
|
if (current->render_and_frame_size_different) { |
|
|
|
fb(16, render_width_minus_1); |
|
|
|
fb(16, render_height_minus_1); |
|
|
|
|
|
|
|
priv->render_width = current->render_width_minus_1 + 1; |
|
|
|
priv->render_height = current->render_height_minus_1 + 1; |
|
|
|
} else { |
|
|
|
priv->render_width = priv->upscaled_width; |
|
|
|
priv->render_height = priv->frame_height; |
|
|
|
infer(render_width_minus_1, current->frame_width_minus_1); |
|
|
|
infer(render_height_minus_1, current->frame_height_minus_1); |
|
|
|
} |
|
|
|
|
|
|
|
priv->render_width = current->render_width_minus_1 + 1; |
|
|
|
priv->render_height = current->render_height_minus_1 + 1; |
|
|
|
|
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|
@@ -547,6 +547,11 @@ static int FUNC(frame_size_with_refs)(CodedBitstreamContext *ctx, RWContext *rw, |
|
|
|
return AVERROR_INVALIDDATA; |
|
|
|
} |
|
|
|
|
|
|
|
infer(frame_width_minus_1, ref->upscaled_width - 1); |
|
|
|
infer(frame_height_minus_1, ref->frame_height - 1); |
|
|
|
infer(render_width_minus_1, ref->render_width - 1); |
|
|
|
infer(render_height_minus_1, ref->render_height - 1); |
|
|
|
|
|
|
|
priv->upscaled_width = ref->upscaled_width; |
|
|
|
priv->frame_width = ref->frame_width; |
|
|
|
priv->frame_height = ref->frame_height; |
|
|
|
@@ -1273,6 +1278,13 @@ static int FUNC(uncompressed_header)(CodedBitstreamContext *ctx, RWContext *rw, |
|
|
|
fb(3, frame_to_show_map_idx); |
|
|
|
frame = &priv->ref[current->frame_to_show_map_idx]; |
|
|
|
|
|
|
|
if (!frame->valid) { |
|
|
|
av_log(ctx->log_ctx, AV_LOG_ERROR, "Missing reference frame needed for " |
|
|
|
"show_existing_frame (frame_to_show_map_idx = %d).\n", |
|
|
|
current->frame_to_show_map_idx); |
|
|
|
return AVERROR_INVALIDDATA; |
|
|
|
} |
|
|
|
|
|
|
|
if (seq->decoder_model_info_present_flag && |
|
|
|
!seq->timing_info.equal_picture_interval) { |
|
|
|
fb(seq->decoder_model_info.frame_presentation_time_length_minus_1 + 1, |
|
|
|
@@ -1287,6 +1299,17 @@ static int FUNC(uncompressed_header)(CodedBitstreamContext *ctx, RWContext *rw, |
|
|
|
else |
|
|
|
infer(refresh_frame_flags, 0); |
|
|
|
|
|
|
|
infer(frame_width_minus_1, frame->upscaled_width - 1); |
|
|
|
infer(frame_height_minus_1, frame->frame_height - 1); |
|
|
|
infer(render_width_minus_1, frame->render_width - 1); |
|
|
|
infer(render_height_minus_1, frame->render_height - 1); |
|
|
|
|
|
|
|
priv->upscaled_width = frame->upscaled_width; |
|
|
|
priv->frame_width = frame->frame_width; |
|
|
|
priv->frame_height = frame->frame_height; |
|
|
|
priv->render_width = frame->render_width; |
|
|
|
priv->render_height = frame->render_height; |
|
|
|
|
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|
|