comparison msmpeg4.c @ 483:97da217aed7f libavcodec

fixed multiple allocation bug
author bellard
date Thu, 06 Jun 2002 14:31:18 +0000
parents 1e23eae32087
children 8b7a54d58549
comparison
equal deleted inserted replaced
482:1a4d5101a224 483:97da217aed7f
758 } 758 }
759 759
760 /* init all vlc decoding tables */ 760 /* init all vlc decoding tables */
761 int msmpeg4_decode_init_vlc(MpegEncContext *s) 761 int msmpeg4_decode_init_vlc(MpegEncContext *s)
762 { 762 {
763 static int done = 0;
763 int i; 764 int i;
764 MVTable *mv; 765 MVTable *mv;
765 766
766 for(i=0;i<NB_RL_TABLES;i++) { 767
767 init_rl(&rl_table[i]); 768 if (!done) {
768 init_vlc_rl(&rl_table[i]); 769 done = 1;
769 } 770
770 for(i=0;i<2;i++) { 771 for(i=0;i<NB_RL_TABLES;i++) {
771 mv = &mv_tables[i]; 772 init_rl(&rl_table[i]);
772 init_vlc(&mv->vlc, 9, mv->n + 1, 773 init_vlc_rl(&rl_table[i]);
773 mv->table_mv_bits, 1, 1, 774 }
774 mv->table_mv_code, 2, 2); 775 for(i=0;i<2;i++) {
775 } 776 mv = &mv_tables[i];
776 777 init_vlc(&mv->vlc, 9, mv->n + 1,
777 init_vlc(&dc_lum_vlc[0], 9, 120, 778 mv->table_mv_bits, 1, 1,
778 &table0_dc_lum[0][1], 8, 4, 779 mv->table_mv_code, 2, 2);
779 &table0_dc_lum[0][0], 8, 4); 780 }
780 init_vlc(&dc_chroma_vlc[0], 9, 120, 781
781 &table0_dc_chroma[0][1], 8, 4, 782 init_vlc(&dc_lum_vlc[0], 9, 120,
782 &table0_dc_chroma[0][0], 8, 4); 783 &table0_dc_lum[0][1], 8, 4,
783 init_vlc(&dc_lum_vlc[1], 9, 120, 784 &table0_dc_lum[0][0], 8, 4);
784 &table1_dc_lum[0][1], 8, 4, 785 init_vlc(&dc_chroma_vlc[0], 9, 120,
785 &table1_dc_lum[0][0], 8, 4); 786 &table0_dc_chroma[0][1], 8, 4,
786 init_vlc(&dc_chroma_vlc[1], 9, 120, 787 &table0_dc_chroma[0][0], 8, 4);
787 &table1_dc_chroma[0][1], 8, 4, 788 init_vlc(&dc_lum_vlc[1], 9, 120,
788 &table1_dc_chroma[0][0], 8, 4); 789 &table1_dc_lum[0][1], 8, 4,
790 &table1_dc_lum[0][0], 8, 4);
791 init_vlc(&dc_chroma_vlc[1], 9, 120,
792 &table1_dc_chroma[0][1], 8, 4,
793 &table1_dc_chroma[0][0], 8, 4);
789 794
790 init_h263_dc_for_msmpeg4(); 795 init_h263_dc_for_msmpeg4();
791 init_vlc(&v2_dc_lum_vlc, 9, 512, 796 init_vlc(&v2_dc_lum_vlc, 9, 512,
792 &v2_dc_lum_table[0][1], 8, 4, 797 &v2_dc_lum_table[0][1], 8, 4,
793 &v2_dc_lum_table[0][0], 8, 4); 798 &v2_dc_lum_table[0][0], 8, 4);
794 init_vlc(&v2_dc_chroma_vlc, 9, 512, 799 init_vlc(&v2_dc_chroma_vlc, 9, 512,
795 &v2_dc_chroma_table[0][1], 8, 4, 800 &v2_dc_chroma_table[0][1], 8, 4,
796 &v2_dc_chroma_table[0][0], 8, 4); 801 &v2_dc_chroma_table[0][0], 8, 4);
797 802
798 init_vlc(&cbpy_vlc, 6, 16, 803 init_vlc(&cbpy_vlc, 6, 16,
799 &cbpy_tab[0][1], 2, 1, 804 &cbpy_tab[0][1], 2, 1,
800 &cbpy_tab[0][0], 2, 1); 805 &cbpy_tab[0][0], 2, 1);
801 init_vlc(&v2_intra_cbpc_vlc, 3, 4, 806 init_vlc(&v2_intra_cbpc_vlc, 3, 4,
802 &v2_intra_cbpc[0][1], 2, 1, 807 &v2_intra_cbpc[0][1], 2, 1,
803 &v2_intra_cbpc[0][0], 2, 1); 808 &v2_intra_cbpc[0][0], 2, 1);
804 init_vlc(&v2_mb_type_vlc, 5, 8, 809 init_vlc(&v2_mb_type_vlc, 5, 8,
805 &v2_mb_type[0][1], 2, 1, 810 &v2_mb_type[0][1], 2, 1,
806 &v2_mb_type[0][0], 2, 1); 811 &v2_mb_type[0][0], 2, 1);
807 init_vlc(&v2_mv_vlc, 9, 33, 812 init_vlc(&v2_mv_vlc, 9, 33,
808 &mvtab[0][1], 2, 1, 813 &mvtab[0][1], 2, 1,
809 &mvtab[0][0], 2, 1); 814 &mvtab[0][0], 2, 1);
810 815
811 init_vlc(&mb_non_intra_vlc, 9, 128, 816 init_vlc(&mb_non_intra_vlc, 9, 128,
812 &table_mb_non_intra[0][1], 8, 4, 817 &table_mb_non_intra[0][1], 8, 4,
813 &table_mb_non_intra[0][0], 8, 4); 818 &table_mb_non_intra[0][0], 8, 4);
814 init_vlc(&mb_intra_vlc, 9, 64, 819 init_vlc(&mb_intra_vlc, 9, 64,
815 &table_mb_intra[0][1], 4, 2, 820 &table_mb_intra[0][1], 4, 2,
816 &table_mb_intra[0][0], 4, 2); 821 &table_mb_intra[0][0], 4, 2);
817 822
818 init_vlc(&v1_intra_cbpc_vlc, 6, 8, 823 init_vlc(&v1_intra_cbpc_vlc, 6, 8,
819 intra_MCBPC_bits, 1, 1, 824 intra_MCBPC_bits, 1, 1,
820 intra_MCBPC_code, 1, 1); 825 intra_MCBPC_code, 1, 1);
821 init_vlc(&v1_inter_cbpc_vlc, 6, 25, 826 init_vlc(&v1_inter_cbpc_vlc, 6, 25,
822 inter_MCBPC_bits, 1, 1, 827 inter_MCBPC_bits, 1, 1,
823 inter_MCBPC_code, 1, 1); 828 inter_MCBPC_code, 1, 1);
824 829 }
825 return 0; 830 return 0;
826 } 831 }
827 832
828 static int decode012(GetBitContext *gb) 833 static int decode012(GetBitContext *gb)
829 { 834 {