Go to the documentation of this file.
44 if (!pic->
f || !pic->
f->
buf[0])
54 for (
i = 0;
i < 2;
i++) {
60 memset((uint8_t*)pic + off, 0,
sizeof(*pic) - off);
69 for (
int i = 0;
i < 2;
i++) {
75 src->hwaccel_picture_private);
82 for (
int i = 0;
i < 2;
i++)
85 for (
int i = 0;
i < 2;
i++)
139 if (!
src->f || !
src->f->buf[0]) {
168 #if CONFIG_ERROR_RESILIENCE
171 memset(dst, 0,
sizeof(*dst));
179 for (
i = 0;
i < 2;
i++) {
199 h->poc.prev_poc_msb =
h->poc.poc_msb;
200 h->poc.prev_poc_lsb =
h->poc.poc_lsb;
202 h->poc.prev_frame_num_offset =
h->poc.frame_num_offset;
203 h->poc.prev_frame_num =
h->poc.frame_num;
210 "hardware accelerator failed to decode picture\n");
226 if (!in_setup && !
h->droppable)
231 h->current_slice = 0;
const struct AVHWAccel * hwaccel
Hardware accelerator in use.
#define AV_LOG_WARNING
Something somehow does not look correct.
AVFrameSideData * av_frame_get_side_data(const AVFrame *frame, enum AVFrameSideDataType type)
int ff_h264_ref_picture(H264Picture *dst, const H264Picture *src)
int ref_count[2][2]
number of entries in ref_poc (FIXME need per slice)
int8_t * ref_index[2]
RefStruct reference.
@ AV_FRAME_DATA_FILM_GRAIN_PARAMS
Film grain parameters for a frame, described by AVFilmGrainParams.
#define PICT_BOTTOM_FIELD
#define FF_HW_SIMPLE_CALL(avctx, function)
AVBufferRef * buf[AV_NUM_DATA_POINTERS]
AVBuffer references backing the data for this frame.
int frame_num
frame_num (raw frame_num from slice header)
int mmco_reset
MMCO_RESET set this 1.
int ref_poc[2][2][32]
POCs of the frames/fields used as reference (FIXME need per slice)
int16_t(*[2] motion_val)[2]
int ff_thread_replace_frame(ThreadFrame *dst, const ThreadFrame *src)
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
void ff_thread_report_progress(ThreadFrame *f, int n, int field)
Notify later decoding threads when part of their reference picture is ready.
int mbaff
1 -> MBAFF frame 0-> not MBAFF
int8_t * qscale_table_base
RefStruct reference.
int ff_h264_execute_ref_pic_marking(H264Context *h)
Execute the reference picture marking (memory management control operations).
#define av_assert0(cond)
assert() equivalent, that is always enabled.
int sei_recovery_frame_cnt
int ff_thread_ref_frame(ThreadFrame *dst, const ThreadFrame *src)
uint32_t * mb_type_base
RefStruct reference.
void ff_thread_release_ext_buffer(ThreadFrame *f)
Unref a ThreadFrame.
const struct ThreadFrame * tf
int av_frame_ref(AVFrame *dst, const AVFrame *src)
Set up a new reference to the data described by the source frame.
#define av_err2str(errnum)
Convenience macro, the return value should be used only directly in function arguments but never stan...
atomic_int * decode_error_flags
RefStruct reference; its pointee is shared between decoding threads.
int recovered
picture at IDR or recovery point + recovery count
This structure describes how to handle film grain synthesis in video for specific codecs.
#define FF_THREAD_FRAME
Decode more than one frame at once.
int field_picture
whether or not picture was encoded in separate fields
int ff_h274_apply_film_grain(AVFrame *out_frame, const AVFrame *in_frame, H274FilmGrainDatabase *database, const AVFilmGrainParams *params)
int needs_fg
whether picture needs film grain synthesis (see f_grain)
#define i(width, name, range_min, range_max)
void av_frame_unref(AVFrame *frame)
Unreference all the buffers referenced by frame and reset the frame fields.
int ff_h264_replace_picture(H264Picture *dst, const H264Picture *src)
static void h264_copy_picture_params(H264Picture *dst, const H264Picture *src)
void ff_refstruct_replace(void *dstp, const void *src)
Ensure *dstp refers to the same object as src.
main external API structure.
int active_thread_type
Which multithreading methods are in use by the codec.
int16_t(*[2] motion_val_base)[2]
RefStruct reference.
int field_poc[2]
top/bottom POC
void ff_h264_unref_picture(H264Picture *pic)
int ff_h264_field_end(H264Context *h, H264SliceContext *sl, int in_setup)
Structure to hold side data for an AVFrame.
void * hwaccel_picture_private
RefStruct reference for hardware accelerator private data.
#define AVERROR_INVALIDDATA
Invalid data found when processing input.
void ff_refstruct_unref(void *objp)
Decrement the reference count of the underlying object and automatically free the object if there are...
int long_ref
1->long term reference 0->short term reference
int16_t(*[2] motion_val)[2]
void ff_h264_set_erpic(ERPicture *dst, const H264Picture *src)