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_SETUP_FINISHED }

Data Fields

struct FrameThreadContextparent
pthread_t thread
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).
int allocated_buf_size
 Size allocated for avpkt.data.
AVFrame frame
 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
AVFrame released_buffers [MAX_BUFFERS]
 Array of frames passed to ff_thread_release_buffer().
int num_released_buffers
int progress [MAX_BUFFERS][2]
 Array of progress values used by ff_thread_get_buffer().
uint8_t progress_used [MAX_BUFFERS]
AVFramerequested_frame
 AVFrame the codec passed to get_buffer().


Detailed Description

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

Definition at line 63 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_SETUP_FINISHED  Set after the codec has called ff_thread_finish_setup().

Definition at line 83 of file pthread.c.


Field Documentation

Size allocated for avpkt.data.

Definition at line 77 of file pthread.c.

Referenced by submit_packet().

Context used to decode packets passed to this thread.

Definition at line 74 of file pthread.c.

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

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

Definition at line 76 of file pthread.c.

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

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

Definition at line 79 of file pthread.c.

Referenced by ff_thread_decode_frame(), and frame_worker_thread().

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

Definition at line 80 of file pthread.c.

Referenced by ff_thread_decode_frame(), and frame_worker_thread().

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

Definition at line 67 of file pthread.c.

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

pthread_mutex_t PerThreadContext::mutex

Mutex used to protect the contents of the PerThreadContext.

Definition at line 71 of file pthread.c.

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

Definition at line 98 of file pthread.c.

Referenced by ff_thread_release_buffer(), and release_delayed_buffers().

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

Definition at line 69 of file pthread.c.

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

int PerThreadContext::progress[MAX_BUFFERS][2]

Array of progress values used by ff_thread_get_buffer().

Definition at line 103 of file pthread.c.

Referenced by allocate_progress(), and free_progress().

Used by child threads to wait for progress to change.

Definition at line 68 of file pthread.c.

Referenced by ff_thread_await_progress(), ff_thread_finish_setup(), ff_thread_get_buffer(), ff_thread_report_progress(), frame_thread_free(), frame_thread_init(), and submit_packet().

uint8_t PerThreadContext::progress_used[MAX_BUFFERS]

Definition at line 104 of file pthread.c.

Referenced by allocate_progress(), and free_progress().

Array of frames passed to ff_thread_release_buffer().

Frames are released after all threads referencing them are finished.

Definition at line 97 of file pthread.c.

Referenced by ff_thread_release_buffer(), and release_delayed_buffers().

AVFrame the codec passed to get_buffer().

Definition at line 106 of file pthread.c.

Referenced by ff_thread_get_buffer(), and submit_packet().

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

Definition at line 81 of file pthread.c.

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

Definition at line 66 of file pthread.c.

Referenced by frame_thread_free(), and frame_thread_init().


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

Generated on Fri Oct 26 02:38:24 2012 for FFmpeg by  doxygen 1.5.8