static inline void mpeg4_encode_dc(MpegEncContext * s, int level, int n, int *dir_ptr)
static inline void mpeg4_encode_dc(MpegEncContext * s, int level, int n)
static inline void mpeg4_encode_dc(MpegEncContext * s, int level, int n, int *dir_ptr){    int size, v, pred;    UINT16 *dc_val;    pred = mpeg4_pred_dc(s, n, &dc_val, dir_ptr);    if (n < 4) {        *dc_val = level * s->y_dc_scale;    } else {        *dc_val = level * s->c_dc_scale;    }    /* do the prediction */    level -= pred;    /* find number of bits */    size = 0;    v = abs(level);    while (v) {	v >>= 1;	size++;    }    if (n < 4) {	/* luminance */	put_bits(&s->pb, DCtab_lum[size][1], DCtab_lum[size][0]);    } else {	/* chrominance */	put_bits(&s->pb, DCtab_chrom[size][1], DCtab_chrom[size][0]);    }    /* encode remaining bits */    if (size > 0) {	if (level < 0)	    level = (-level) ^ ((1 << size) - 1);	put_bits(&s->pb, size, level);	if (size > 8)	    put_bits(&s->pb, 1, 1);    }}