1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 12:07:45 +00:00

LibVideo: Rename VP9's ReferenceFrame enum to ReferenceFrameType

This commit is contained in:
Zaggy1024 2022-10-31 21:37:36 -05:00 committed by Andrew Kaster
parent 3610b8dd93
commit 993385f18d
3 changed files with 20 additions and 20 deletions

View file

@ -35,7 +35,7 @@ enum InterpolationFilter : u8 {
Switchable = 4 Switchable = 4
}; };
enum ReferenceFrame : u8 { enum ReferenceFrameType : u8 {
// 0 is both INTRA_FRAME and NONE because the value's meaning changes depending on which index they're in on the ref_frame array // 0 is both INTRA_FRAME and NONE because the value's meaning changes depending on which index they're in on the ref_frame array
None = 0, None = 0,
IntraFrame = 0, IntraFrame = 0,

View file

@ -1252,7 +1252,7 @@ DecoderErrorOr<void> Parser::inter_block_mode_info()
DecoderErrorOr<void> Parser::read_ref_frames() DecoderErrorOr<void> Parser::read_ref_frames()
{ {
if (seg_feature_active(SEG_LVL_REF_FRAME)) { if (seg_feature_active(SEG_LVL_REF_FRAME)) {
m_ref_frame[0] = static_cast<ReferenceFrame>(m_feature_data[m_segment_id][SEG_LVL_REF_FRAME]); m_ref_frame[0] = static_cast<ReferenceFrameType>(m_feature_data[m_segment_id][SEG_LVL_REF_FRAME]);
m_ref_frame[1] = None; m_ref_frame[1] = None;
return {}; return {};
} }
@ -1547,7 +1547,7 @@ void Parser::get_block_mv(u32 candidate_row, u32 candidate_column, u8 ref_list,
} }
} }
void Parser::if_same_ref_frame_add_mv(u32 candidate_row, u32 candidate_column, ReferenceFrame ref_frame, bool use_prev) void Parser::if_same_ref_frame_add_mv(u32 candidate_row, u32 candidate_column, ReferenceFrameType ref_frame, bool use_prev)
{ {
for (auto ref_list = 0u; ref_list < 2; ref_list++) { for (auto ref_list = 0u; ref_list < 2; ref_list++) {
get_block_mv(candidate_row, candidate_column, ref_list, use_prev); get_block_mv(candidate_row, candidate_column, ref_list, use_prev);
@ -1558,23 +1558,23 @@ void Parser::if_same_ref_frame_add_mv(u32 candidate_row, u32 candidate_column, R
} }
} }
void Parser::scale_mv(u8 ref_list, ReferenceFrame ref_frame) void Parser::scale_mv(u8 ref_list, ReferenceFrameType ref_frame)
{ {
auto candidate_frame = m_candidate_frame[ref_list]; auto candidate_frame = m_candidate_frame[ref_list];
if (m_ref_frame_sign_bias[candidate_frame] != m_ref_frame_sign_bias[ref_frame]) if (m_ref_frame_sign_bias[candidate_frame] != m_ref_frame_sign_bias[ref_frame])
m_candidate_mv[ref_list] *= -1; m_candidate_mv[ref_list] *= -1;
} }
void Parser::if_diff_ref_frame_add_mv(u32 candidate_row, u32 candidate_column, ReferenceFrame ref_frame, bool use_prev) void Parser::if_diff_ref_frame_add_mv(u32 candidate_row, u32 candidate_column, ReferenceFrameType ref_frame, bool use_prev)
{ {
for (auto ref_list = 0u; ref_list < 2; ref_list++) for (auto ref_list = 0u; ref_list < 2; ref_list++)
get_block_mv(candidate_row, candidate_column, ref_list, use_prev); get_block_mv(candidate_row, candidate_column, ref_list, use_prev);
auto mvs_are_same = m_candidate_mv[0] == m_candidate_mv[1]; auto mvs_are_same = m_candidate_mv[0] == m_candidate_mv[1];
if (m_candidate_frame[0] > ReferenceFrame::IntraFrame && m_candidate_frame[0] != ref_frame) { if (m_candidate_frame[0] > ReferenceFrameType::IntraFrame && m_candidate_frame[0] != ref_frame) {
scale_mv(0, ref_frame); scale_mv(0, ref_frame);
add_mv_ref_list(0); add_mv_ref_list(0);
} }
if (m_candidate_frame[1] > ReferenceFrame::IntraFrame && m_candidate_frame[1] != ref_frame && !mvs_are_same) { if (m_candidate_frame[1] > ReferenceFrameType::IntraFrame && m_candidate_frame[1] != ref_frame && !mvs_are_same) {
scale_mv(1, ref_frame); scale_mv(1, ref_frame);
add_mv_ref_list(1); add_mv_ref_list(1);
} }
@ -1604,7 +1604,7 @@ void Parser::clamp_mv_ref(u8 i)
} }
// 6.5.1 Find MV refs syntax // 6.5.1 Find MV refs syntax
void Parser::find_mv_refs(ReferenceFrame reference_frame, i32 block) void Parser::find_mv_refs(ReferenceFrameType reference_frame, i32 block)
{ {
m_ref_mv_count = 0; m_ref_mv_count = 0;
bool different_ref_found = false; bool different_ref_found = false;

View file

@ -128,7 +128,7 @@ private:
DecoderErrorOr<i32> read_coef(Token token); DecoderErrorOr<i32> read_coef(Token token);
/* (6.5) Motion Vector Prediction */ /* (6.5) Motion Vector Prediction */
void find_mv_refs(ReferenceFrame, i32 block); void find_mv_refs(ReferenceFrameType, i32 block);
void find_best_ref_mvs(u8 ref_list); void find_best_ref_mvs(u8 ref_list);
bool use_mv_hp(MotionVector const& delta_mv); bool use_mv_hp(MotionVector const& delta_mv);
void append_sub8x8_mvs(i32 block, u8 ref_list); void append_sub8x8_mvs(i32 block, u8 ref_list);
@ -137,9 +137,9 @@ private:
MotionVector clamp_mv(MotionVector mvec, i32 border); MotionVector clamp_mv(MotionVector mvec, i32 border);
size_t get_image_index(u32 row, u32 column); size_t get_image_index(u32 row, u32 column);
void get_block_mv(u32 candidate_row, u32 candidate_column, u8 ref_list, bool use_prev); void get_block_mv(u32 candidate_row, u32 candidate_column, u8 ref_list, bool use_prev);
void if_same_ref_frame_add_mv(u32 candidate_row, u32 candidate_column, ReferenceFrame ref_frame, bool use_prev); void if_same_ref_frame_add_mv(u32 candidate_row, u32 candidate_column, ReferenceFrameType ref_frame, bool use_prev);
void if_diff_ref_frame_add_mv(u32 candidate_row, u32 candidate_column, ReferenceFrame ref_frame, bool use_prev); void if_diff_ref_frame_add_mv(u32 candidate_row, u32 candidate_column, ReferenceFrameType ref_frame, bool use_prev);
void scale_mv(u8 ref_list, ReferenceFrame ref_frame); void scale_mv(u8 ref_list, ReferenceFrameType ref_frame);
void add_mv_ref_list(u8 ref_list); void add_mv_ref_list(u8 ref_list);
Gfx::Point<size_t> get_decoded_point_for_plane(u32 row, u32 column, u8 plane); Gfx::Point<size_t> get_decoded_point_for_plane(u32 row, u32 column, u8 plane);
@ -234,7 +234,7 @@ private:
// The column to use for getting partition tree probability lookups. // The column to use for getting partition tree probability lookups.
u32 m_col { 0 }; u32 m_col { 0 };
TXSize m_tx_size { TX_4x4 }; TXSize m_tx_size { TX_4x4 };
ReferenceFrame m_ref_frame[2]; ReferenceFrameType m_ref_frame[2];
bool m_is_inter { false }; bool m_is_inter { false };
bool m_is_compound { false }; bool m_is_compound { false };
IntraMode m_default_intra_mode { DcPred }; IntraMode m_default_intra_mode { DcPred };
@ -244,8 +244,8 @@ private:
u8 m_num_4x4_h { 0 }; u8 m_num_4x4_h { 0 };
u8 m_uv_mode { 0 }; // FIXME: Is u8 the right size? u8 m_uv_mode { 0 }; // FIXME: Is u8 the right size?
Vector<Array<IntraMode, 4>> m_sub_modes; Vector<Array<IntraMode, 4>> m_sub_modes;
ReferenceFrame m_left_ref_frame[2]; ReferenceFrameType m_left_ref_frame[2];
ReferenceFrame m_above_ref_frame[2]; ReferenceFrameType m_above_ref_frame[2];
bool m_left_intra { false }; bool m_left_intra { false };
bool m_above_intra { false }; bool m_above_intra { false };
bool m_left_single { false }; bool m_left_single { false };
@ -272,8 +272,8 @@ private:
bool m_use_hp { false }; bool m_use_hp { false };
TXMode m_tx_mode; TXMode m_tx_mode;
ReferenceMode m_reference_mode; ReferenceMode m_reference_mode;
ReferenceFrame m_comp_fixed_ref; ReferenceFrameType m_comp_fixed_ref;
ReferenceFrame m_comp_var_ref[2]; ReferenceFrameType m_comp_var_ref[2];
MotionVector m_block_mvs[2][4]; MotionVector m_block_mvs[2][4];
Vector<u8> m_prev_segment_ids; Vector<u8> m_prev_segment_ids;
@ -282,12 +282,12 @@ private:
Vector<u32> m_mi_sizes; Vector<u32> m_mi_sizes;
Vector<u8> m_y_modes; Vector<u8> m_y_modes;
Vector<u8> m_segment_ids; Vector<u8> m_segment_ids;
Vector<Array<ReferenceFrame, 2>> m_ref_frames; Vector<Array<ReferenceFrameType, 2>> m_ref_frames;
Vector<Array<ReferenceFrame, 2>> m_prev_ref_frames; Vector<Array<ReferenceFrameType, 2>> m_prev_ref_frames;
Vector<Array<MotionVector, 2>> m_mvs; Vector<Array<MotionVector, 2>> m_mvs;
Vector<Array<MotionVector, 2>> m_prev_mvs; Vector<Array<MotionVector, 2>> m_prev_mvs;
MotionVector m_candidate_mv[2]; MotionVector m_candidate_mv[2];
ReferenceFrame m_candidate_frame[2]; ReferenceFrameType m_candidate_frame[2];
Vector<Array<Array<MotionVector, 4>, 2>> m_sub_mvs; Vector<Array<Array<MotionVector, 4>, 2>> m_sub_mvs;
u8 m_ref_mv_count { 0 }; u8 m_ref_mv_count { 0 };
MotionVector m_ref_list_mv[2]; MotionVector m_ref_list_mv[2];