54 int level, uni_code, uni_len;
77 uni_code ^= (1<<uni_len)-1;
80 uni_code<<=
size; uni_code|=l;
83 uni_code<<=1; uni_code|=1;
93 uni_code ^= (1<<uni_len)-1;
96 uni_code<<=
size; uni_code|=l;
99 uni_code<<=1; uni_code|=1;
111 switch(
s->msmpeg4_version){
118 if(
s->workaround_bugs){
131 #if CONFIG_VC1_DECODER
141 if(
s->msmpeg4_version>=4){
157 xy =
s->block_index[n];
163 a =
s->coded_block[xy - 1 ];
164 b =
s->coded_block[xy - 1 -
wrap];
165 c =
s->coded_block[xy -
wrap];
174 *coded_block_ptr = &
s->coded_block[xy];
183 for(y=0; y<block_size; y++){
185 for(x=0; x<block_size; x++){
189 return FASTDIV((sum + (scale>>1)), scale);
194 int16_t **dc_val_ptr,
int *dir_ptr)
201 scale =
s->y_dc_scale;
203 scale =
s->c_dc_scale;
206 wrap =
s->block_wrap[n];
207 dc_val=
s->dc_val[0] +
s->block_index[n];
213 b = dc_val[ - 1 -
wrap];
216 if(
s->first_slice_line && (n&2)==0 &&
s->msmpeg4_version<4){
224 #if ARCH_X86 && HAVE_7REGS && HAVE_EBX_AVAILABLE
226 "movl %3, %%eax \n\t"
227 "shrl $1, %%eax \n\t"
228 "addl %%eax, %2 \n\t"
229 "addl %%eax, %1 \n\t"
230 "addl %0, %%eax \n\t"
232 "movl %%edx, %0 \n\t"
233 "movl %1, %%eax \n\t"
235 "movl %%edx, %1 \n\t"
236 "movl %2, %%eax \n\t"
238 "movl %%edx, %2 \n\t"
239 :
"+b" (
a),
"+c" (
b),
"+D" (
c)
246 a = (
a + (8 >> 1)) / 8;
247 b = (
b + (8 >> 1)) / 8;
248 c = (
c + (8 >> 1)) / 8;
257 if(
s->msmpeg4_version>3){
258 if(
s->inter_intra_pred){
277 int bs = 8 >>
s->avctx->lowres;
280 dest=
s->current_picture.f->data[0] + (((n >> 1) + 2*
s->mb_y) * bs*
wrap ) + ((n & 1) + 2*
s->mb_x) * bs;
283 dest=
s->current_picture.f->data[n - 3] + (
s->mb_y * bs *
wrap) +
s->mb_x * bs;
285 if(
s->mb_x==0)
a= (1024 + (scale>>1))/scale;
286 else a=
get_dc(dest-bs,
wrap, scale*8>>(2*
s->avctx->lowres), bs);
287 if(
s->mb_y==0)
c= (1024 + (scale>>1))/scale;
290 if (
s->h263_aic_dir==0) {
293 }
else if (
s->h263_aic_dir==1) {
301 }
else if (
s->h263_aic_dir==2) {
334 *dc_val_ptr = &dc_val[0];
__asm__(".macro parse_r var r\n\t" "\\var = -1\n\t" _IFC_REG(0) _IFC_REG(1) _IFC_REG(2) _IFC_REG(3) _IFC_REG(4) _IFC_REG(5) _IFC_REG(6) _IFC_REG(7) _IFC_REG(8) _IFC_REG(9) _IFC_REG(10) _IFC_REG(11) _IFC_REG(12) _IFC_REG(13) _IFC_REG(14) _IFC_REG(15) _IFC_REG(16) _IFC_REG(17) _IFC_REG(18) _IFC_REG(19) _IFC_REG(20) _IFC_REG(21) _IFC_REG(22) _IFC_REG(23) _IFC_REG(24) _IFC_REG(25) _IFC_REG(26) _IFC_REG(27) _IFC_REG(28) _IFC_REG(29) _IFC_REG(30) _IFC_REG(31) ".iflt \\var\n\t" ".error \"Unable to parse register name \\r\"\n\t" ".endif\n\t" ".endm")
Libavcodec external API header.
av_cold void ff_init_scantable(uint8_t *permutation, ScanTable *st, const uint8_t *src_scantable)
const uint32_t ff_inverse[257]
const uint8_t ff_mpeg4_DCtab_lum[13][2]
const uint8_t ff_mpeg4_c_dc_scale_table[32]
const uint8_t ff_mpeg4_y_dc_scale_table[32]
const uint8_t ff_mpeg4_DCtab_chrom[13][2]
const uint8_t ff_mpeg1_dc_scale_table[128]
av_cold void ff_msmpeg4_common_init(MpegEncContext *s)
int ff_msmpeg4_pred_dc(MpegEncContext *s, int n, int16_t **dc_val_ptr, int *dir_ptr)
static av_cold void init_h263_dc_for_msmpeg4(void)
static int get_dc(uint8_t *src, int stride, int scale, int block_size)
int ff_msmpeg4_coded_block_pred(MpegEncContext *s, int n, uint8_t **coded_block_ptr)
uint32_t ff_v2_dc_chroma_table[512][2]
const uint8_t ff_wmv1_y_dc_scale_table[32]
uint32_t ff_v2_dc_lum_table[512][2]
const uint8_t ff_wmv1_c_dc_scale_table[32]
const uint8_t ff_wmv1_scantable[WMV1_SCANTABLE_COUNT][64]
const uint8_t ff_old_ff_y_dc_scale_table[32]
static const float pred[4]
const uint8_t ff_wmv3_dc_scale_table[32]