49 if (!pic->
f || !pic->
f->
buf[0])
58 for (
i = 0;
i < 2;
i++) {
63 memset((
uint8_t*)pic + off, 0,
sizeof(*pic) - off);
90 for (
i = 0;
i < 2;
i++) {
101 if (
src->hwaccel_picture_private) {
110 for (
i = 0;
i < 2;
i++)
138 #if CONFIG_ERROR_RESILIENCE
141 memset(dst, 0,
sizeof(*dst));
149 for (
i = 0;
i < 2;
i++) {
168 h->poc.prev_poc_msb =
h->poc.poc_msb;
169 h->poc.prev_poc_lsb =
h->poc.poc_lsb;
171 h->poc.prev_frame_num_offset =
h->poc.frame_num_offset;
172 h->poc.prev_frame_num =
h->poc.frame_num;
179 "hardware accelerator failed to decode picture\n");
182 if (!in_setup && !
h->droppable)
187 h->current_slice = 0;
simple assert() macros that are a bit more flexible than ISO C assert().
#define av_assert0(cond)
assert() equivalent, that is always enabled.
Libavcodec external API header.
#define FF_THREAD_FRAME
Decode more than one frame at once.
Context Adaptive Binary Arithmetic Coder inline functions.
void av_buffer_unref(AVBufferRef **buf)
Free a given reference and automatically free the buffer if there are no more references to it.
AVBufferRef * av_buffer_ref(AVBufferRef *buf)
Create a new reference to an AVBuffer.
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
H.264 / AVC / MPEG-4 part10 motion vector prediction.
int ff_h264_field_end(H264Context *h, H264SliceContext *sl, int in_setup)
void ff_h264_unref_picture(H264Context *h, H264Picture *pic)
void ff_h264_set_erpic(ERPicture *dst, H264Picture *src)
int ff_h264_ref_picture(H264Context *h, H264Picture *dst, H264Picture *src)
int ff_h264_execute_ref_pic_marking(H264Context *h)
Execute the reference picture marking (memory management control operations).
H.264 / AVC / MPEG-4 part10 codec.
int ff_thread_ref_frame(ThreadFrame *dst, const ThreadFrame *src)
common internal API header
#define PICT_BOTTOM_FIELD
void ff_thread_report_progress(ThreadFrame *f, int n, int field)
Notify later decoding threads when part of their reference picture is ready.
void ff_thread_release_buffer(AVCodecContext *avctx, ThreadFrame *f)
Wrapper around release_buffer() frame-for multithreaded codecs.
useful rectangle filling function
uint8_t * data
The data buffer.
main external API structure.
const struct AVHWAccel * hwaccel
Hardware accelerator in use.
int active_thread_type
Which multithreading methods are in use by the codec.
AVBufferRef * buf[AV_NUM_DATA_POINTERS]
AVBuffer references backing the data for this frame.
int(* end_frame)(AVCodecContext *avctx)
Called at the end of each frame or field picture.
int16_t(*[2] motion_val)[2]
int ref_count[2][2]
number of entries in ref_poc (FIXME need per slice)
int recovered
picture at IDR or recovery point + recovery count
AVBufferRef * motion_val_buf[2]
int16_t(*[2] motion_val)[2]
int sei_recovery_frame_cnt
int field_picture
whether or not picture was encoded in separate fields
int frame_num
frame_num (raw frame_num from slice header)
int long_ref
1->long term reference 0->short term reference
int ref_poc[2][2][32]
POCs of the frames/fields used as reference (FIXME need per slice)
void * hwaccel_picture_private
hardware accelerator private data
AVBufferRef * mb_type_buf
AVBufferRef * ref_index_buf[2]
int mmco_reset
MMCO_RESET set this 1.
int field_poc[2]
top/bottom POC
AVBufferRef * hwaccel_priv_buf
int mbaff
1 -> MBAFF frame 0-> not MBAFF
AVBufferRef * qscale_table_buf