From 7dac8ddb20ee663ca211bd8c152228536a884605 Mon Sep 17 00:00:00 2001 From: James Almer Date: Tue, 20 Oct 2020 19:37:28 -0300 Subject: [PATCH] avcodec/av1dec: don't derive loop filter delta parameters This is now handled by CBS. Signed-off-by: James Almer --- libavcodec/av1dec.c | 60 --------------------------------------------- libavcodec/av1dec.h | 3 --- 2 files changed, 63 deletions(-) diff --git a/libavcodec/av1dec.c b/libavcodec/av1dec.c index bb4295aa6fc..e01ac6641af 100644 --- a/libavcodec/av1dec.c +++ b/libavcodec/av1dec.c @@ -26,54 +26,6 @@ #include "internal.h" #include "profiles.h" -static void setup_past_independence(AV1Frame *f) -{ - f->loop_filter_delta_enabled = 1; - - f->loop_filter_ref_deltas[AV1_REF_FRAME_INTRA] = 1; - f->loop_filter_ref_deltas[AV1_REF_FRAME_LAST] = 0; - f->loop_filter_ref_deltas[AV1_REF_FRAME_LAST2] = 0; - f->loop_filter_ref_deltas[AV1_REF_FRAME_LAST3] = 0; - f->loop_filter_ref_deltas[AV1_REF_FRAME_GOLDEN] = -1; - f->loop_filter_ref_deltas[AV1_REF_FRAME_BWDREF] = 0; - f->loop_filter_ref_deltas[AV1_REF_FRAME_ALTREF2] = -1; - f->loop_filter_ref_deltas[AV1_REF_FRAME_ALTREF] = -1; - - f->loop_filter_mode_deltas[0] = 0; - f->loop_filter_mode_deltas[1] = 0; -} - -static void load_previous_and_update(AV1DecContext *s) -{ - uint8_t primary_frame, prev_frame; - - primary_frame = s->raw_frame_header->primary_ref_frame; - prev_frame = s->raw_frame_header->ref_frame_idx[primary_frame]; - memcpy(s->cur_frame.loop_filter_ref_deltas, - s->ref[prev_frame].loop_filter_ref_deltas, - AV1_NUM_REF_FRAMES * sizeof(int8_t)); - memcpy(s->cur_frame.loop_filter_mode_deltas, - s->ref[prev_frame].loop_filter_mode_deltas, - 2 * sizeof(int8_t)); - - if (s->raw_frame_header->loop_filter_delta_update) { - for (int i = 0; i < AV1_NUM_REF_FRAMES; i++) { - if (s->raw_frame_header->update_ref_delta[i]) - s->cur_frame.loop_filter_ref_deltas[i] = - s->raw_frame_header->loop_filter_ref_deltas[i]; - } - - for (int i = 0; i < 2; i++) { - if (s->raw_frame_header->update_mode_delta[i]) - s->cur_frame.loop_filter_mode_deltas[i] = - s->raw_frame_header->loop_filter_mode_deltas[i]; - } - } - - s->cur_frame.loop_filter_delta_enabled = - s->raw_frame_header->loop_filter_delta_enabled; -} - static uint32_t inverse_recenter(int r, uint32_t v) { if (v > 2 * r) @@ -363,13 +315,6 @@ static int av1_frame_ref(AVCodecContext *avctx, AV1Frame *dst, const AV1Frame *s dst->spatial_id = src->spatial_id; dst->temporal_id = src->temporal_id; - dst->loop_filter_delta_enabled = src->loop_filter_delta_enabled; - memcpy(dst->loop_filter_ref_deltas, - src->loop_filter_ref_deltas, - AV1_NUM_REF_FRAMES * sizeof(int8_t)); - memcpy(dst->loop_filter_mode_deltas, - src->loop_filter_mode_deltas, - 2 * sizeof(int8_t)); memcpy(dst->gm_type, src->gm_type, AV1_NUM_REF_FRAMES * sizeof(uint8_t)); @@ -645,11 +590,6 @@ static int get_current_frame(AVCodecContext *avctx) return ret; } - if (s->raw_frame_header->primary_ref_frame == AV1_PRIMARY_REF_NONE) - setup_past_independence(&s->cur_frame); - else - load_previous_and_update(s); - global_motion_params(s); return ret; diff --git a/libavcodec/av1dec.h b/libavcodec/av1dec.h index 63c958ca53d..b58bc539610 100644 --- a/libavcodec/av1dec.h +++ b/libavcodec/av1dec.h @@ -39,9 +39,6 @@ typedef struct AV1Frame { int temporal_id; int spatial_id; - uint8_t loop_filter_delta_enabled; - int8_t loop_filter_ref_deltas[AV1_NUM_REF_FRAMES]; - int8_t loop_filter_mode_deltas[2]; uint8_t gm_type[AV1_NUM_REF_FRAMES]; int32_t gm_params[AV1_NUM_REF_FRAMES][6]; } AV1Frame; -- 2.39.5