Lines Matching refs:chan
121 * @param[in,out] chan ptr to the channel parameters
126 static int num_coded_units(GetBitContext *gb, Atrac3pChanParams *chan,
129 chan->fill_mode = get_bits(gb, 2);
130 if (!chan->fill_mode) {
131 chan->num_coded_vals = ctx->num_quant_units;
133 chan->num_coded_vals = get_bits(gb, 5);
134 if (chan->num_coded_vals > ctx->num_quant_units) {
140 if (chan->fill_mode == 3)
141 chan->split_point = get_bits(gb, 2) + (chan->ch_num << 1) + 1;
151 * @param[in,out] chan ptr to the channel parameters
157 Atrac3pChanParams *chan, int wtab_idx,
162 &atrac3p_wl_weights[chan->ch_num * 3 + wtab_idx - 1][0];
165 chan->qu_wordlen[i] += weights_tab[i];
166 if (chan->qu_wordlen[i] < 0 || chan->qu_wordlen[i] > 7) {
169 i, chan->qu_wordlen[i]);
181 * @param[in,out] chan ptr to the channel parameters
187 Atrac3pChanParams *chan, int wtab_idx,
194 chan->qu_sf_idx[i] -= weights_tab[i];
195 if (chan->qu_sf_idx[i] < 0 || chan->qu_sf_idx[i] > 63) {
198 i, chan->qu_sf_idx[i]);
246 Atrac3pChanParams *chan = &ctx->channels[ch_num];
249 chan->fill_mode = 0;
254 chan->qu_wordlen[i] = get_bits(gb, 3);
258 if ((ret = num_coded_units(gb, chan, ctx, avctx)) < 0)
261 if (chan->num_coded_vals) {
264 for (i = 0; i < chan->num_coded_vals; i++) {
266 chan->qu_wordlen[i] = (ref_chan->qu_wordlen[i] + delta) & 7;
271 if ((ret = num_coded_units(gb, chan, ctx, avctx)) < 0)
274 if (chan->num_coded_vals) {
276 if (pos > chan->num_coded_vals) {
286 chan->qu_wordlen[i] = get_bits(gb, 3);
288 for (i = pos; i < chan->num_coded_vals; i++)
289 chan->qu_wordlen[i] = (min_val + get_bitsz(gb, delta_bits)) & 7;
294 if ((ret = num_coded_units(gb, chan, ctx, avctx)) < 0)
297 if (ch_num && chan->num_coded_vals) {
300 chan->qu_wordlen[0] = (ref_chan->qu_wordlen[0] + delta) & 7;
302 for (i = 1; i < chan->num_coded_vals; i++) {
305 chan->qu_wordlen[i] = (chan->qu_wordlen[i - 1] + diff + delta) & 7;
307 } else if (chan->num_coded_vals) {
314 chan->qu_wordlen, chan->num_coded_vals);
317 for (i = 0; i < chan->num_coded_vals; i++) {
319 chan->qu_wordlen[i] = (chan->qu_wordlen[i] + delta) & 7;
322 for (i = 0; i < (chan->num_coded_vals & - 2); i += 2)
324 chan->qu_wordlen[i] = (chan->qu_wordlen[i] +
327 chan->qu_wordlen[i + 1] = (chan->qu_wordlen[i + 1] +
332 if (chan->num_coded_vals & 1)
333 chan->qu_wordlen[i] = (chan->qu_wordlen[i] +
341 if ((ret = num_coded_units(gb, chan, ctx, avctx)) < 0)
344 if (chan->num_coded_vals) {
348 chan->qu_wordlen[0] = get_bits(gb, 3);
350 for (i = 1; i < chan->num_coded_vals; i++) {
352 chan->qu_wordlen[i] = (chan->qu_wordlen[i - 1] + delta) & 7;
358 if (chan->fill_mode == 2) {
359 for (i = chan->num_coded_vals; i < ctx->num_quant_units; i++)
360 chan->qu_wordlen[i] = ch_num ? get_bits1(gb) : 1;
361 } else if (chan->fill_mode == 3) {
362 pos = ch_num ? chan->num_coded_vals + chan->split_point
363 : ctx->num_quant_units - chan->split_point;
364 if (pos > FF_ARRAY_ELEMS(chan->qu_wordlen)) {
366 pos = FF_ARRAY_ELEMS(chan->qu_wordlen);
368 for (i = chan->num_coded_vals; i < pos; i++)
369 chan->qu_wordlen[i] = 1;
373 return add_wordlen_weights(ctx, chan, weight_idx, avctx);
393 Atrac3pChanParams *chan = &ctx->channels[ch_num];
399 chan->qu_sf_idx[i] = get_bits(gb, 6);
407 chan->qu_sf_idx[i] = (ref_chan->qu_sf_idx[i] + delta) & 0x3F;
412 UNPACK_SF_VQ_SHAPE(gb, chan->qu_sf_idx, ctx->used_quant_units);
419 chan->qu_sf_idx[i] = (chan->qu_sf_idx[i] +
424 chan->qu_sf_idx[i] = (chan->qu_sf_idx[i] + min_val +
438 chan->qu_sf_idx[i] = get_bits(gb, 6);
442 chan->qu_sf_idx[i] = (min_val +
452 chan->qu_sf_idx[0] = (ref_chan->qu_sf_idx[0] + delta) & 0x3F;
457 chan->qu_sf_idx[i] = (chan->qu_sf_idx[i - 1] + diff + delta) & 0x3F;
462 UNPACK_SF_VQ_SHAPE(gb, chan->qu_sf_idx, ctx->used_quant_units);
466 chan->qu_sf_idx[i] = (chan->qu_sf_idx[i] +
475 chan->qu_sf_idx[i] = ref_chan->qu_sf_idx[i];
484 UNPACK_SF_VQ_SHAPE(gb, chan->qu_sf_idx, ctx->used_quant_units);
487 chan->qu_sf_idx[0] = (chan->qu_sf_idx[0] + diff) & 0x3F;
492 chan->qu_sf_idx[i] = (diff + chan->qu_sf_idx[i]) & 0x3F;
496 chan->qu_sf_idx[0] = get_bits(gb, 6);
500 chan->qu_sf_idx[i] = (chan->qu_sf_idx[i - 1] + delta) & 0x3F;
508 return subtract_sf_weights(ctx, chan, weight_idx, avctx);
605 if (chan->qu_wordlen[i]) { \
606 chan->qu_tab_idx[i] = OP; \
609 chan->qu_tab_idx[i] = get_bits1(gb); \
620 pred = chan->qu_tab_idx[i]
641 Atrac3pChanParams *chan = &ctx->channels[ch_num];
644 chan->table_type = get_bits1(gb);
765 Atrac3pChanParams *chan;
768 chan = &ctx->channels[ch_num];
770 memset(chan->spectrum, 0, sizeof(chan->spectrum));
773 memset(chan->power_levs, ATRAC3P_POWER_COMP_OFF, sizeof(chan->power_levs));
779 wordlen = chan->qu_wordlen[qu];
780 codetab = chan->qu_tab_idx[qu];
783 codetab = atrac3p_ct_restricted_to_full[chan->table_type][wordlen - 1][codetab];
785 tab_index = (chan->table_type * 8 + codetab) * 7 + wordlen - 1;
789 &chan->spectrum[ff_atrac3p_qu_to_spec_pos[qu]],
793 memcpy(&chan->spectrum[ff_atrac3p_qu_to_spec_pos[qu]],
796 sizeof(chan->spectrum[ff_atrac3p_qu_to_spec_pos[qu]]));
797 chan->qu_wordlen[qu] = ctx->channels[0].qu_wordlen[qu];
808 chan->power_levs[i] = get_bits(gb, 4);
874 Atrac3pChanParams *chan = &ctx->channels[ch_num];
880 chan->gain_data[i].num_points = get_bits(gb, 3);
884 chan->gain_data[i].num_points =
893 chan->gain_data[i].num_points =
897 chan->gain_data[0].num_points =
904 chan->gain_data[i].num_points =
905 (chan->gain_data[i - 1].num_points + delta) & 7;
912 chan->gain_data[i].num_points =
919 chan->gain_data[i].num_points = min_val + get_bitsz(gb, delta_bits);
920 if (chan->gain_data[i].num_points > 7)
980 Atrac3pChanParams *chan = &ctx->channels[ch_num];
986 for (i = 0; i < chan->gain_data[sb].num_points; i++)
987 chan->gain_data[sb].lev_code[i] = get_bits(gb, 4);
992 for (i = 0; i < chan->gain_data[sb].num_points; i++) {
997 chan->gain_data[sb].lev_code[i] = (pred + delta) & 0xF;
1001 gainc_level_mode1m(gb, ctx, &chan->gain_data[sb]);
1007 if (chan->gain_data[sb].num_points > 0) {
1009 gainc_level_mode1m(gb, ctx, &chan->gain_data[sb]);
1011 gainc_level_mode3s(&chan->gain_data[sb],
1015 if (chan->gain_data[0].num_points > 0)
1016 gainc_level_mode1m(gb, ctx, &chan->gain_data[0]);
1019 for (i = 0; i < chan->gain_data[sb].num_points; i++) {
1022 pred = (i >= chan->gain_data[sb - 1].num_points)
1023 ? 7 : chan->gain_data[sb - 1].lev_code[i];
1024 chan->gain_data[sb].lev_code[i] = (pred + delta) & 0xF;
1031 gainc_level_mode3s(&chan->gain_data[sb],
1038 for (i = 0; i < chan->gain_data[sb].num_points; i++) {
1039 chan->gain_data[sb].lev_code[i] = min_val + get_bitsz(gb, delta_bits);
1040 if (chan->gain_data[sb].lev_code[i] > 15)
1120 Atrac3pChanParams *chan = &ctx->channels[ch_num];
1126 for (i = 0; i < chan->gain_data[sb].num_points; i++)
1127 gainc_loc_mode0(gb, ctx, &chan->gain_data[sb], i);
1132 if (chan->gain_data[sb].num_points <= 0)
1134 dst = &chan->gain_data[sb];
1171 gainc_loc_mode1(gb, ctx, &chan->gain_data[sb]);
1176 if (chan->gain_data[sb].num_points <= 0)
1178 dst = &chan->gain_data[sb];
1183 for (i = 0; i < chan->gain_data[sb].num_points; i++)
1188 for (i = 0; i < chan->gain_data[0].num_points; i++)
1189 gainc_loc_mode0(gb, ctx, &chan->gain_data[0], i);
1192 if (chan->gain_data[sb].num_points <= 0)
1194 dst = &chan->gain_data[sb];
1222 for (i = 0; i < chan->gain_data[sb].num_points; i++) {
1224 gainc_loc_mode0(gb, ctx, &chan->gain_data[sb], i);
1226 chan->gain_data[sb].loc_code[i] =
1234 for (i = 0; i < chan->gain_data[sb].num_points; i++)
1235 chan->gain_data[sb].loc_code[i] = min_val + i +
1243 dst = &chan->gain_data[sb];
1244 for (i = 0; i < chan->gain_data[sb].num_points; i++) {