FFmpeg
Data Fields
PerThreadContext Struct Reference

Context used by codec threads and stored in their AVCodecInternal thread_ctx. More...

Data Fields

struct FrameThreadContextparent
 
pthread_t thread
 
int thread_init
 
unsigned pthread_init_cnt
 Number of successfully initialized mutexes/conditions. More...
 
pthread_cond_t input_cond
 Used to wait for a new packet from the main thread. More...
 
pthread_cond_t progress_cond
 Used by child threads to wait for progress to change. More...
 
pthread_cond_t output_cond
 Used by the main thread to wait for frames to finish. More...
 
pthread_mutex_t mutex
 Mutex used to protect the contents of the PerThreadContext. More...
 
pthread_mutex_t progress_mutex
 Mutex used to protect frame progress values and progress_cond. More...
 
AVCodecContextavctx
 Context used to decode packets passed to this thread. More...
 
AVPacketavpkt
 Input packet (for decoding) or output (for encoding). More...
 
AVFrameframe
 Output frame (for decoding) or input (for encoding). More...
 
int got_frame
 The output of got_picture_ptr from the last avcodec_decode_video() call. More...
 
int result
 The result of the last codec decode/encode() call. More...
 
atomic_int state
 
int die
 Set when the thread should exit. More...
 
int hwaccel_serializing
 
int async_serializing
 
int hwaccel_threadsafe
 
atomic_int debug_threads
 Set if the FF_DEBUG_THREADS option is set. More...
 

Detailed Description

Context used by codec threads and stored in their AVCodecInternal thread_ctx.

Definition at line 76 of file pthread_frame.c.

Field Documentation

◆ parent

struct FrameThreadContext* PerThreadContext::parent

◆ thread

pthread_t PerThreadContext::thread

Definition at line 79 of file pthread_frame.c.

Referenced by ff_frame_thread_free(), and init_thread().

◆ thread_init

int PerThreadContext::thread_init

Definition at line 80 of file pthread_frame.c.

Referenced by ff_frame_thread_free(), and init_thread().

◆ pthread_init_cnt

unsigned PerThreadContext::pthread_init_cnt

Number of successfully initialized mutexes/conditions.

Definition at line 81 of file pthread_frame.c.

◆ input_cond

pthread_cond_t PerThreadContext::input_cond

Used to wait for a new packet from the main thread.

Definition at line 82 of file pthread_frame.c.

Referenced by ff_frame_thread_free(), frame_worker_thread(), and submit_packet().

◆ progress_cond

pthread_cond_t PerThreadContext::progress_cond

Used by child threads to wait for progress to change.

Definition at line 83 of file pthread_frame.c.

Referenced by ff_thread_await_progress(), ff_thread_finish_setup(), ff_thread_report_progress(), frame_worker_thread(), and submit_packet().

◆ output_cond

pthread_cond_t PerThreadContext::output_cond

Used by the main thread to wait for frames to finish.

Definition at line 84 of file pthread_frame.c.

Referenced by ff_thread_decode_frame(), frame_worker_thread(), and park_frame_worker_threads().

◆ mutex

pthread_mutex_t PerThreadContext::mutex

Mutex used to protect the contents of the PerThreadContext.

Definition at line 86 of file pthread_frame.c.

Referenced by ff_frame_thread_free(), frame_worker_thread(), and submit_packet().

◆ progress_mutex

pthread_mutex_t PerThreadContext::progress_mutex

Mutex used to protect frame progress values and progress_cond.

Definition at line 87 of file pthread_frame.c.

Referenced by ff_thread_await_progress(), ff_thread_decode_frame(), ff_thread_finish_setup(), ff_thread_report_progress(), frame_worker_thread(), park_frame_worker_threads(), and submit_packet().

◆ avctx

AVCodecContext* PerThreadContext::avctx

Context used to decode packets passed to this thread.

Definition at line 89 of file pthread_frame.c.

Referenced by ff_frame_thread_free(), ff_thread_decode_frame(), ff_thread_flush(), frame_worker_thread(), init_thread(), submit_packet(), and thread_set_name().

◆ avpkt

AVPacket* PerThreadContext::avpkt

Input packet (for decoding) or output (for encoding).

Definition at line 91 of file pthread_frame.c.

Referenced by ff_frame_thread_free(), ff_thread_decode_frame(), frame_worker_thread(), init_thread(), and submit_packet().

◆ frame

AVFrame* PerThreadContext::frame

Output frame (for decoding) or input (for encoding).

Definition at line 93 of file pthread_frame.c.

Referenced by ff_frame_thread_free(), ff_thread_decode_frame(), ff_thread_flush(), frame_worker_thread(), and init_thread().

◆ got_frame

int PerThreadContext::got_frame

The output of got_picture_ptr from the last avcodec_decode_video() call.

Definition at line 94 of file pthread_frame.c.

Referenced by ff_thread_decode_frame(), ff_thread_flush(), frame_worker_thread(), and park_frame_worker_threads().

◆ result

int PerThreadContext::result

The result of the last codec decode/encode() call.

Definition at line 95 of file pthread_frame.c.

Referenced by ff_thread_decode_frame(), ff_thread_flush(), and frame_worker_thread().

◆ state

atomic_int PerThreadContext::state

◆ die

int PerThreadContext::die

Set when the thread should exit.

Definition at line 99 of file pthread_frame.c.

Referenced by ff_frame_thread_free(), and frame_worker_thread().

◆ hwaccel_serializing

int PerThreadContext::hwaccel_serializing

Definition at line 101 of file pthread_frame.c.

Referenced by ff_thread_finish_setup(), and frame_worker_thread().

◆ async_serializing

int PerThreadContext::async_serializing

Definition at line 102 of file pthread_frame.c.

Referenced by ff_thread_finish_setup(), and frame_worker_thread().

◆ hwaccel_threadsafe

int PerThreadContext::hwaccel_threadsafe

◆ debug_threads

atomic_int PerThreadContext::debug_threads

Set if the FF_DEBUG_THREADS option is set.

Definition at line 110 of file pthread_frame.c.

Referenced by ff_thread_await_progress(), ff_thread_report_progress(), init_thread(), and submit_packet().


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