Feb 4, 2024, 17:06 by s...@jkqxz.net: > On 02/02/2024 02:57, Lynne wrote: > >> Needed for AV1. >> >> From 81be215060a718fdc3d043847e8155ba56fcb431 Mon Sep 17 00:00:00 2001 >> From: Lynne <d...@lynne.ee> >> Date: Fri, 2 Feb 2024 03:54:06 +0100 >> Subject: [PATCH 1/2] lavc/cbs_av1: fill in ref_frame_sign_bias >> >> Needed for AV1. >> --- >> libavcodec/cbs_av1.h | 1 + >> libavcodec/cbs_av1_syntax_template.c | 10 ++++++++++ >> 2 files changed, 11 insertions(+) >> >> diff --git a/libavcodec/cbs_av1.h b/libavcodec/cbs_av1.h >> index a5402f069d..cbb43ac810 100644 >> --- a/libavcodec/cbs_av1.h >> +++ b/libavcodec/cbs_av1.h >> @@ -198,6 +198,7 @@ typedef struct AV1RawFrameHeader { >> uint8_t refresh_frame_flags; >> uint8_t allow_intrabc; >> uint8_t ref_order_hint[AV1_NUM_REF_FRAMES]; >> + uint8_t ref_frame_sign_bias[AV1_NUM_REF_FRAMES]; >> > > This isn't a syntax element so it shouldn't go in the syntax structure. Put > it in the context structure with other derived fields (the pointer is already > available as priv where you want it). > >> uint8_t frame_refs_short_signaling; >> uint8_t last_frame_idx; >> uint8_t golden_frame_idx; >> diff --git a/libavcodec/cbs_av1_syntax_template.c >> b/libavcodec/cbs_av1_syntax_template.c >> index 3be1f2d30f..00e9a6d030 100644 >> --- a/libavcodec/cbs_av1_syntax_template.c >> +++ b/libavcodec/cbs_av1_syntax_template.c >> @@ -1572,6 +1572,16 @@ static int >> FUNC(uncompressed_header)(CodedBitstreamContext *ctx, RWContext *rw, >> } >> >> if (!frame_is_intra) { >> + for (i = 0; i < AV1_REFS_PER_FRAME; i++) { >> + if (seq->enable_order_hint) { >> + int idx = current->ref_frame_idx[i]; >> + int hint = current->ref_order_hint[idx]; >> + current->ref_frame_sign_bias[i] = >> cbs_av1_get_relative_dist(seq, hint, >> + >> priv->order_hint) > 0; >> + } else { >> + infer(ref_frame_sign_bias[i], 0); >> + } >> + } >> // Derive reference frame sign biases. >> } >> >> -- >> 2.43.0.381.gb435a96ce8 >> > > Please exactly follow the layout of the specification as far as possible, > since that makes it much easier to assess whether it is correct. It looks > like the indexing is wrong? (Note that LAST_FRAME == 1.) >
It is the layout of the specifications. I just skip filling in the reorder hints since they're not really needed (it's just a lookup after all). _______________________________________________ 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".