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)
74 memcpy(s->
mv,
mv,
sizeof(*
mv));
93 "Interlaced error concealment is not fully implemented\n");
void ff_init_block_index(MpegEncContext *s)
void(* clear_blocks)(int16_t *blocks)
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)
void ff_mpv_decode_mb(MpegEncContext *s, int16_t block[12][64])
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
#define AV_LOG_DEBUG
Stuff which is only useful for libav* developers.
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)
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]
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
uint16_t pb_time
time distance between the last b and p,s,i frame