On 10/27/2020 5:57 PM, Mark Thompson wrote: > On 17/10/2020 20:30, James Almer wrote: >> Signed-off-by: James Almer <jamr...@gmail.com> >> --- >> libavcodec/av1dec.c | 9 +++++++-- >> 1 file changed, 7 insertions(+), 2 deletions(-) >> >> diff --git a/libavcodec/av1dec.c b/libavcodec/av1dec.c >> index 54aeba1812..04aaf5d148 100644 >> --- a/libavcodec/av1dec.c >> +++ b/libavcodec/av1dec.c >> @@ -109,13 +109,18 @@ static void read_global_param(AV1DecContext *s, >> int type, int ref, int idx) >> { >> uint8_t primary_frame, prev_frame; >> uint32_t abs_bits, prec_bits, round, prec_diff, sub, mx; >> - int32_t r; >> + int32_t r, prev_gm_param; >> primary_frame = s->raw_frame_header->primary_ref_frame; >> prev_frame = s->raw_frame_header->ref_frame_idx[primary_frame]; >> abs_bits = AV1_GM_ABS_ALPHA_BITS; >> prec_bits = AV1_GM_ALPHA_PREC_BITS; >> + if (s->raw_frame_header->primary_ref_frame == >> AV1_PRIMARY_REF_NONE) >> + prev_gm_param = s->cur_frame.gm_params[ref][idx]; > > To clarify that I'm reading the standard correctly here, this is the > value set for PrevGmParams by setup_past_independance(), which then > matches the default for gm_params at the top of global_motion_params() > so you've reused it here?
Correct. Assuming s->cur_frame.gm_params will contain the default values when primary_ref_frame == AV1_PRIMARY_REF_NONE (as it happens in global_motion_params()) simplifies the code quite a bit. Otherwise I'd have to add some array with said defaults somewhere. > >> + else >> + prev_gm_param = s->ref[prev_frame].gm_params[ref][idx]; >> + >> if (idx < 2) { >> if (type == AV1_WARP_MODEL_TRANSLATION) { >> abs_bits = AV1_GM_ABS_TRANS_ONLY_BITS - >> @@ -131,7 +136,7 @@ static void read_global_param(AV1DecContext *s, >> int type, int ref, int idx) >> prec_diff = AV1_WARPEDMODEL_PREC_BITS - prec_bits; >> sub = (idx % 3) == 2 ? (1 << prec_bits) : 0; >> mx = 1 << abs_bits; >> - r = (s->ref[prev_frame].gm_params[ref][idx] >> prec_diff) - sub; >> + r = (prev_gm_param >> prec_diff) - sub; >> s->cur_frame.gm_params[ref][idx] = >> >> (decode_signed_subexp_with_ref(s->raw_frame_header->gm_params[ref][idx], >> > > - Mark > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".