mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 04:57:45 +00:00
LibVideo: Implement inter prediction
This enables the second frame of the test video to be decoded. It appears that the test video uses a superframe (group of multiple frames) for the first chunk of the file, but we haven't implemented superframe parsing. We also ignore the show_frame flag, so for now, this means that the second frame read out is shown when it should not be. To fix this, another error type needs to be implemented that is "thrown" to decoder's client so they know to send another sample buffer.
This commit is contained in:
parent
50d4217dbc
commit
b0187dfc27
6 changed files with 487 additions and 51 deletions
|
@ -251,11 +251,13 @@ private:
|
|||
MotionVector m_near_mv[2];
|
||||
MotionVector m_nearest_mv[2];
|
||||
MotionVector m_best_mv[2];
|
||||
// FIXME: Move these to a struct to store together in one array.
|
||||
u32 m_ref_frame_width[NUM_REF_FRAMES];
|
||||
u32 m_ref_frame_height[NUM_REF_FRAMES];
|
||||
bool m_ref_subsampling_x[NUM_REF_FRAMES];
|
||||
bool m_ref_subsampling_y[NUM_REF_FRAMES];
|
||||
u8 m_ref_bit_depth[NUM_REF_FRAMES];
|
||||
|
||||
Vector<u16> m_frame_store[NUM_REF_FRAMES][3];
|
||||
|
||||
u32 m_eob_total { 0 };
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue