| AOMedia AV1 Codec

AV1EncRowMultiThreadInfo Struct Reference

Encoder data related to row-based multi-threading. More...

`#include <encoder.h>`

## Data Fields
int | allocated_tile_rows
int | allocated_tile_cols
int | allocated_rows
int | allocated_cols
int | thread_id_to_tile_id [64]
int * | num_tile_cols_done
int | allocated_sb_rows
bool | row_mt_exit
bool | firstpass_mt_exit
bool | mb_wiener_mt_exit
pthread_mutex_t * | mutex_
pthread_cond_t * | cond_
Row synchronization related function pointers.
void(* | sync_read_ptr )(AV1EncRowMultiThreadSync *const, int, int)
void(* | sync_write_ptr )(AV1EncRowMultiThreadSync *const, int, int, int)

## Detailed Description

Encoder data related to row-based multi-threading.

## Field Documentation

## ◆ allocated_tile_rows

int AV1EncRowMultiThreadInfo::allocated_tile_rows

Number of tile rows for which row synchronization memory is allocated.

## ◆ allocated_tile_cols

int AV1EncRowMultiThreadInfo::allocated_tile_cols

Number of tile cols for which row synchronization memory is allocated.

## ◆ allocated_rows

int AV1EncRowMultiThreadInfo::allocated_rows

Number of rows for which row synchronization memory is allocated per tile. During first-pass/look-ahead stage this equals the maximum number of macroblock rows in a tile. During encode stage, this equals the maximum number of superblock rows in a tile.

## ◆ allocated_cols

int AV1EncRowMultiThreadInfo::allocated_cols

Number of columns for which entropy context memory is allocated per tile. During encode stage, this equals the maximum number of superblock columns in a tile minus 1. The entropy context memory is not allocated during first-pass/look-ahead stage.

## ◆ thread_id_to_tile_id

int AV1EncRowMultiThreadInfo::thread_id_to_tile_id[64]

thread_id_to_tile_id[i] indicates the tile id assigned to the ith thread.

## ◆ num_tile_cols_done

int* AV1EncRowMultiThreadInfo::num_tile_cols_done

num_tile_cols_done[i] indicates the number of tile columns whose encoding is complete in the ith superblock row.

## ◆ allocated_sb_rows

int AV1EncRowMultiThreadInfo::allocated_sb_rows

Number of superblock rows in a frame for which 'num_tile_cols_done' is allocated.

## ◆ row_mt_exit

bool AV1EncRowMultiThreadInfo::row_mt_exit

Initialized to false, set to true by the worker thread that encounters an error in order to abort the processing of other worker threads.

Referenced by encode_sb_row().

## ◆ firstpass_mt_exit

bool AV1EncRowMultiThreadInfo::firstpass_mt_exit

Initialized to false, set to true during first pass encoding by the worker thread that encounters an error in order to abort the processing of other worker threads.

## ◆ mb_wiener_mt_exit

bool AV1EncRowMultiThreadInfo::mb_wiener_mt_exit

Initialized to false, set to true in cal_mb_wiener_var_hook() by the worker thread that encounters an error in order to abort the processing of other worker threads.

## ◆ mutex_

pthread_mutex_t* AV1EncRowMultiThreadInfo::mutex_

Mutex lock used while dispatching jobs.

Referenced by encode_sb_row().

## ◆ cond_

pthread_cond_t* AV1EncRowMultiThreadInfo::cond_

Condition variable used to dispatch loopfilter jobs.

## ◆ sync_read_ptr

void(* AV1EncRowMultiThreadInfo::sync_read_ptr) (AV1EncRowMultiThreadSync *const, int, int)

Reader.

Referenced by encode_frame_internal(), and encode_sb_row().

## ◆ sync_write_ptr

void(* AV1EncRowMultiThreadInfo::sync_write_ptr) (AV1EncRowMultiThreadSync *const, int, int, int)

Writer.

Referenced by encode_frame_internal(), and encode_sb_row().

The documentation for this struct was generated from the following file:

- av1/encoder/encoder.h