Lines Matching refs:ics
1372 static int decode_prediction(AACContext *ac, IndividualChannelStream *ics, in decode_prediction() argument
1377 ics->predictor_reset_group = get_bits(gb, 5); in decode_prediction()
1378 if (ics->predictor_reset_group == 0 || in decode_prediction()
1379 ics->predictor_reset_group > 30) { in decode_prediction()
1385 …for (sfb = 0; sfb < FFMIN(ics->max_sfb, ff_aac_pred_sfb_max[ac->oc[1].m4ac.sampling_index]); sfb++… in decode_prediction()
1386 ics->prediction_used[sfb] = get_bits1(gb); in decode_prediction()
1408 static int decode_ics_info(AACContext *ac, IndividualChannelStream *ics, in decode_ics_info() argument
1422 ics->window_sequence[1] = ics->window_sequence[0]; in decode_ics_info()
1423 ics->window_sequence[0] = get_bits(gb, 2); in decode_ics_info()
1425 ics->window_sequence[0] != ONLY_LONG_SEQUENCE) { in decode_ics_info()
1428 "window sequence %d found.\n", ics->window_sequence[0]); in decode_ics_info()
1429 ics->window_sequence[0] = ONLY_LONG_SEQUENCE; in decode_ics_info()
1432 ics->use_kb_window[1] = ics->use_kb_window[0]; in decode_ics_info()
1433 ics->use_kb_window[0] = get_bits1(gb); in decode_ics_info()
1435 ics->num_window_groups = 1; in decode_ics_info()
1436 ics->group_len[0] = 1; in decode_ics_info()
1437 if (ics->window_sequence[0] == EIGHT_SHORT_SEQUENCE) { in decode_ics_info()
1439 ics->max_sfb = get_bits(gb, 4); in decode_ics_info()
1442 ics->group_len[ics->num_window_groups - 1]++; in decode_ics_info()
1444 ics->num_window_groups++; in decode_ics_info()
1445 ics->group_len[ics->num_window_groups - 1] = 1; in decode_ics_info()
1448 ics->num_windows = 8; in decode_ics_info()
1450 ics->swb_offset = ff_swb_offset_120[sampling_index]; in decode_ics_info()
1451 ics->num_swb = ff_aac_num_swb_120[sampling_index]; in decode_ics_info()
1453 ics->swb_offset = ff_swb_offset_128[sampling_index]; in decode_ics_info()
1454 ics->num_swb = ff_aac_num_swb_128[sampling_index]; in decode_ics_info()
1456 ics->tns_max_bands = ff_tns_max_bands_128[sampling_index]; in decode_ics_info()
1457 ics->predictor_present = 0; in decode_ics_info()
1459 ics->max_sfb = get_bits(gb, 6); in decode_ics_info()
1460 ics->num_windows = 1; in decode_ics_info()
1463 ics->swb_offset = ff_swb_offset_480[sampling_index]; in decode_ics_info()
1464 ics->num_swb = ff_aac_num_swb_480[sampling_index]; in decode_ics_info()
1465 ics->tns_max_bands = ff_tns_max_bands_480[sampling_index]; in decode_ics_info()
1467 ics->swb_offset = ff_swb_offset_512[sampling_index]; in decode_ics_info()
1468 ics->num_swb = ff_aac_num_swb_512[sampling_index]; in decode_ics_info()
1469 ics->tns_max_bands = ff_tns_max_bands_512[sampling_index]; in decode_ics_info()
1471 if (!ics->num_swb || !ics->swb_offset) { in decode_ics_info()
1477 ics->num_swb = ff_aac_num_swb_960[sampling_index]; in decode_ics_info()
1478 ics->swb_offset = ff_swb_offset_960[sampling_index]; in decode_ics_info()
1480 ics->num_swb = ff_aac_num_swb_1024[sampling_index]; in decode_ics_info()
1481 ics->swb_offset = ff_swb_offset_1024[sampling_index]; in decode_ics_info()
1483 ics->tns_max_bands = ff_tns_max_bands_1024[sampling_index]; in decode_ics_info()
1486 ics->predictor_present = get_bits1(gb); in decode_ics_info()
1487 ics->predictor_reset_group = 0; in decode_ics_info()
1489 if (ics->predictor_present) { in decode_ics_info()
1491 if (decode_prediction(ac, ics, gb)) { in decode_ics_info()
1506 if ((ics->ltp.present = get_bits(gb, 1))) in decode_ics_info()
1507 decode_ltp(&ics->ltp, gb, ics->max_sfb); in decode_ics_info()
1512 if (ics->max_sfb > ics->num_swb) { in decode_ics_info()
1516 ics->max_sfb, ics->num_swb); in decode_ics_info()
1522 ics->max_sfb = 0; in decode_ics_info()
1536 IndividualChannelStream *ics) in decode_band_types() argument
1539 const int bits = (ics->window_sequence[0] == EIGHT_SHORT_SEQUENCE) ? 3 : 5; in decode_band_types()
1540 for (g = 0; g < ics->num_window_groups; g++) { in decode_band_types()
1542 while (k < ics->max_sfb) { in decode_band_types()
1557 if (sect_end > ics->max_sfb) { in decode_band_types()
1560 sect_end, ics->max_sfb); in decode_band_types()
1585 IndividualChannelStream *ics, in decode_scalefactors() argument
1593 for (g = 0; g < ics->num_window_groups; g++) { in decode_scalefactors()
1594 for (i = 0; i < ics->max_sfb;) { in decode_scalefactors()
1686 GetBitContext *gb, const IndividualChannelStream *ics) in decode_tns() argument
1689 const int is8 = ics->window_sequence[0] == EIGHT_SHORT_SEQUENCE; in decode_tns()
1691 for (w = 0; w < ics->num_windows; w++) { in decode_tns()
1732 int max_idx = cpe->ch[0].ics.num_window_groups * cpe->ch[0].ics.max_sfb; in decode_mid_side_stereo()
1756 const IndividualChannelStream *ics, in decode_spectrum_and_dequant() argument
1760 const int c = 1024 / ics->num_windows; in decode_spectrum_and_dequant()
1761 const uint16_t *offsets = ics->swb_offset; in decode_spectrum_and_dequant()
1764 for (g = 0; g < ics->num_windows; g++) in decode_spectrum_and_dequant()
1765 memset(coef + g * 128 + offsets[ics->max_sfb], 0, in decode_spectrum_and_dequant()
1766 sizeof(INTFLOAT) * (c - offsets[ics->max_sfb])); in decode_spectrum_and_dequant()
1768 for (g = 0; g < ics->num_window_groups; g++) { in decode_spectrum_and_dequant()
1769 unsigned g_len = ics->group_len[g]; in decode_spectrum_and_dequant()
1771 for (i = 0; i < ics->max_sfb; i++, idx++) { in decode_spectrum_and_dequant()
2023 for (g = 0; g < ics->num_window_groups; g++) { in decode_spectrum_and_dequant()
2024 unsigned g_len = ics->group_len[g]; in decode_spectrum_and_dequant()
2026 for (i = 0; i < ics->max_sfb; i++, idx++) { in decode_spectrum_and_dequant()
2052 if (!sce->ics.predictor_initialized) { in apply_prediction()
2054 sce->ics.predictor_initialized = 1; in apply_prediction()
2057 if (sce->ics.window_sequence[0] != EIGHT_SHORT_SEQUENCE) { in apply_prediction()
2061 for (k = sce->ics.swb_offset[sfb]; in apply_prediction()
2062 k < sce->ics.swb_offset[sfb + 1]; in apply_prediction()
2065 sce->ics.predictor_present && in apply_prediction()
2066 sce->ics.prediction_used[sfb]); in apply_prediction()
2069 if (sce->ics.predictor_reset_group) in apply_prediction()
2071 sce->ics.predictor_reset_group); in apply_prediction()
2086 const int mode = sce->ics.window_sequence[0]; in decode_gain_control()
2116 IndividualChannelStream *ics = &sce->ics; in decode_ics() local
2135 ret = decode_ics_info(ac, ics, gb); in decode_ics()
2141 sce->band_type_run_end, gb, ics)) < 0) in decode_ics()
2143 if ((ret = decode_scalefactors(ac, sce->sf, gb, global_gain, ics, in decode_ics()
2150 if (ics->window_sequence[0] == EIGHT_SHORT_SEQUENCE) { in decode_ics()
2156 if (decode_pulses(&pulse, gb, ics->swb_offset, ics->num_swb)) { in decode_ics()
2165 ret = decode_tns(ac, tns, gb, ics); in decode_ics()
2179 ret = decode_tns(ac, tns, gb, ics); in decode_ics()
2186 &pulse, ics, sce->band_type); in decode_ics()
2204 const IndividualChannelStream *ics = &cpe->ch[0].ics; local
2208 const uint16_t *offsets = ics->swb_offset;
2209 for (g = 0; g < ics->num_window_groups; g++) {
2210 for (i = 0; i < ics->max_sfb; i++, idx++) {
2215 for (group = 0; group < ics->group_len[g]; group++) {
2220 for (group = 0; group < ics->group_len[g]; group++) {
2228 ch0 += ics->group_len[g] * 128;
2229 ch1 += ics->group_len[g] * 128;
2243 const IndividualChannelStream *ics = &cpe->ch[1].ics; local
2246 const uint16_t *offsets = ics->swb_offset;
2250 for (g = 0; g < ics->num_window_groups; g++) {
2251 for (i = 0; i < ics->max_sfb;) {
2260 for (group = 0; group < ics->group_len[g]; group++)
2280 coef0 += ics->group_len[g] * 128;
2281 coef1 += ics->group_len[g] * 128;
2297 if (decode_ics_info(ac, &cpe->ch[0].ics, gb))
2299 i = cpe->ch[1].ics.use_kb_window[0];
2300 cpe->ch[1].ics = cpe->ch[0].ics;
2301 cpe->ch[1].ics.use_kb_window[1] = i;
2302 if (cpe->ch[1].ics.predictor_present &&
2304 if ((cpe->ch[1].ics.ltp.present = get_bits(gb, 1)))
2305 decode_ltp(&cpe->ch[1].ics.ltp, gb, cpe->ch[1].ics.max_sfb);
2394 for (g = 0; g < sce->ics.num_window_groups; g++) {
2395 for (sfb = 0; sfb < sce->ics.max_sfb; sfb++, idx++) {
2592 IndividualChannelStream *ics, int decode) argument
2594 const int mmm = FFMIN(ics->tns_max_bands, ics->max_sfb);
2604 for (w = 0; w < ics->num_windows; w++) {
2605 bottom = ics->num_swb;
2616 start = ics->swb_offset[FFMIN(bottom, mmm)];
2617 end = ics->swb_offset[FFMIN( top, mmm)];
2652 INTFLOAT *in, IndividualChannelStream *ics) argument
2654 …const INTFLOAT *lwindow = ics->use_kb_window[0] ? AAC_RENAME2(aac_kbd_long_1024) : AAC_RENAME…
2655 …const INTFLOAT *swindow = ics->use_kb_window[0] ? AAC_RENAME2(aac_kbd_short_128) : AAC_RENAME…
2656 …const INTFLOAT *lwindow_prev = ics->use_kb_window[1] ? AAC_RENAME2(aac_kbd_long_1024) : AAC_RENAME…
2657 …const INTFLOAT *swindow_prev = ics->use_kb_window[1] ? AAC_RENAME2(aac_kbd_short_128) : AAC_RENAME…
2659 if (ics->window_sequence[0] != LONG_STOP_SEQUENCE) {
2665 if (ics->window_sequence[0] != LONG_START_SEQUENCE) {
2679 const LongTermPrediction *ltp = &sce->ics.ltp;
2680 const uint16_t *offsets = sce->ics.swb_offset;
2683 if (sce->ics.window_sequence[0] != EIGHT_SHORT_SEQUENCE) {
2694 ac->windowing_and_mdct_ltp(ac, predFreq, predTime, &sce->ics);
2697 ac->apply_tns(predFreq, &sce->tns, &sce->ics, 0);
2699 for (sfb = 0; sfb < FFMIN(sce->ics.max_sfb, MAX_LTP_LONG_SFB); sfb++)
2711 IndividualChannelStream *ics = &sce->ics; local
2714 …const INTFLOAT *lwindow = ics->use_kb_window[0] ? AAC_RENAME2(aac_kbd_long_1024) : AAC_RENAME2(sin…
2715 …const INTFLOAT *swindow = ics->use_kb_window[0] ? AAC_RENAME2(aac_kbd_short_128) : AAC_RENAME2(sin…
2718 if (ics->window_sequence[0] == EIGHT_SHORT_SEQUENCE) {
2725 } else if (ics->window_sequence[0] == LONG_START_SEQUENCE) {
2749 IndividualChannelStream *ics = &sce->ics; local
2753 …const INTFLOAT *swindow = ics->use_kb_window[0] ? AAC_RENAME2(aac_kbd_short_128) : AAC_RENAME…
2754 …const INTFLOAT *lwindow_prev = ics->use_kb_window[1] ? AAC_RENAME2(aac_kbd_long_1024) : AAC_RENAME…
2755 …const INTFLOAT *swindow_prev = ics->use_kb_window[1] ? AAC_RENAME2(aac_kbd_short_128) : AAC_RENAME…
2761 if (ics->window_sequence[0] == EIGHT_SHORT_SEQUENCE) {
2778 …if ((ics->window_sequence[1] == ONLY_LONG_SEQUENCE || ics->window_sequence[1] == LONG_STOP_SEQUENC…
2779 …(ics->window_sequence[0] == ONLY_LONG_SEQUENCE || ics->window_sequence[0] == LONG_START_SEQUENCE))…
2784 if (ics->window_sequence[0] == EIGHT_SHORT_SEQUENCE) {
2798 if (ics->window_sequence[0] == EIGHT_SHORT_SEQUENCE) {
2804 } else if (ics->window_sequence[0] == LONG_START_SEQUENCE) {
2818 IndividualChannelStream *ics = &sce->ics; local
2822 …const INTFLOAT *swindow = ics->use_kb_window[0] ? AAC_RENAME(aac_kbd_short_120) : AAC_RENAME(…
2823 …const INTFLOAT *lwindow_prev = ics->use_kb_window[1] ? AAC_RENAME(aac_kbd_long_960) : AAC_RENAME(s…
2824 …const INTFLOAT *swindow_prev = ics->use_kb_window[1] ? AAC_RENAME(aac_kbd_short_120) : AAC_RENAME(…
2830 if (ics->window_sequence[0] == EIGHT_SHORT_SEQUENCE) {
2844 …if ((ics->window_sequence[1] == ONLY_LONG_SEQUENCE || ics->window_sequence[1] == LONG_STOP_SEQUENC…
2845 …(ics->window_sequence[0] == ONLY_LONG_SEQUENCE || ics->window_sequence[0] == LONG_START_SEQUENCE))…
2850 if (ics->window_sequence[0] == EIGHT_SHORT_SEQUENCE) {
2864 if (ics->window_sequence[0] == EIGHT_SHORT_SEQUENCE) {
2870 } else if (ics->window_sequence[0] == LONG_START_SEQUENCE) {
2880 IndividualChannelStream *ics = &sce->ics; local
2898 if (ics->use_kb_window[1]) {
3041 if (che->ch[0].ics.predictor_present) {
3042 if (che->ch[0].ics.ltp.present)
3044 if (che->ch[1].ics.ltp.present && type == TYPE_CPE)
3049 ac->apply_tns(che->ch[0].coeffs, &che->ch[0].tns, &che->ch[0].ics, 1);
3051 ac->apply_tns(che->ch[1].coeffs, &che->ch[1].tns, &che->ch[1].ics, 1);