diff options
-rw-r--r-- | Userland/Libraries/LibVideo/VP9/LookupTables.h | 10 | ||||
-rw-r--r-- | Userland/Libraries/LibVideo/VP9/TreeParser.cpp | 6 |
2 files changed, 10 insertions, 6 deletions
diff --git a/Userland/Libraries/LibVideo/VP9/LookupTables.h b/Userland/Libraries/LibVideo/VP9/LookupTables.h index 67c58e334b..0756719465 100644 --- a/Userland/Libraries/LibVideo/VP9/LookupTables.h +++ b/Userland/Libraries/LibVideo/VP9/LookupTables.h @@ -132,10 +132,14 @@ static constexpr int tx_size_16_tree[4] = { -Transform_8x8, -Transform_16x16 }; static constexpr int tx_size_8_tree[2] = { -Transform_4x4, -Transform_8x8 }; +inline constexpr int inter_mode(PredictionMode mode) +{ + return to_underlying(mode) - to_underlying(PredictionMode::NearestMv); +} static constexpr int inter_mode_tree[6] = { - -to_underlying(PredictionMode::ZeroMv), 2, - -to_underlying(PredictionMode::NearestMv), 4, - -to_underlying(PredictionMode::NearMv), -to_underlying(PredictionMode::NewMv) + -inter_mode(PredictionMode::ZeroMv), 2, + -inter_mode(PredictionMode::NearestMv), 4, + -inter_mode(PredictionMode::NearMv), -inter_mode(PredictionMode::NewMv) }; static constexpr int interp_filter_tree[4] = { -EightTap, 2, diff --git a/Userland/Libraries/LibVideo/VP9/TreeParser.cpp b/Userland/Libraries/LibVideo/VP9/TreeParser.cpp index 2af73aeb89..c0e9337e3e 100644 --- a/Userland/Libraries/LibVideo/VP9/TreeParser.cpp +++ b/Userland/Libraries/LibVideo/VP9/TreeParser.cpp @@ -215,9 +215,9 @@ ErrorOr<PredictionMode> TreeParser::parse_inter_mode(BitStream& bit_stream, Prob // Probabilities u8 const* probabilities = probability_table.inter_mode_probs()[mode_context_for_ref_frame_0]; - auto value = TRY(parse_tree<PredictionMode>(bit_stream, tree, [&](u8 node) { return probabilities[node]; })); - counter.m_counts_inter_mode[mode_context_for_ref_frame_0][to_underlying(value) - to_underlying(PredictionMode::NearestMv)]++; - return value; + auto value = TRY(parse_tree<u8>(bit_stream, tree, [&](u8 node) { return probabilities[node]; })); + counter.m_counts_inter_mode[mode_context_for_ref_frame_0][value]++; + return static_cast<PredictionMode>(value + to_underlying(PredictionMode::NearestMv)); } ErrorOr<InterpolationFilter> TreeParser::parse_interpolation_filter(BitStream& bit_stream, ProbabilityTables const& probability_table, SyntaxElementCounter& counter, FrameBlockContext above, FrameBlockContext left) |