avcodec/av1dec: don't derive loop filter delta parameters
This is now handled by CBS. Signed-off-by: James Almer <jamrial@gmail.com>
This commit is contained in:
parent
5ed9f8c66c
commit
7dac8ddb20
@ -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;
|
||||
|
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user