59 for (i = 0; i < 2; i++) {
64 memset((
uint8_t*)pic + off, 0,
sizeof(*pic) - off);
87 for (i = 0; i < 2; i++) {
103 for (i = 0; i < 2; i++)
126 #if CONFIG_ERROR_RESILIENCE
137 for (i = 0; i < 2; i++) {
171 "hardware accelerator failed to decode picture\n");
174 #if CONFIG_ERROR_RESILIENCE
int long_ref
1->long term reference 0->short term reference
int ff_h264_field_end(H264Context *h, int in_setup)
void av_buffer_unref(AVBufferRef **buf)
Free a given reference and automatically free the buffer if there are no more references to it...
AVBufferRef * buf[AV_NUM_DATA_POINTERS]
AVBuffer references backing the data for this frame.
MMCO mmco[MAX_MMCO_COUNT]
memory management control operations buffer.
void ff_er_frame_end(ERContext *s)
AVBufferRef * mb_type_buf
int16_t(*[2] motion_val)[2]
int prev_poc_msb
poc_msb of the last reference pic for POC type 0
struct AVHWAccel * hwaccel
Hardware accelerator in use.
#define av_assert0(cond)
assert() equivalent, that is always enabled.
int prev_frame_num_offset
for POC type 2
int field_picture
whether or not picture was encoded in separate fields
Multithreading support functions.
unsigned int ref_count[2]
num_ref_idx_l0/1_active_minus1 + 1
#define PICT_BOTTOM_FIELD
int ff_thread_ref_frame(ThreadFrame *dst, ThreadFrame *src)
AVBufferRef * qscale_table_buf
high precision timer, useful to profile code
int recovered
picture at IDR or recovery point + recovery count
H.264 / AVC / MPEG4 part10 codec.
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
void ff_thread_release_buffer(AVCodecContext *avctx, ThreadFrame *f)
Wrapper around release_buffer() frame-for multithreaded codecs.
void * hwaccel_picture_private
hardware accelerator private data
int active_thread_type
Which multithreading methods are in use by the codec.
int ref_poc[2][2][32]
POCs of the frames used as reference (FIXME need per slice)
simple assert() macros that are a bit more flexible than ISO C assert().
void av_log(void *avcl, int level, const char *fmt,...)
int frame_num
frame_num (raw frame_num from slice header)
AVBufferRef * hwaccel_priv_buf
useful rectangle filling function
AVBufferRef * motion_val_buf[2]
int frame_num_offset
for POC type 2
#define FF_THREAD_FRAME
Decode more than one frame at once.
int needs_realloc
picture needs to be reallocated (eg due to a frame size change)
void ff_thread_report_progress(ThreadFrame *f, int n, int field)
Notify later decoding threads when part of their reference picture is ready.
Context Adaptive Binary Arithmetic Coder inline functions.
H264Picture ref_list[2][48]
0..15: frame refs, 16..47: mbaff field refs.
int ff_h264_execute_ref_pic_marking(H264Context *h, MMCO *mmco, int mmco_count)
Execute the reference picture marking (memory management control operations).
Libavcodec external API header.
H264 / AVC / MPEG4 part10 codec data table
int(* end_frame)(AVCodecContext *avctx)
Called at the end of each frame or field picture.
int prev_frame_num
frame_num of the last pic for POC type 1/2
int field_poc[2]
top/bottom POC
main external API structure.
uint8_t * data
The data buffer.
int ff_h264_ref_picture(H264Context *h, H264Picture *dst, H264Picture *src)
int mmco_reset
MMCO_RESET set this 1.
H264Picture * cur_pic_ptr
int mbaff
1 -> MBAFF frame 0-> not MBAFF
int pic_id
pic_num (short -> no wrap version of pic_num, pic_num & max_pic_num; long -> long_pic_num) ...
common internal api header.
H.264 / AVC / MPEG4 part10 motion vector predicion.
AVBufferRef * av_buffer_ref(AVBufferRef *buf)
Create a new reference to an AVBuffer.
int prev_poc_lsb
poc_lsb of the last reference pic for POC type 0
int16_t(*[2] motion_val)[2]
int current_slice
current slice number, used to initalize slice_num of each thread/context
AVBufferRef * ref_index_buf[2]
int ref_count[2][2]
number of entries in ref_poc (FIXME need per slice)
void ff_h264_unref_picture(H264Context *h, H264Picture *pic)
Context Adaptive Binary Arithmetic Coder.