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

LibVideo/VP9: Parse compressed header data

This patch adds compressed header parsing to the VP9 decoder (section
6.4 of the spec). This is the final decoder step before we can start to
decode tiles.
This commit is contained in:
FalseHonesty 2021-06-05 16:45:00 -04:00 committed by Andreas Kling
parent e821b349b2
commit f9899fc17f
2 changed files with 336 additions and 0 deletions

View file

@ -55,6 +55,26 @@ private:
bool setup_past_independence();
bool trailing_bits();
bool compressed_header();
bool read_tx_mode();
bool tx_mode_probs();
u8 diff_update_prob(u8 prob);
u8 decode_term_subexp();
u8 inv_remap_prob(u8 delta_prob, u8 prob);
u8 inv_recenter_nonneg(u8 v, u8 m);
bool read_coef_probs();
bool read_skip_prob();
bool read_inter_mode_probs();
bool read_interp_filter_probs();
bool read_is_inter_probs();
bool frame_reference_mode();
bool frame_reference_mode_probs();
bool read_y_mode_probs();
bool read_partition_probs();
bool mv_probs();
u8 update_mv_prob(u8 prob);
bool setup_compound_reference_mode();
u64 m_start_bit_pos { 0 };
u8 m_profile { 0 };
u8 m_frame_to_show_map_index { 0 };
@ -84,6 +104,7 @@ private:
u16 m_frame_height { 0 };
u16 m_render_width { 0 };
u16 m_render_height { 0 };
bool m_render_and_frame_size_different { false };
u16 m_mi_cols { 0 };
u16 m_mi_rows { 0 };
u16 m_sb64_cols { 0 };
@ -100,6 +121,11 @@ private:
i8 m_loop_filter_ref_deltas[MAX_REF_FRAMES];
i8 m_loop_filter_mode_deltas[2];
TXMode m_tx_mode;
ReferenceMode m_reference_mode;
ReferenceFrame m_comp_fixed_ref;
ReferenceFrame m_comp_var_ref[2];
OwnPtr<BitStream> m_bit_stream;
OwnPtr<ProbabilityTables> m_probability_tables;
OwnPtr<SyntaxElementCounter> m_syntax_element_counter;