X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fmpeg4videoenc.c;h=28d026b33265d0325de2596d1adfdfa1e2f9b3f8;hb=2e63619ff9643c6f5ec220da8b896ffeaf87f49c;hp=64cbecba9a75b6319107654aad06953ac7e9e812;hpb=ca334dd14b957c4af7fcab5e97b6ed675c97caad;p=ffmpeg diff --git a/libavcodec/mpeg4videoenc.c b/libavcodec/mpeg4videoenc.c index 64cbecba9a7..28d026b3326 100644 --- a/libavcodec/mpeg4videoenc.c +++ b/libavcodec/mpeg4videoenc.c @@ -242,6 +242,7 @@ void ff_clean_mpeg4_qscales(MpegEncContext *s){ static inline void mpeg4_encode_dc(PutBitContext * s, int level, int n) { #if 1 + /* DC will overflow if level is outside the [-255,255] range. */ level+=256; if (n < 4) { /* luminance */ @@ -262,10 +263,10 @@ static inline void mpeg4_encode_dc(PutBitContext * s, int level, int n) if (n < 4) { /* luminance */ - put_bits(&s->pb, DCtab_lum[size][1], DCtab_lum[size][0]); + put_bits(&s->pb, ff_mpeg4_DCtab_lum[size][1], ff_mpeg4_DCtab_lum[size][0]); } else { /* chrominance */ - put_bits(&s->pb, DCtab_chrom[size][1], DCtab_chrom[size][0]); + put_bits(&s->pb, ff_mpeg4_DCtab_chrom[size][1], ff_mpeg4_DCtab_chrom[size][0]); } /* encode remaining bits */ @@ -308,13 +309,13 @@ static inline void mpeg4_encode_block(MpegEncContext * s, DCTELEM * block, int n mpeg4_encode_dc(dc_pb, intra_dc, n); if(last_index<1) return; i = 1; - rl = &rl_intra; + rl = &ff_mpeg4_rl_intra; bits_tab= uni_mpeg4_intra_rl_bits; len_tab = uni_mpeg4_intra_rl_len; } else { if(last_index<0) return; i = 0; - rl = &rl_inter; + rl = &ff_h263_rl_inter; bits_tab= uni_mpeg4_inter_rl_bits; len_tab = uni_mpeg4_inter_rl_len; } @@ -696,10 +697,10 @@ void mpeg4_encode_mb(MpegEncContext * s, if(s->mv_type==MV_TYPE_16X16){ if(s->dquant) cbpc+= 8; put_bits(&s->pb, - inter_MCBPC_bits[cbpc], - inter_MCBPC_code[cbpc]); + ff_h263_inter_MCBPC_bits[cbpc], + ff_h263_inter_MCBPC_code[cbpc]); - put_bits(pb2, cbpy_tab[cbpy][1], cbpy_tab[cbpy][0]); + put_bits(pb2, ff_h263_cbpy_tab[cbpy][1], ff_h263_cbpy_tab[cbpy][0]); if(s->dquant) put_bits(pb2, 2, dquant_code[s->dquant+2]); @@ -721,10 +722,10 @@ void mpeg4_encode_mb(MpegEncContext * s, }else if(s->mv_type==MV_TYPE_FIELD){ if(s->dquant) cbpc+= 8; put_bits(&s->pb, - inter_MCBPC_bits[cbpc], - inter_MCBPC_code[cbpc]); + ff_h263_inter_MCBPC_bits[cbpc], + ff_h263_inter_MCBPC_code[cbpc]); - put_bits(pb2, cbpy_tab[cbpy][1], cbpy_tab[cbpy][0]); + put_bits(pb2, ff_h263_cbpy_tab[cbpy][1], ff_h263_cbpy_tab[cbpy][0]); if(s->dquant) put_bits(pb2, 2, dquant_code[s->dquant+2]); @@ -751,9 +752,9 @@ void mpeg4_encode_mb(MpegEncContext * s, }else{ assert(s->mv_type==MV_TYPE_8X8); put_bits(&s->pb, - inter_MCBPC_bits[cbpc+16], - inter_MCBPC_code[cbpc+16]); - put_bits(pb2, cbpy_tab[cbpy][1], cbpy_tab[cbpy][0]); + ff_h263_inter_MCBPC_bits[cbpc+16], + ff_h263_inter_MCBPC_code[cbpc+16]); + put_bits(pb2, ff_h263_cbpy_tab[cbpy][1], ff_h263_cbpy_tab[cbpy][0]); if(!s->progressive_sequence){ if(cbp) @@ -814,18 +815,18 @@ void mpeg4_encode_mb(MpegEncContext * s, if (s->pict_type == FF_I_TYPE) { if(s->dquant) cbpc+=4; put_bits(&s->pb, - intra_MCBPC_bits[cbpc], - intra_MCBPC_code[cbpc]); + ff_h263_intra_MCBPC_bits[cbpc], + ff_h263_intra_MCBPC_code[cbpc]); } else { if(s->dquant) cbpc+=8; put_bits(&s->pb, 1, 0); /* mb coded */ put_bits(&s->pb, - inter_MCBPC_bits[cbpc + 4], - inter_MCBPC_code[cbpc + 4]); + ff_h263_inter_MCBPC_bits[cbpc + 4], + ff_h263_inter_MCBPC_code[cbpc + 4]); } put_bits(pb2, 1, s->ac_pred); cbpy = cbp >> 2; - put_bits(pb2, cbpy_tab[cbpy][1], cbpy_tab[cbpy][0]); + put_bits(pb2, ff_h263_cbpy_tab[cbpy][1], ff_h263_cbpy_tab[cbpy][0]); if(s->dquant) put_bits(dc_pb, 2, dquant_code[s->dquant+2]); @@ -1124,8 +1125,8 @@ static void init_uni_dc_tab(void) l= level; /* luminance */ - uni_code= DCtab_lum[size][0]; - uni_len = DCtab_lum[size][1]; + uni_code= ff_mpeg4_DCtab_lum[size][0]; + uni_len = ff_mpeg4_DCtab_lum[size][1]; if (size > 0) { uni_code<<=size; uni_code|=l; @@ -1139,8 +1140,8 @@ static void init_uni_dc_tab(void) uni_DCtab_lum_len [level+256]= uni_len; /* chrominance */ - uni_code= DCtab_chrom[size][0]; - uni_len = DCtab_chrom[size][1]; + uni_code= ff_mpeg4_DCtab_chrom[size][0]; + uni_len = ff_mpeg4_DCtab_chrom[size][1]; if (size > 0) { uni_code<<=size; uni_code|=l; @@ -1251,10 +1252,10 @@ static av_cold int encode_init(AVCodecContext *avctx) init_uni_dc_tab(); - init_rl(&rl_intra, ff_mpeg4_static_rl_table_store[0]); + init_rl(&ff_mpeg4_rl_intra, ff_mpeg4_static_rl_table_store[0]); - init_uni_mpeg4_rl_tab(&rl_intra, uni_mpeg4_intra_rl_bits, uni_mpeg4_intra_rl_len); - init_uni_mpeg4_rl_tab(&rl_inter, uni_mpeg4_inter_rl_bits, uni_mpeg4_inter_rl_len); + init_uni_mpeg4_rl_tab(&ff_mpeg4_rl_intra, uni_mpeg4_intra_rl_bits, uni_mpeg4_intra_rl_len); + init_uni_mpeg4_rl_tab(&ff_h263_rl_inter, uni_mpeg4_inter_rl_bits, uni_mpeg4_inter_rl_len); } s->min_qcoeff= -2048;