Lines Matching refs:gfc
54 * (gfc->ATH)
57 adjust_ATH(lame_internal_flags const *const gfc)
59 SessionConfig_t const *const cfg = &gfc->cfg;
62 if (gfc->ATH->use_adjust == 0) {
63 gfc->ATH->adjust_factor = 1.0; /* no adjustment */
70 max_pow = gfc->ov_psy.loudness_sq[0][0];
71 gr2_max = gfc->ov_psy.loudness_sq[1][0];
73 max_pow += gfc->ov_psy.loudness_sq[0][1];
74 gr2_max += gfc->ov_psy.loudness_sq[1][1];
87 max_pow *= gfc->ATH->aa_sensitivity_p;
102 if (gfc->ATH->adjust_factor >= 1.0) {
103 gfc->ATH->adjust_factor = 1.0;
109 if (gfc->ATH->adjust_factor < gfc->ATH->adjust_limit) {
110 gfc->ATH->adjust_factor = gfc->ATH->adjust_limit;
113 gfc->ATH->adjust_limit = 1.0;
118 if (gfc->ATH->adjust_factor >= adj_lim_new) { /* descend gradually */
119 gfc->ATH->adjust_factor *= adj_lim_new * 0.075 + 0.925;
120 if (gfc->ATH->adjust_factor < adj_lim_new) { /* stop descent */
121 gfc->ATH->adjust_factor = adj_lim_new;
125 if (gfc->ATH->adjust_limit >= adj_lim_new) {
126 gfc->ATH->adjust_factor = adj_lim_new;
130 if (gfc->ATH->adjust_factor < gfc->ATH->adjust_limit) {
131 gfc->ATH->adjust_factor = gfc->ATH->adjust_limit;
135 gfc->ATH->adjust_limit = adj_lim_new;
156 updateStats(lame_internal_flags * const gfc)
158 SessionConfig_t const *const cfg = &gfc->cfg;
159 EncResult_t *eov = &gfc->ov_enc;
175 int bt = gfc->l3_side.tt[gr][ch].block_type;
176 if (gfc->l3_side.tt[gr][ch].mixed_block_flag)
190 lame_encode_frame_init(lame_internal_flags * gfc, const sample_t *const inbuf[2])
192 SessionConfig_t const *const cfg = &gfc->cfg;
196 if (gfc->lame_encode_frame_init == 0) {
202 gfc->lame_encode_frame_init = 1;
221 gfc->l3_side.tt[gr][ch].block_type = SHORT_TYPE;
224 mdct_sub48(gfc, primebuff0, primebuff1);
231 assert(gfc->sv_enc.mf_size >= (BLKSIZE + framesize - FFTOFFSET));
233 assert(gfc->sv_enc.mf_size >= (512 + framesize - 32));
307 lame_internal_flags * gfc, /* Context */
313 SessionConfig_t const *const cfg = &gfc->cfg;
332 if (gfc->lame_encode_frame_init == 0) {
334 lame_encode_frame_init(gfc, inbuf);
348 gfc->ov_enc.padding = FALSE;
349 if ((gfc->sv_enc.slot_lag -= gfc->sv_enc.frac_SpF) < 0) {
350 gfc->sv_enc.slot_lag += cfg->samplerate_out;
351 gfc->ov_enc.padding = TRUE;
374 ret = L3psycho_anal_vbr(gfc, bufp, gr,
388 gr_info *const cod_info = &gfc->l3_side.tt[gr][ch];
397 adjust_ATH(gfc);
405 mdct_sub48(gfc, inbuf[0], inbuf[1]);
413 gfc->ov_enc.mode_ext = MPG_MD_LR_LR;
416 gfc->ov_enc.mode_ext = MPG_MD_MS_LR;
443 gr_info const *const gi0 = &gfc->l3_side.tt[0][0];
444 gr_info const *const gi1 = &gfc->l3_side.tt[cfg->mode_gr - 1][0];
448 gfc->ov_enc.mode_ext = MPG_MD_MS_LR;
454 if (gfc->ov_enc.mode_ext == MPG_MD_MS_LR) {
465 if (cfg->analysis && gfc->pinfo != NULL) {
468 gfc->pinfo->ms_ratio[gr] = 0;
469 gfc->pinfo->ms_ener_ratio[gr] = ms_ener_ratio[gr];
470 gfc->pinfo->blocktype[gr][ch] = gfc->l3_side.tt[gr][ch].block_type;
471 gfc->pinfo->pe[gr][ch] = pe_use[gr][ch];
472 memcpy(gfc->pinfo->xr[gr][ch], &gfc->l3_side.tt[gr][ch].xr[0], sizeof(FLOAT) * 576);
475 if (gfc->ov_enc.mode_ext == MPG_MD_MS_LR) {
476 gfc->pinfo->ers[gr][ch] = gfc->pinfo->ers[gr][ch + 2];
477 memcpy(gfc->pinfo->energy[gr][ch], gfc->pinfo->energy[gr][ch + 2],
478 sizeof(gfc->pinfo->energy[gr][ch]));
500 gfc->sv_enc.pefirbuf[i] = gfc->sv_enc.pefirbuf[i + 1];
506 gfc->sv_enc.pefirbuf[18] = f;
508 f = gfc->sv_enc.pefirbuf[9];
510 f += (gfc->sv_enc.pefirbuf[i] + gfc->sv_enc.pefirbuf[18 - i]) * fircoef[i];
523 CBR_iteration_loop(gfc, (const FLOAT (*)[2])pe_use, ms_ener_ratio, masking);
526 ABR_iteration_loop(gfc, (const FLOAT (*)[2])pe_use, ms_ener_ratio, masking);
529 VBR_old_iteration_loop(gfc, (const FLOAT (*)[2])pe_use, ms_ener_ratio, masking);
533 VBR_new_iteration_loop(gfc, (const FLOAT (*)[2])pe_use, ms_ener_ratio, masking);
544 (void) format_bitstream(gfc);
547 mp3count = copy_buffer(gfc, mp3buf, mp3buf_size, 1);
551 AddVbrFrame(gfc);
554 if (cfg->analysis && gfc->pinfo != NULL) {
559 gfc->pinfo->pcmdata[ch][j] = gfc->pinfo->pcmdata[ch][j + framesize];
561 gfc->pinfo->pcmdata[ch][j] = inbuf[ch][j - FFTOFFSET];
564 gfc->sv_qnt.masking_lower = 1.0;
566 set_frame_pinfo(gfc, masking);
569 ++gfc->ov_enc.frame_number;
571 updateStats(gfc);