FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Public Types | Data Fields
PerThreadContext Struct Reference

Context used by codec threads and stored in their AVCodecContext thread_opaque. More...

Public Types

enum  {
  STATE_INPUT_READY, STATE_SETTING_UP, STATE_GET_BUFFER, STATE_GET_FORMAT,
  STATE_SETUP_FINISHED
}
 

Data Fields

struct FrameThreadContextparent
 
pthread_t thread
 
int thread_init
 
pthread_cond_t input_cond
 Used to wait for a new packet from the main thread.
 
pthread_cond_t progress_cond
 Used by child threads to wait for progress to change.
 
pthread_cond_t output_cond
 Used by the main thread to wait for frames to finish.
 
pthread_mutex_t mutex
 Mutex used to protect the contents of the PerThreadContext.
 
pthread_mutex_t progress_mutex
 Mutex used to protect frame progress values and progress_cond.
 
AVCodecContextavctx
 Context used to decode packets passed to this thread.
 
AVPacket avpkt
 Input packet (for decoding) or output (for encoding).
 
uint8_tbuf
 backup storage for packet data when the input packet is not refcounted
 
int allocated_buf_size
 Size allocated for buf.
 
AVFrameframe
 Output frame (for decoding) or input (for encoding).
 
int got_frame
 The output of got_picture_ptr from the last avcodec_decode_video() call.
 
int result
 The result of the last codec decode/encode() call.
 
enum PerThreadContext:: { ... }  state
 
AVFramereleased_buffers
 Array of frames passed to ff_thread_release_buffer().
 
int num_released_buffers
 
int released_buffers_allocated
 
AVFramerequested_frame
 AVFrame the codec passed to get_buffer()
 
int requested_flags
 flags passed to get_buffer() for requested_frame
 
enum AVPixelFormatavailable_formats
 Format array for get_format()
 
enum AVPixelFormat result_format
 get_format() result
 

Detailed Description

Context used by codec threads and stored in their AVCodecContext thread_opaque.

Definition at line 80 of file pthread.c.

Member Enumeration Documentation

anonymous enum
Enumerator:
STATE_INPUT_READY 

Set when the thread is awaiting a packet.

STATE_SETTING_UP 

Set before the codec has called ff_thread_finish_setup().

STATE_GET_BUFFER 

Set when the codec calls get_buffer().

State is returned to STATE_SETTING_UP afterwards.

STATE_GET_FORMAT 

Set when the codec calls get_format().

State is returned to STATE_SETTING_UP afterwards.

STATE_SETUP_FINISHED 

Set after the codec has called ff_thread_finish_setup().

Definition at line 102 of file pthread.c.

Field Documentation

struct FrameThreadContext* PerThreadContext::parent
pthread_t PerThreadContext::thread

Definition at line 83 of file pthread.c.

Referenced by frame_thread_free(), and frame_thread_init().

int PerThreadContext::thread_init

Definition at line 84 of file pthread.c.

Referenced by frame_thread_free(), and frame_thread_init().

pthread_cond_t PerThreadContext::input_cond

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

Definition at line 85 of file pthread.c.

Referenced by frame_thread_free(), frame_thread_init(), frame_worker_thread(), and submit_packet().

pthread_cond_t PerThreadContext::progress_cond
pthread_cond_t PerThreadContext::output_cond

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

Definition at line 87 of file pthread.c.

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

pthread_mutex_t PerThreadContext::mutex

Mutex used to protect the contents of the PerThreadContext.

Definition at line 89 of file pthread.c.

Referenced by frame_thread_free(), frame_thread_init(), frame_worker_thread(), and submit_packet().

pthread_mutex_t PerThreadContext::progress_mutex
AVCodecContext* PerThreadContext::avctx

Context used to decode packets passed to this thread.

Definition at line 92 of file pthread.c.

Referenced by ff_thread_decode_frame(), ff_thread_flush(), frame_thread_free(), frame_thread_init(), frame_worker_thread(), release_delayed_buffers(), and submit_packet().

AVPacket PerThreadContext::avpkt

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

Definition at line 94 of file pthread.c.

Referenced by ff_thread_decode_frame(), frame_thread_free(), frame_thread_init(), frame_worker_thread(), and submit_packet().

uint8_t* PerThreadContext::buf

backup storage for packet data when the input packet is not refcounted

Definition at line 95 of file pthread.c.

Referenced by frame_thread_free(), and submit_packet().

int PerThreadContext::allocated_buf_size

Size allocated for buf.

Definition at line 96 of file pthread.c.

Referenced by submit_packet().

AVFrame* PerThreadContext::frame

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

Definition at line 98 of file pthread.c.

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

int PerThreadContext::got_frame

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

Definition at line 99 of file pthread.c.

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

int PerThreadContext::result

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

Definition at line 100 of file pthread.c.

Referenced by ff_thread_decode_frame(), frame_worker_thread(), submit_packet(), and thread_get_buffer_internal().

enum { ... } PerThreadContext::state
AVFrame* PerThreadContext::released_buffers

Array of frames passed to ff_thread_release_buffer().

Frames are released after all threads referencing them are finished.

Definition at line 120 of file pthread.c.

Referenced by ff_thread_release_buffer(), frame_thread_free(), and release_delayed_buffers().

int PerThreadContext::num_released_buffers

Definition at line 121 of file pthread.c.

Referenced by ff_thread_release_buffer(), and release_delayed_buffers().

int PerThreadContext::released_buffers_allocated

Definition at line 122 of file pthread.c.

Referenced by ff_thread_release_buffer().

AVFrame* PerThreadContext::requested_frame

AVFrame the codec passed to get_buffer()

Definition at line 124 of file pthread.c.

Referenced by submit_packet(), and thread_get_buffer_internal().

int PerThreadContext::requested_flags

flags passed to get_buffer() for requested_frame

Definition at line 125 of file pthread.c.

Referenced by submit_packet(), and thread_get_buffer_internal().

enum AVPixelFormat* PerThreadContext::available_formats

Format array for get_format()

Definition at line 127 of file pthread.c.

Referenced by ff_thread_get_format(), and submit_packet().

enum AVPixelFormat PerThreadContext::result_format

get_format() result

Definition at line 128 of file pthread.c.

Referenced by ff_thread_get_format(), and submit_packet().


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