comparison ac3enc.c @ 4645:056127e5df89 libavcodec

remove redundancy in AC-3 parser by using common tables from ac3tab.h
author jbr
date Sun, 11 Mar 2007 02:13:05 +0000
parents 1e175640dad3
children 3a891d2379ce
comparison
equal deleted inserted replaced
4644:414d484f6483 4645:056127e5df89
609 0x07, /* L C R SL SR (+LFE) */ 609 0x07, /* L C R SL SR (+LFE) */
610 }; 610 };
611 611
612 avctx->frame_size = AC3_FRAME_SIZE; 612 avctx->frame_size = AC3_FRAME_SIZE;
613 613
614 ac3_common_init();
615
614 /* number of channels */ 616 /* number of channels */
615 if (channels < 1 || channels > 6) 617 if (channels < 1 || channels > 6)
616 return -1; 618 return -1;
617 s->acmod = acmod_defs[channels - 1]; 619 s->acmod = acmod_defs[channels - 1];
618 s->lfe = (channels == 6) ? 1 : 0; 620 s->lfe = (channels == 6) ? 1 : 0;
642 } 644 }
643 if (i == 19) 645 if (i == 19)
644 return -1; 646 return -1;
645 s->bit_rate = bitrate; 647 s->bit_rate = bitrate;
646 s->frmsizecod = i << 1; 648 s->frmsizecod = i << 1;
647 s->frame_size_min = (bitrate * 1000 * AC3_FRAME_SIZE) / (freq * 16); 649 s->frame_size_min = ff_ac3_frame_sizes[s->frmsizecod][s->fscod];
648 s->bits_written = 0; 650 s->bits_written = 0;
649 s->samples_written = 0; 651 s->samples_written = 0;
650 s->frame_size = s->frame_size_min; 652 s->frame_size = s->frame_size_min;
651 653
652 /* bit allocation init */ 654 /* bit allocation init */
660 if (s->lfe) { 662 if (s->lfe) {
661 s->nb_coefs[s->lfe_channel] = 7; /* fixed */ 663 s->nb_coefs[s->lfe_channel] = 7; /* fixed */
662 } 664 }
663 /* initial snr offset */ 665 /* initial snr offset */
664 s->csnroffst = 40; 666 s->csnroffst = 40;
665
666 ac3_common_init();
667 667
668 /* mdct init */ 668 /* mdct init */
669 fft_init(MDCT_NBITS - 2); 669 fft_init(MDCT_NBITS - 2);
670 for(i=0;i<N/4;i++) { 670 for(i=0;i<N/4;i++) {
671 alpha = 2 * M_PI * (i + 1.0 / 8.0) / (float)N; 671 alpha = 2 * M_PI * (i + 1.0 / 8.0) / (float)N;