1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-28 06:47:34 +00:00

LibVideo/VP9: Implement threaded tile column decoding

This adds a new WorkerThread class to run one task asynchronously,
and allow waiting for that thread to finish its work.

TileContexts are placed into multiple tile column vectors with their
streams to read from pre-created. Once those are ready, the threads can
start their work on each vector separately. The main thread waits for
those tasks to finish, then sums up the syntax element counts for each
tile that was decoded.
This commit is contained in:
Zaggy1024 2023-04-13 20:51:24 -05:00 committed by Jelle Raaijmakers
parent ba5bf412e5
commit 036eb82aca
4 changed files with 70 additions and 9 deletions

View file

@ -149,6 +149,11 @@ public:
return m_storage[index_at(row, column)];
}
void assign(u32 row, u32 column, T&& value)
{
new (&m_storage[index_at(row, column)]) T(move(value));
}
template<typename OtherT, typename Function>
void copy_to(Vector2D<OtherT>& other, Function function) const
{