47     int c_wrap, c_xy, l_wrap, l_xy;
 
   50     l_xy   = (2 * s->
mb_y - 1) * l_wrap + s->
mb_x * 2 - 1;
 
   52     c_xy   = (s->
mb_y - 1) * c_wrap + s->
mb_x - 1;
 
   55     memset(s->
ac_val[0] + l_xy, 0, (l_wrap * 2 + 1) * 16 * 
sizeof(int16_t));
 
   56     memset(s->
ac_val[1] + c_xy, 0, (c_wrap     + 1) * 16 * 
sizeof(int16_t));
 
   57     memset(s->
ac_val[2] + c_xy, 0, (c_wrap     + 1) * 16 * 
sizeof(int16_t));
 
   67 #define tab_size ((signed)FF_ARRAY_ELEMS(s->direct_scale_mv[0])) 
   68 #define tab_bias (tab_size / 2) 
   92         s->
mv[1][i][0] = mx ? s->
mv[0][i][0] - p_mx
 
   95         s->
mv[0][i][0] = p_mx * time_pb / time_pp + mx;
 
   96         s->
mv[1][i][0] = mx ? s->
mv[0][i][0] - p_mx
 
   97                             : p_mx * (time_pb - time_pp) / time_pp;
 
  102         s->
mv[1][i][1] = my ? s->
mv[0][i][1] - p_my
 
  105         s->
mv[0][i][1] = p_my * time_pb / time_pp + my;
 
  106         s->
mv[1][i][1] = my ? s->
mv[0][i][1] - p_my
 
  107                             : p_my * (time_pb - time_pp) / time_pp;
 
  128     if (
IS_8X8(colocated_mb_type)) {
 
  130         for (i = 0; i < 4; i++)
 
  135         for (i = 0; i < 2; i++) {
 
  147                              time_pb / time_pp + mx;
 
  149                              time_pb / time_pp + my;
 
  150             s->
mv[1][i][0] = mx ? s->
mv[0][i][0] -
 
  153                                   (time_pb - time_pp) / time_pp;
 
  154             s->
mv[1][i][1] = my ? s->
mv[0][i][1] -
 
  157                                   (time_pb - time_pp) / time_pp;
 
  165         s->
mv[0][3][0] = s->
mv[0][0][0];
 
  168         s->
mv[0][3][1] = s->
mv[0][0][1];
 
  171         s->
mv[1][3][0] = s->
mv[1][0][0];
 
  174         s->
mv[1][3][1] = s->
mv[1][0][1];
 
#define MV_TYPE_FIELD
2 vectors, one per field 
int last_mv[2][2][2]
last MV, used for MV prediction in MPEG-1 & B-frame MPEG-4 
int16_t(*[3] ac_val)[16]
used for MPEG-4 AC prediction, all 3 arrays must be continuous 
int16_t(*[2][2] p_field_mv_table)[2]
MV table (2MV per MB) interlaced P-frame encoding. 
void ff_mpeg4_clean_buffers(MpegEncContext *s)
uint16_t pp_time
time distance between the last 2 p,s,i frames 
#define FF_BUG_DIRECT_BLOCKSIZE
int16_t direct_scale_mv[2][64]
precomputed to avoid divisions in ff_mpeg4_set_direct_mv 
void ff_mpeg4_init_direct_mv(MpegEncContext *s)
int quarter_sample
1->qpel, 0->half pel ME/MC 
uint8_t ff_mpeg4_static_rl_table_store[3][2][2 *MAX_RUN+MAX_LEVEL+3]
#define MB_TYPE_INTERLACED
int16_t(*[2] motion_val)[2]
int block_index[6]
index to current MB in block based arrays with edges 
#define MV_TYPE_16X16
1 vector for the whole mb 
int f_code
forward MV resolution 
int ff_mpeg4_set_direct_mv(MpegEncContext *s, int mx, int my)
int pict_type
AV_PICTURE_TYPE_I, AV_PICTURE_TYPE_P, AV_PICTURE_TYPE_B, ... 
int ff_mpeg4_get_video_packet_prefix_length(MpegEncContext *s)
uint16_t pb_field_time
like above, just for interlaced 
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 
struct AVCodecContext * avctx
int mb_stride
mb_width+1 used for some arrays to allow simple addressing of left & top MBs without sig11 ...
static void ff_mpeg4_set_one_direct_mv(MpegEncContext *s, int mx, int my, int i)
int workaround_bugs
Work around bugs in encoders which sometimes cannot be detected automatically. 
Picture next_picture
copy of the next picture structure. 
uint32_t * mb_type
types and macros are defined in mpegutils.h 
#define MV_TYPE_8X8
4 vectors (H.263, MPEG-4 4MV) 
int b_code
backward MV resolution for B-frames (MPEG-4) 
uint16_t pb_time
time distance between the last b and p,s,i frame