• Home
  • Raw
  • Download

Lines Matching refs:bd

584 static int read_const_block_data(ALSDecContext *ctx, ALSBlockData *bd)  in read_const_block_data()  argument
590 if (bd->block_length <= 0) in read_const_block_data()
593 *bd->raw_samples = 0; in read_const_block_data()
594 *bd->const_block = get_bits1(gb); // 1 = constant value, 0 = zero block (silence) in read_const_block_data()
595 bd->js_blocks = get_bits1(gb); in read_const_block_data()
600 if (*bd->const_block) { in read_const_block_data()
602 *bd->raw_samples = get_sbits_long(gb, const_val_bits); in read_const_block_data()
606 *bd->const_block = 1; in read_const_block_data()
614 static void decode_const_block_data(ALSDecContext *ctx, ALSBlockData *bd) in decode_const_block_data() argument
616 int smp = bd->block_length - 1; in decode_const_block_data()
617 int32_t val = *bd->raw_samples; in decode_const_block_data()
618 int32_t *dst = bd->raw_samples + 1; in decode_const_block_data()
628 static int read_var_block_data(ALSDecContext *ctx, ALSBlockData *bd) in read_var_block_data() argument
640 int32_t *quant_cof = bd->quant_cof; in read_var_block_data()
645 *bd->const_block = 0; in read_var_block_data()
647 *bd->opt_order = 1; in read_var_block_data()
648 bd->js_blocks = get_bits1(gb); in read_var_block_data()
650 opt_order = *bd->opt_order; in read_var_block_data()
666 if (bd->block_length & (sub_blocks - 1) || bd->block_length <= 0) { in read_var_block_data()
672 sb_length = bd->block_length >> log2_sub_blocks; in read_var_block_data()
695 *bd->shift_lsbs = get_bits(gb, 4) + 1; in read_var_block_data()
697 *bd->store_prev_samples = (bd->js_blocks && bd->raw_other) || *bd->shift_lsbs; in read_var_block_data()
702 int opt_order_length = av_ceil_log2(av_clip((bd->block_length >> 3) - 1, in read_var_block_data()
704 *bd->opt_order = get_bits(gb, opt_order_length); in read_var_block_data()
705 if (*bd->opt_order > sconf->max_order) { in read_var_block_data()
706 *bd->opt_order = sconf->max_order; in read_var_block_data()
711 *bd->opt_order = sconf->max_order; in read_var_block_data()
713 opt_order = *bd->opt_order; in read_var_block_data()
771 *bd->use_ltp = get_bits1(gb); in read_var_block_data()
773 if (*bd->use_ltp) { in read_var_block_data()
776 bd->ltp_gain[0] = decode_rice(gb, 1) * 8; in read_var_block_data()
777 bd->ltp_gain[1] = decode_rice(gb, 2) * 8; in read_var_block_data()
786 bd->ltp_gain[2] = ltp_gain_values[r][c]; in read_var_block_data()
788 bd->ltp_gain[3] = decode_rice(gb, 2) * 8; in read_var_block_data()
789 bd->ltp_gain[4] = decode_rice(gb, 1) * 8; in read_var_block_data()
791 *bd->ltp_lag = get_bits(gb, ctx->ltp_lag_length); in read_var_block_data()
792 *bd->ltp_lag += FFMAX(4, opt_order + 1); in read_var_block_data()
797 if (bd->ra_block) { in read_var_block_data()
807 bd->raw_samples[0] = decode_rice(gb, avctx->bits_per_raw_sample - 4); in read_var_block_data()
809 bd->raw_samples[1] = decode_rice(gb, FFMIN(s[0] + 3, ctx->s_max)); in read_var_block_data()
811 bd->raw_samples[2] = decode_rice(gb, FFMIN(s[0] + 1, ctx->s_max)); in read_var_block_data()
818 unsigned int b = av_clip((av_ceil_log2(bd->block_length) - 3) >> 1, 0, 5); in read_var_block_data()
829 current_res = bd->raw_samples + start; in read_var_block_data()
850 current_res = bd->raw_samples + start; in read_var_block_data()
890 current_res = bd->raw_samples + start; in read_var_block_data()
903 static int decode_var_block_data(ALSDecContext *ctx, ALSBlockData *bd) in decode_var_block_data() argument
906 unsigned int block_length = bd->block_length; in decode_var_block_data()
909 int opt_order = *bd->opt_order; in decode_var_block_data()
912 int32_t *quant_cof = bd->quant_cof; in decode_var_block_data()
913 int32_t *lpc_cof = bd->lpc_cof; in decode_var_block_data()
914 int32_t *raw_samples = bd->raw_samples; in decode_var_block_data()
915 int32_t *raw_samples_end = bd->raw_samples + bd->block_length; in decode_var_block_data()
919 if (*bd->use_ltp) { in decode_var_block_data()
922 for (ltp_smp = FFMAX(*bd->ltp_lag - 2, 0); ltp_smp < block_length; ltp_smp++) { in decode_var_block_data()
923 int center = ltp_smp - *bd->ltp_lag; in decode_var_block_data()
932 y += (uint64_t)MUL64(bd->ltp_gain[tab], raw_samples[base]); in decode_var_block_data()
939 if (bd->ra_block) { in decode_var_block_data()
954 if (*bd->store_prev_samples) in decode_var_block_data()
955 memcpy(bd->prev_raw_samples, raw_samples - sconf->max_order, in decode_var_block_data()
956 sizeof(*bd->prev_raw_samples) * sconf->max_order); in decode_var_block_data()
959 if (bd->js_blocks && bd->raw_other) { in decode_var_block_data()
962 if (bd->raw_other > raw_samples) { // D = R - L in decode_var_block_data()
964 right = bd->raw_other; in decode_var_block_data()
966 left = bd->raw_other; in decode_var_block_data()
975 if (*bd->shift_lsbs) in decode_var_block_data()
977 raw_samples[sb] >>= *bd->shift_lsbs; in decode_var_block_data()
987 raw_samples = bd->raw_samples + smp; in decode_var_block_data()
999 raw_samples = bd->raw_samples; in decode_var_block_data()
1002 if (*bd->store_prev_samples) in decode_var_block_data()
1003 memcpy(raw_samples - sconf->max_order, bd->prev_raw_samples, in decode_var_block_data()
1012 static int read_block(ALSDecContext *ctx, ALSBlockData *bd) in read_block() argument
1018 *bd->shift_lsbs = 0; in read_block()
1025 ret = read_var_block_data(ctx, bd); in read_block()
1027 ret = read_const_block_data(ctx, bd); in read_block()
1039 static int decode_block(ALSDecContext *ctx, ALSBlockData *bd) in decode_block() argument
1045 if (*bd->const_block) in decode_block()
1046 decode_const_block_data(ctx, bd); in decode_block()
1048 ret = decode_var_block_data(ctx, bd); // always return 0 in decode_block()
1055 if (*bd->shift_lsbs) in decode_block()
1056 for (smp = 0; smp < bd->block_length; smp++) in decode_block()
1057 bd->raw_samples[smp] = (unsigned)bd->raw_samples[smp] << *bd->shift_lsbs; in decode_block()
1065 static int read_decode_block(ALSDecContext *ctx, ALSBlockData *bd) in read_decode_block() argument
1069 if ((ret = read_block(ctx, bd)) < 0) in read_decode_block()
1072 return decode_block(ctx, bd); in read_decode_block()
1100 ALSBlockData bd = { 0 }; in decode_blocks_ind() local
1102 bd.ra_block = ra_frame; in decode_blocks_ind()
1103 bd.const_block = ctx->const_block; in decode_blocks_ind()
1104 bd.shift_lsbs = ctx->shift_lsbs; in decode_blocks_ind()
1105 bd.opt_order = ctx->opt_order; in decode_blocks_ind()
1106 bd.store_prev_samples = ctx->store_prev_samples; in decode_blocks_ind()
1107 bd.use_ltp = ctx->use_ltp; in decode_blocks_ind()
1108 bd.ltp_lag = ctx->ltp_lag; in decode_blocks_ind()
1109 bd.ltp_gain = ctx->ltp_gain[0]; in decode_blocks_ind()
1110 bd.quant_cof = ctx->quant_cof[0]; in decode_blocks_ind()
1111 bd.lpc_cof = ctx->lpc_cof[0]; in decode_blocks_ind()
1112 bd.prev_raw_samples = ctx->prev_raw_samples; in decode_blocks_ind()
1113 bd.raw_samples = ctx->raw_samples[c]; in decode_blocks_ind()
1117 bd.block_length = div_blocks[b]; in decode_blocks_ind()
1119 if ((ret = read_decode_block(ctx, &bd)) < 0) { in decode_blocks_ind()
1121 zero_remaining(b, ctx->num_blocks, div_blocks, bd.raw_samples); in decode_blocks_ind()
1124 bd.raw_samples += div_blocks[b]; in decode_blocks_ind()
1125 bd.ra_block = 0; in decode_blocks_ind()
1142 ALSBlockData bd[2] = { { 0 } }; in decode_blocks() local
1144 bd[0].ra_block = ra_frame; in decode_blocks()
1145 bd[0].const_block = ctx->const_block; in decode_blocks()
1146 bd[0].shift_lsbs = ctx->shift_lsbs; in decode_blocks()
1147 bd[0].opt_order = ctx->opt_order; in decode_blocks()
1148 bd[0].store_prev_samples = ctx->store_prev_samples; in decode_blocks()
1149 bd[0].use_ltp = ctx->use_ltp; in decode_blocks()
1150 bd[0].ltp_lag = ctx->ltp_lag; in decode_blocks()
1151 bd[0].ltp_gain = ctx->ltp_gain[0]; in decode_blocks()
1152 bd[0].quant_cof = ctx->quant_cof[0]; in decode_blocks()
1153 bd[0].lpc_cof = ctx->lpc_cof[0]; in decode_blocks()
1154 bd[0].prev_raw_samples = ctx->prev_raw_samples; in decode_blocks()
1155 bd[0].js_blocks = *js_blocks; in decode_blocks()
1157 bd[1].ra_block = ra_frame; in decode_blocks()
1158 bd[1].const_block = ctx->const_block; in decode_blocks()
1159 bd[1].shift_lsbs = ctx->shift_lsbs; in decode_blocks()
1160 bd[1].opt_order = ctx->opt_order; in decode_blocks()
1161 bd[1].store_prev_samples = ctx->store_prev_samples; in decode_blocks()
1162 bd[1].use_ltp = ctx->use_ltp; in decode_blocks()
1163 bd[1].ltp_lag = ctx->ltp_lag; in decode_blocks()
1164 bd[1].ltp_gain = ctx->ltp_gain[0]; in decode_blocks()
1165 bd[1].quant_cof = ctx->quant_cof[0]; in decode_blocks()
1166 bd[1].lpc_cof = ctx->lpc_cof[0]; in decode_blocks()
1167 bd[1].prev_raw_samples = ctx->prev_raw_samples; in decode_blocks()
1168 bd[1].js_blocks = *(js_blocks + 1); in decode_blocks()
1174 bd[0].block_length = div_blocks[b]; in decode_blocks()
1175 bd[1].block_length = div_blocks[b]; in decode_blocks()
1177 bd[0].raw_samples = ctx->raw_samples[c ] + offset; in decode_blocks()
1178 bd[1].raw_samples = ctx->raw_samples[c + 1] + offset; in decode_blocks()
1180 bd[0].raw_other = bd[1].raw_samples; in decode_blocks()
1181 bd[1].raw_other = bd[0].raw_samples; in decode_blocks()
1183 if ((ret = read_decode_block(ctx, &bd[0])) < 0 || in decode_blocks()
1184 (ret = read_decode_block(ctx, &bd[1])) < 0) in decode_blocks()
1188 if (bd[0].js_blocks) { in decode_blocks()
1189 if (bd[1].js_blocks) in decode_blocks()
1193 bd[0].raw_samples[s] = bd[1].raw_samples[s] - (unsigned)bd[0].raw_samples[s]; in decode_blocks()
1194 } else if (bd[1].js_blocks) { in decode_blocks()
1196 bd[1].raw_samples[s] = bd[1].raw_samples[s] + (unsigned)bd[0].raw_samples[s]; in decode_blocks()
1200 bd[0].ra_block = 0; in decode_blocks()
1201 bd[1].ra_block = 0; in decode_blocks()
1213 zero_remaining(b, ctx->num_blocks, div_blocks, bd[0].raw_samples); in decode_blocks()
1214 zero_remaining(b, ctx->num_blocks, div_blocks, bd[1].raw_samples); in decode_blocks()
1274 static int revert_channel_correlation(ALSDecContext *ctx, ALSBlockData *bd, in revert_channel_correlation() argument
1289 revert_channel_correlation(ctx, bd, cd, reverted, offset, in revert_channel_correlation()
1300 bd->const_block = ctx->const_block + c; in revert_channel_correlation()
1301 bd->shift_lsbs = ctx->shift_lsbs + c; in revert_channel_correlation()
1302 bd->opt_order = ctx->opt_order + c; in revert_channel_correlation()
1303 bd->store_prev_samples = ctx->store_prev_samples + c; in revert_channel_correlation()
1304 bd->use_ltp = ctx->use_ltp + c; in revert_channel_correlation()
1305 bd->ltp_lag = ctx->ltp_lag + c; in revert_channel_correlation()
1306 bd->ltp_gain = ctx->ltp_gain[c]; in revert_channel_correlation()
1307 bd->lpc_cof = ctx->lpc_cof[c]; in revert_channel_correlation()
1308 bd->quant_cof = ctx->quant_cof[c]; in revert_channel_correlation()
1309 bd->raw_samples = ctx->raw_samples[c] + offset; in revert_channel_correlation()
1314 ptrdiff_t end = bd->block_length - 1; in revert_channel_correlation()
1357 bd->raw_samples[smp] += y >> 7; in revert_channel_correlation()
1376 bd->raw_samples[smp] += y >> 7; in revert_channel_correlation()
1689 ALSBlockData bd = { 0 }; in read_frame_data() local
1702 bd.ra_block = ra_frame; in read_frame_data()
1703 bd.prev_raw_samples = ctx->prev_raw_samples; in read_frame_data()
1708 bd.block_length = div_blocks[b]; in read_frame_data()
1709 if (bd.block_length <= 0) { in read_frame_data()
1712 bd.block_length); in read_frame_data()
1717 bd.const_block = ctx->const_block + c; in read_frame_data()
1718 bd.shift_lsbs = ctx->shift_lsbs + c; in read_frame_data()
1719 bd.opt_order = ctx->opt_order + c; in read_frame_data()
1720 bd.store_prev_samples = ctx->store_prev_samples + c; in read_frame_data()
1721 bd.use_ltp = ctx->use_ltp + c; in read_frame_data()
1722 bd.ltp_lag = ctx->ltp_lag + c; in read_frame_data()
1723 bd.ltp_gain = ctx->ltp_gain[c]; in read_frame_data()
1724 bd.lpc_cof = ctx->lpc_cof[c]; in read_frame_data()
1725 bd.quant_cof = ctx->quant_cof[c]; in read_frame_data()
1726 bd.raw_samples = ctx->raw_samples[c] + offset; in read_frame_data()
1727 bd.raw_other = NULL; in read_frame_data()
1729 if ((ret = read_block(ctx, &bd)) < 0) in read_frame_data()
1736 ret = revert_channel_correlation(ctx, &bd, ctx->chan_data, in read_frame_data()
1742 bd.const_block = ctx->const_block + c; in read_frame_data()
1743 bd.shift_lsbs = ctx->shift_lsbs + c; in read_frame_data()
1744 bd.opt_order = ctx->opt_order + c; in read_frame_data()
1745 bd.store_prev_samples = ctx->store_prev_samples + c; in read_frame_data()
1746 bd.use_ltp = ctx->use_ltp + c; in read_frame_data()
1747 bd.ltp_lag = ctx->ltp_lag + c; in read_frame_data()
1748 bd.ltp_gain = ctx->ltp_gain[c]; in read_frame_data()
1749 bd.lpc_cof = ctx->lpc_cof[c]; in read_frame_data()
1750 bd.quant_cof = ctx->quant_cof[c]; in read_frame_data()
1751 bd.raw_samples = ctx->raw_samples[c] + offset; in read_frame_data()
1753 if ((ret = decode_block(ctx, &bd)) < 0) in read_frame_data()
1761 bd.ra_block = 0; in read_frame_data()