Mercurial > libavcodec.hg
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 { |
