LibVideo/VP9: Remove magic numbers for the uncompressed ref frames

This also adds a fixme to Symbols.h to group and rename the definitions
in the file.
This commit is contained in:
Zaggy1024 2023-01-29 17:17:24 -06:00 committed by Linus Groh
parent 24f3069129
commit c18728989e
2 changed files with 11 additions and 4 deletions

View file

@ -221,9 +221,9 @@ DecoderErrorOr<FrameContext> Parser::uncompressed_header()
frame_size = TRY(parse_frame_size());
render_size = TRY(parse_render_size(frame_size));
} else {
reference_frames_to_update_flags = TRY_READ(m_bit_stream->read_f8());
for (auto i = 0; i < 3; i++) {
frame_context.reference_frame_indices[i] = TRY_READ(m_bit_stream->read_bits(3));
reference_frames_to_update_flags = TRY_READ(m_bit_stream->read_bits(NUM_REF_FRAMES));
for (auto i = 0; i < REFS_PER_FRAME; i++) {
frame_context.reference_frame_indices[i] = TRY_READ(m_bit_stream->read_bits(LOG2_OF_NUM_REF_FRAMES));
frame_context.reference_frame_sign_biases[ReferenceFrameType::LastFrame + i] = TRY_READ(m_bit_stream->read_bit());
}
frame_size = TRY(parse_frame_size_with_refs(frame_context.reference_frame_indices));

View file

@ -9,6 +9,12 @@
namespace Video::VP9 {
// FIXME: These should be placed in logical groupings based on the
// context they are used in, and perhaps split into multiple
// files. While doing so, as many of these as possible should be
// renamed to be more human-readable, and most if not all should
// be constexpr variables rather than preprocessor definitions.
#define REFS_PER_FRAME 3
#define MV_FR_SIZE 4
#define MVREF_NEIGHBOURS 8
@ -20,7 +26,8 @@ namespace Video::VP9 {
#define MIN_TILE_WIDTH_B64 4
#define MAX_TILE_WIDTH_B64 64
#define MAX_MV_REF_CANDIDATES 2
#define NUM_REF_FRAMES 8
#define LOG2_OF_NUM_REF_FRAMES 3
#define NUM_REF_FRAMES 1 << LOG2_OF_NUM_REF_FRAMES
#define MAX_REF_FRAMES 4
#define IS_INTER_CONTEXTS 4
#define COMP_MODE_CONTEXTS 5