52 if (!pic->
f || !pic->
f->
buf[0])
60 for (i = 0; i < 2; i++) {
65 memset((
uint8_t*)pic + off, 0,
sizeof(*pic) - off);
88 for (i = 0; i < 2; i++) {
104 for (i = 0; i < 2; i++)
133 #if CONFIG_ERROR_RESILIENCE
136 memset(dst, 0,
sizeof(*dst));
144 for (i = 0; i < 2; i++) {
161 if (CONFIG_H264_VDPAU_DECODER &&
180 "hardware accelerator failed to decode picture\n");
184 if (CONFIG_H264_VDPAU_DECODER &&
189 #if CONFIG_ERROR_RESILIENCE
const struct AVCodec * codec
void ff_vdpau_h264_picture_complete(H264Context *h)
int long_ref
1->long term reference 0->short term reference
int sei_recovery_frame_cnt
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
unsigned int ref_count[2]
num_ref_idx_l0/1_active_minus1 + 1
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
void ff_h264_set_erpic(ERPicture *dst, H264Picture *src)
int field_picture
whether or not picture was encoded in separate fields
Multithreading support functions.
#define PICT_BOTTOM_FIELD
int ff_thread_ref_frame(ThreadFrame *dst, ThreadFrame *src)
#define AV_CODEC_CAP_HWACCEL_VDPAU
Codec can export data for HW decoding (VDPAU).
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 capabilities
Codec capabilities.
int ref_poc[2][2][32]
POCs of the frames/fields used as reference (FIXME need per slice)
simple assert() macros that are a bit more flexible than ISO C assert().
int frame_num
frame_num (raw frame_num from slice header)
int new
flag to keep track if the decoder context needs re-init due to changed SPS
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.
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.
H264SliceContext * slice_ctx
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 prev_frame_num
frame_num of the last pic for POC type 1/2
int linesize[AV_NUM_DATA_POINTERS]
For video, size in bytes of each picture line.
int field_poc[2]
top/bottom POC
main external API structure.
uint8_t * data
The data buffer.
void ff_vdpau_h264_set_reference_frames(H264Context *h)
int ff_h264_ref_picture(H264Context *h, H264Picture *dst, H264Picture *src)
int mmco_reset
MMCO_RESET set this 1.
H264Picture * cur_pic_ptr
uint8_t * data[AV_NUM_DATA_POINTERS]
pointer to the picture/channel planes.
int mbaff
1 -> MBAFF frame 0-> not MBAFF
int ff_h264_field_end(H264Context *h, H264SliceContext *sl, int in_setup)
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 initialize slice_num of each thread/context
H264Ref ref_list[2][48]
0..15: frame refs, 16..47: mbaff field refs.
AVBufferRef * ref_index_buf[2]
H264Picture last_pic_for_ec
int ref_count[2][2]
number of entries in ref_poc (FIXME need per slice)
int(* end_frame)(AVCodecContext *avctx)
Called at the end of each frame or field picture.
void ff_h264_unref_picture(H264Context *h, H264Picture *pic)
Context Adaptive Binary Arithmetic Coder.