comparison mpeg12enc.c @ 5210:b52fd9b223bb libavcodec

add proper ff_ prefix to new extern symbols
author aurel
date Thu, 05 Jul 2007 09:21:55 +0000
parents 430f60820b21
children 5581a40c673a
comparison
equal deleted inserted replaced
5209:2ac10c5e5885 5210:b52fd9b223bb
210 put_bits(&s->pb, 12, s->height); 210 put_bits(&s->pb, 12, s->height);
211 211
212 for(i=1; i<15; i++){ 212 for(i=1; i<15; i++){
213 float error= aspect_ratio; 213 float error= aspect_ratio;
214 if(s->codec_id == CODEC_ID_MPEG1VIDEO || i <=1) 214 if(s->codec_id == CODEC_ID_MPEG1VIDEO || i <=1)
215 error-= 1.0/mpeg1_aspect[i]; 215 error-= 1.0/ff_mpeg1_aspect[i];
216 else 216 else
217 error-= av_q2d(mpeg2_aspect[i])*s->height/s->width; 217 error-= av_q2d(ff_mpeg2_aspect[i])*s->height/s->width;
218 218
219 error= FFABS(error); 219 error= FFABS(error);
220 220
221 if(error < best_aspect_error){ 221 if(error < best_aspect_error){
222 best_aspect_error= error; 222 best_aspect_error= error;
310 static inline void encode_mb_skip_run(MpegEncContext *s, int run){ 310 static inline void encode_mb_skip_run(MpegEncContext *s, int run){
311 while (run >= 33) { 311 while (run >= 33) {
312 put_bits(&s->pb, 11, 0x008); 312 put_bits(&s->pb, 11, 0x008);
313 run -= 33; 313 run -= 33;
314 } 314 }
315 put_bits(&s->pb, mbAddrIncrTable[run][1], 315 put_bits(&s->pb, ff_mpeg12_mbAddrIncrTable[run][1],
316 mbAddrIncrTable[run][0]); 316 ff_mpeg12_mbAddrIncrTable[run][0]);
317 } 317 }
318 318
319 static av_always_inline void put_qscale(MpegEncContext *s) 319 static av_always_inline void put_qscale(MpegEncContext *s)
320 { 320 {
321 if(s->q_scale_type){ 321 if(s->q_scale_type){
552 } 552 }
553 s->mv_bits+= get_bits_diff(s); 553 s->mv_bits+= get_bits_diff(s);
554 } 554 }
555 if(cbp) { 555 if(cbp) {
556 if (s->chroma_y_shift) { 556 if (s->chroma_y_shift) {
557 put_bits(&s->pb, mbPatTable[cbp][1], mbPatTable[cbp][0]); 557 put_bits(&s->pb, ff_mpeg12_mbPatTable[cbp][1], ff_mpeg12_mbPatTable[cbp][0]);
558 } else { 558 } else {
559 put_bits(&s->pb, mbPatTable[cbp>>2][1], mbPatTable[cbp>>2][0]); 559 put_bits(&s->pb, ff_mpeg12_mbPatTable[cbp>>2][1], ff_mpeg12_mbPatTable[cbp>>2][0]);
560 put_bits(&s->pb, 2, cbp & 3); 560 put_bits(&s->pb, 2, cbp & 3);
561 } 561 }
562 } 562 }
563 s->f_count++; 563 s->f_count++;
564 } else{ 564 } else{
637 } 637 }
638 } 638 }
639 s->mv_bits += get_bits_diff(s); 639 s->mv_bits += get_bits_diff(s);
640 if(cbp) { 640 if(cbp) {
641 if (s->chroma_y_shift) { 641 if (s->chroma_y_shift) {
642 put_bits(&s->pb, mbPatTable[cbp][1], mbPatTable[cbp][0]); 642 put_bits(&s->pb, ff_mpeg12_mbPatTable[cbp][1], ff_mpeg12_mbPatTable[cbp][0]);
643 } else { 643 } else {
644 put_bits(&s->pb, mbPatTable[cbp>>2][1], mbPatTable[cbp>>2][0]); 644 put_bits(&s->pb, ff_mpeg12_mbPatTable[cbp>>2][1], ff_mpeg12_mbPatTable[cbp>>2][0]);
645 put_bits(&s->pb, 2, cbp & 3); 645 put_bits(&s->pb, 2, cbp & 3);
646 } 646 }
647 } 647 }
648 } 648 }
649 for(i=0;i<mb_block_count;i++) { 649 for(i=0;i<mb_block_count;i++) {
672 672
673 if (val == 0) { 673 if (val == 0) {
674 /* zero vector */ 674 /* zero vector */
675 code = 0; 675 code = 0;
676 put_bits(&s->pb, 676 put_bits(&s->pb,
677 mbMotionVectorTable[0][1], 677 ff_mpeg12_mbMotionVectorTable[0][1],
678 mbMotionVectorTable[0][0]); 678 ff_mpeg12_mbMotionVectorTable[0][0]);
679 } else { 679 } else {
680 bit_size = f_or_b_code - 1; 680 bit_size = f_or_b_code - 1;
681 range = 1 << bit_size; 681 range = 1 << bit_size;
682 /* modulo encoding */ 682 /* modulo encoding */
683 l= INT_BIT - 5 - bit_size; 683 l= INT_BIT - 5 - bit_size;
697 } 697 }
698 698
699 assert(code > 0 && code <= 16); 699 assert(code > 0 && code <= 16);
700 700
701 put_bits(&s->pb, 701 put_bits(&s->pb,
702 mbMotionVectorTable[code][1], 702 ff_mpeg12_mbMotionVectorTable[code][1],
703 mbMotionVectorTable[code][0]); 703 ff_mpeg12_mbMotionVectorTable[code][0]);
704 704
705 put_bits(&s->pb, 1, sign); 705 put_bits(&s->pb, 1, sign);
706 if (bit_size > 0) { 706 if (bit_size > 0) {
707 put_bits(&s->pb, bit_size, bits); 707 put_bits(&s->pb, bit_size, bits);
708 } 708 }
711 711
712 void ff_mpeg1_encode_init(MpegEncContext *s) 712 void ff_mpeg1_encode_init(MpegEncContext *s)
713 { 713 {
714 static int done=0; 714 static int done=0;
715 715
716 common_init(s); 716 ff_mpeg12_common_init(s);
717 717
718 if(!done){ 718 if(!done){
719 int f_code; 719 int f_code;
720 int mv; 720 int mv;
721 int i; 721 int i;
722 722
723 done=1; 723 done=1;
724 init_rl(&rl_mpeg1, static_rl_table_store[0]); 724 init_rl(&ff_rl_mpeg1, ff_mpeg12_static_rl_table_store[0]);
725 init_rl(&rl_mpeg2, static_rl_table_store[1]); 725 init_rl(&ff_rl_mpeg2, ff_mpeg12_static_rl_table_store[1]);
726 726
727 for(i=0; i<64; i++) 727 for(i=0; i<64; i++)
728 { 728 {
729 mpeg1_max_level[0][i]= rl_mpeg1.max_level[0][i]; 729 mpeg1_max_level[0][i]= ff_rl_mpeg1.max_level[0][i];
730 mpeg1_index_run[0][i]= rl_mpeg1.index_run[0][i]; 730 mpeg1_index_run[0][i]= ff_rl_mpeg1.index_run[0][i];
731 } 731 }
732 732
733 init_uni_ac_vlc(&rl_mpeg1, uni_mpeg1_ac_vlc_len); 733 init_uni_ac_vlc(&ff_rl_mpeg1, uni_mpeg1_ac_vlc_len);
734 if(s->intra_vlc_format) 734 if(s->intra_vlc_format)
735 init_uni_ac_vlc(&rl_mpeg2, uni_mpeg2_ac_vlc_len); 735 init_uni_ac_vlc(&ff_rl_mpeg2, uni_mpeg2_ac_vlc_len);
736 736
737 /* build unified dc encoding tables */ 737 /* build unified dc encoding tables */
738 for(i=-255; i<256; i++) 738 for(i=-255; i<256; i++)
739 { 739 {
740 int adiff, index; 740 int adiff, index;
743 743
744 adiff = FFABS(diff); 744 adiff = FFABS(diff);
745 if(diff<0) diff--; 745 if(diff<0) diff--;
746 index = av_log2(2*adiff); 746 index = av_log2(2*adiff);
747 747
748 bits= vlc_dc_lum_bits[index] + index; 748 bits= ff_mpeg12_vlc_dc_lum_bits[index] + index;
749 code= (vlc_dc_lum_code[index]<<index) + (diff & ((1 << index) - 1)); 749 code= (ff_mpeg12_vlc_dc_lum_code[index]<<index) + (diff & ((1 << index) - 1));
750 mpeg1_lum_dc_uni[i+255]= bits + (code<<8); 750 mpeg1_lum_dc_uni[i+255]= bits + (code<<8);
751 751
752 bits= vlc_dc_chroma_bits[index] + index; 752 bits= ff_mpeg12_vlc_dc_chroma_bits[index] + index;
753 code= (vlc_dc_chroma_code[index]<<index) + (diff & ((1 << index) - 1)); 753 code= (ff_mpeg12_vlc_dc_chroma_code[index]<<index) + (diff & ((1 << index) - 1));
754 mpeg1_chr_dc_uni[i+255]= bits + (code<<8); 754 mpeg1_chr_dc_uni[i+255]= bits + (code<<8);
755 } 755 }
756 756
757 for(f_code=1; f_code<=MAX_FCODE; f_code++){ 757 for(f_code=1; f_code<=MAX_FCODE; f_code++){
758 for(mv=-MAX_MV; mv<=MAX_MV; mv++){ 758 for(mv=-MAX_MV; mv<=MAX_MV; mv++){
759 int len; 759 int len;
760 760
761 if(mv==0) len= mbMotionVectorTable[0][1]; 761 if(mv==0) len= ff_mpeg12_mbMotionVectorTable[0][1];
762 else{ 762 else{
763 int val, bit_size, range, code; 763 int val, bit_size, range, code;
764 764
765 bit_size = f_code - 1; 765 bit_size = f_code - 1;
766 range = 1 << bit_size; 766 range = 1 << bit_size;
769 if (val < 0) 769 if (val < 0)
770 val = -val; 770 val = -val;
771 val--; 771 val--;
772 code = (val >> bit_size) + 1; 772 code = (val >> bit_size) + 1;
773 if(code<17){ 773 if(code<17){
774 len= mbMotionVectorTable[code][1] + 1 + bit_size; 774 len= ff_mpeg12_mbMotionVectorTable[code][1] + 1 + bit_size;
775 }else{ 775 }else{
776 len= mbMotionVectorTable[16][1] + 2 + bit_size; 776 len= ff_mpeg12_mbMotionVectorTable[16][1] + 2 + bit_size;
777 } 777 }
778 } 778 }
779 779
780 mv_penalty[f_code][mv+MAX_MV]= len; 780 mv_penalty[f_code][mv+MAX_MV]= len;
781 } 781 }
820 index= av_log2_16bit(2*diff); 820 index= av_log2_16bit(2*diff);
821 } 821 }
822 if (component == 0) { 822 if (component == 0) {
823 put_bits( 823 put_bits(
824 &s->pb, 824 &s->pb,
825 vlc_dc_lum_bits[index] + index, 825 ff_mpeg12_vlc_dc_lum_bits[index] + index,
826 (vlc_dc_lum_code[index]<<index) + (diff & ((1 << index) - 1))); 826 (ff_mpeg12_vlc_dc_lum_code[index]<<index) + (diff & ((1 << index) - 1)));
827 }else{ 827 }else{
828 put_bits( 828 put_bits(
829 &s->pb, 829 &s->pb,
830 vlc_dc_chroma_bits[index] + index, 830 ff_mpeg12_vlc_dc_chroma_bits[index] + index,
831 (vlc_dc_chroma_code[index]<<index) + (diff & ((1 << index) - 1))); 831 (ff_mpeg12_vlc_dc_chroma_code[index]<<index) + (diff & ((1 << index) - 1)));
832 } 832 }
833 }else{ 833 }else{
834 if (component == 0) { 834 if (component == 0) {
835 put_bits( 835 put_bits(
836 &s->pb, 836 &s->pb,
849 DCTELEM *block, 849 DCTELEM *block,
850 int n) 850 int n)
851 { 851 {
852 int alevel, level, last_non_zero, dc, diff, i, j, run, last_index, sign; 852 int alevel, level, last_non_zero, dc, diff, i, j, run, last_index, sign;
853 int code, component; 853 int code, component;
854 const uint16_t (*table_vlc)[2] = rl_mpeg1.table_vlc; 854 const uint16_t (*table_vlc)[2] = ff_rl_mpeg1.table_vlc;
855 855
856 last_index = s->block_last_index[n]; 856 last_index = s->block_last_index[n];
857 857
858 /* DC coef */ 858 /* DC coef */
859 if (s->mb_intra) { 859 if (s->mb_intra) {
862 diff = dc - s->last_dc[component]; 862 diff = dc - s->last_dc[component];
863 encode_dc(s, diff, component); 863 encode_dc(s, diff, component);
864 s->last_dc[component] = dc; 864 s->last_dc[component] = dc;
865 i = 1; 865 i = 1;
866 if (s->intra_vlc_format) 866 if (s->intra_vlc_format)
867 table_vlc = rl_mpeg2.table_vlc; 867 table_vlc = ff_rl_mpeg2.table_vlc;
868 } else { 868 } else {
869 /* encode the first coefficient : needs to be done here because 869 /* encode the first coefficient : needs to be done here because
870 it is handled slightly differently */ 870 it is handled slightly differently */
871 level = block[0]; 871 level = block[0];
872 if (abs(level) == 1) { 872 if (abs(level) == 1) {