27 memset(dst, 0,
sizeof(*dst));
37 for (i = 0; i < 2; i++) {
63 int (*
mv)[2][4][2],
int mb_x,
int mb_y,
64 int mb_intra,
int mb_skipped)
75 memcpy(s->
mv,
mv,
sizeof(*
mv));
96 "Interlaced error concealment is not fully implemented\n");
void ff_init_block_index(MpegEncContext *s)
int field_picture
whether or not the picture was encoded in separate fields
void * av_mallocz(size_t size)
Allocate a memory block with alignment suitable for all memory accesses (including vectors if availab...
int mb_num
number of MBs of a picture
static void mpeg_er_decode_mb(void *opaque, int ref, int mv_dir, int mv_type, int(*mv)[2][4][2], int mb_x, int mb_y, int mb_intra, int mb_skipped)
Picture current_picture
copy of the current picture structure.
uint16_t pp_time
time distance between the last 2 p,s,i frames
int mb_height
number of MBs horizontally & vertically
static void ff_update_block_index(MpegEncContext *s)
int16_t * dc_val[3]
used for MPEG-4 DC prediction, all 3 arrays must be continuous
int mb_skipped
MUST BE SET only during DECODING.
int partitioned_frame
is current frame partitioned
void(* clear_blocks)(int16_t *blocks)
#define AV_LOG_DEBUG
Stuff which is only useful for libav* developers.
int quarter_sample
1->qpel, 0->half pel ME/MC
static void set_erpic(ERPicture *dst, Picture *src)
uint8_t * error_status_table
int ff_mpeg_er_init(MpegEncContext *s)
uint8_t * mbskip_table
used to avoid copy if macroblock skipped (for black regions for example) and used for B-frame encodin...
int16_t(*[2] motion_val)[2]
Picture * current_picture_ptr
pointer to the current picture
void ff_mpeg_er_frame_start(MpegEncContext *s)
uint8_t * mbintra_table
used to avoid setting {ac, dc, cbp}-pred stuff to zero on inter MB decoding
#define FF_ARRAY_ELEMS(a)
int * mb_index2xy
mb_index -> mb_x + mb_y*mb_stride
static const int8_t mv[256][2]
ptrdiff_t linesize
line size, in bytes, may be different from width
ptrdiff_t uvlinesize
line size, for chroma in bytes, may be different from width
uint8_t * data[AV_NUM_DATA_POINTERS]
pointer to the picture/channel planes.
int mv[2][4][2]
motion vectors for a macroblock first coordinate : 0 = forward 1 = backward second " : depend...
int b8_stride
2*mb_width+1 used for some 8x8 block arrays to allow simple addressing
Picture * next_picture_ptr
pointer to the next picture (for bidir pred)
struct AVCodecContext * avctx
int mb_stride
mb_width+1 used for some arrays to allow simple addressing of left & top MBs without sig11 ...
static int ref[MAX_W *MAX_W]
Picture * last_picture_ptr
pointer to the previous picture.
int16_t(*[2] motion_val)[2]
void ff_mpv_reconstruct_mb(MpegEncContext *s, int16_t block[12][64])
int16_t(* block)[64]
points to one of the following blocks
void ff_er_frame_start(ERContext *s)
uint32_t * mb_type
types and macros are defined in mpegutils.h
Filter the word “frame” indicates either a video frame or a group of audio as stored in an AVFrame structure Format for each input and each output the list of supported formats For video that means pixel format For audio that means channel sample they are references to shared objects When the negotiation mechanism computes the intersection of the formats supported at each end of a all references to both lists are replaced with a reference to the intersection And when a single format is eventually chosen for a link amongst the remaining all references to the list are updated That means that if a filter requires that its input and output have the same format amongst a supported all it has to do is use a reference to the same list of formats query_formats can leave some formats unset and return AVERROR(EAGAIN) to cause the negotiation mechanism toagain later.That can be used by filters with complex requirements to use the format negotiated on one link to set the formats supported on another.Frame references ownership and permissions
void(* decode_mb)(void *opaque, int ref, int mv_dir, int mv_type, int(*mv)[2][4][2], int mb_x, int mb_y, int mb_intra, int mb_skipped)
uint16_t pb_time
time distance between the last b and p,s,i frame