summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Userland/Libraries/LibVideo/VP9/LookupTables.h10
-rw-r--r--Userland/Libraries/LibVideo/VP9/TreeParser.cpp6
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)