|
|
@@ -94,21 +94,8 @@ typedef struct { |
|
|
|
} VP8Macroblock; |
|
|
|
|
|
|
|
typedef struct { |
|
|
|
#if HAVE_THREADS |
|
|
|
pthread_mutex_t lock; |
|
|
|
pthread_cond_t cond; |
|
|
|
#endif |
|
|
|
int thread_nr; |
|
|
|
int thread_mb_pos; // (mb_y << 16) | (mb_x & 0xFFFF) |
|
|
|
int wait_mb_pos; // What the current thread is waiting on. |
|
|
|
uint8_t *edge_emu_buffer; |
|
|
|
/** |
|
|
|
* For coeff decode, we need to know whether the above block had non-zero |
|
|
|
* coefficients. This means for each macroblock, we need data for 4 luma |
|
|
|
* blocks, 2 u blocks, 2 v blocks, and the luma dc block, for a total of 9 |
|
|
|
* per macroblock. We keep the last row in top_nnz. |
|
|
|
*/ |
|
|
|
DECLARE_ALIGNED(8, uint8_t, left_nnz)[9]; |
|
|
|
DECLARE_ALIGNED(16, DCTELEM, block)[6][4][16]; |
|
|
|
DECLARE_ALIGNED(16, DCTELEM, block_dc)[16]; |
|
|
|
/** |
|
|
|
* This is the index plus one of the last non-zero coeff |
|
|
|
* for each of the blocks in the current macroblock. |
|
|
@@ -117,8 +104,21 @@ typedef struct { |
|
|
|
* 2+-> full transform |
|
|
|
*/ |
|
|
|
DECLARE_ALIGNED(16, uint8_t, non_zero_count_cache)[6][4]; |
|
|
|
DECLARE_ALIGNED(16, DCTELEM, block)[6][4][16]; |
|
|
|
DECLARE_ALIGNED(16, DCTELEM, block_dc)[16]; |
|
|
|
/** |
|
|
|
* For coeff decode, we need to know whether the above block had non-zero |
|
|
|
* coefficients. This means for each macroblock, we need data for 4 luma |
|
|
|
* blocks, 2 u blocks, 2 v blocks, and the luma dc block, for a total of 9 |
|
|
|
* per macroblock. We keep the last row in top_nnz. |
|
|
|
*/ |
|
|
|
DECLARE_ALIGNED(8, uint8_t, left_nnz)[9]; |
|
|
|
int thread_nr; |
|
|
|
#if HAVE_THREADS |
|
|
|
pthread_mutex_t lock; |
|
|
|
pthread_cond_t cond; |
|
|
|
#endif |
|
|
|
int thread_mb_pos; // (mb_y << 16) | (mb_x & 0xFFFF) |
|
|
|
int wait_mb_pos; // What the current thread is waiting on. |
|
|
|
uint8_t *edge_emu_buffer; |
|
|
|
VP8FilterStrength *filter_strength; |
|
|
|
} VP8ThreadData; |
|
|
|
|
|
|
|