Lines Matching defs:subpacket

164     COOKSubpacket       subpacket[MAX_SUBPACKETS];
234 if (q->subpacket[i].joint_stereo == 1) {
235 result |= build_vlc(&q->subpacket[i].channel_coupling, COUPLING_VLC_BITS,
236 ccpl_huffcounts[q->subpacket[i].js_vlc_bits - 2],
237 ccpl_huffsyms[q->subpacket[i].js_vlc_bits - 2], 1,
239 av_log(q->avctx, AV_LOG_DEBUG, "subpacket %i Joint-stereo VLC used.\n", i);
347 ff_free_vlc(&q->subpacket[i].channel_coupling);
874 * First part of subpacket decoding:
911 * Final part of subpacket decoding:
932 * Cook subpacket decoding. This function returns one decoded subpacket,
1003 /* estimate subpacket sizes */
1004 q->subpacket[0].size = avctx->block_align;
1007 q->subpacket[i].size = 2 * buf[avctx->block_align - q->num_subpackets + i];
1008 q->subpacket[0].size -= q->subpacket[i].size + 1;
1009 if (q->subpacket[0].size < 0) {
1011 "frame subpacket size total > avctx->block_align!\n");
1018 q->subpacket[i].bits_per_subpacket = (q->subpacket[i].size * 8) >>
1019 q->subpacket[i].bits_per_subpdiv;
1020 q->subpacket[i].ch_idx = chidx;
1022 "subpacket[%i] size %i js %i %i block_align %i\n",
1023 i, q->subpacket[i].size, q->subpacket[i].joint_stereo, offset,
1026 if ((ret = decode_subpacket(q, &q->subpacket[i], buf + offset, samples)) < 0)
1028 offset += q->subpacket[i].size;
1029 chidx += q->subpacket[i].num_channels;
1030 av_log(avctx, AV_LOG_DEBUG, "subpacket[%i] %i %i\n",
1031 i, q->subpacket[i].size * 8, get_bits_count(&q->gb));
1051 ff_dlog(q->avctx, "cookversion=%x\n", q->subpacket[0].cookversion);
1052 if (q->subpacket[0].cookversion > STEREO) {
1053 PRINT("js_subband_start", q->subpacket[0].js_subband_start);
1054 PRINT("js_vlc_bits", q->subpacket[0].js_vlc_bits);
1060 PRINT("samples_per_channel", q->subpacket[0].samples_per_channel);
1061 PRINT("subbands", q->subpacket[0].subbands);
1062 PRINT("js_subband_start", q->subpacket[0].js_subband_start);
1063 PRINT("log2_numvector_size", q->subpacket[0].log2_numvector_size);
1064 PRINT("numvector_size", q->subpacket[0].numvector_size);
1065 PRINT("total_subbands", q->subpacket[0].total_subbands);
1116 q->subpacket[s].cookversion = bytestream2_get_be32(&gb);
1118 q->subpacket[s].subbands = bytestream2_get_be16(&gb);
1120 q->subpacket[s].js_subband_start = bytestream2_get_be16(&gb);
1121 if (q->subpacket[s].js_subband_start >= 51) {
1122 av_log(avctx, AV_LOG_ERROR, "js_subband_start %d is too large\n", q->subpacket[s].js_subband_start);
1125 q->subpacket[s].js_vlc_bits = bytestream2_get_be16(&gb);
1128 q->subpacket[s].samples_per_channel = samples_per_frame / channels;
1129 q->subpacket[s].bits_per_subpacket = avctx->block_align * 8;
1132 q->subpacket[s].log2_numvector_size = 5;
1133 q->subpacket[s].total_subbands = q->subpacket[s].subbands;
1134 q->subpacket[s].num_channels = 1;
1138 av_log(avctx, AV_LOG_DEBUG, "subpacket[%i].cookversion=%x\n", s,
1139 q->subpacket[s].cookversion);
1140 q->subpacket[s].joint_stereo = 0;
1141 switch (q->subpacket[s].cookversion) {
1151 q->subpacket[s].bits_per_subpdiv = 1;
1152 q->subpacket[s].num_channels = 2;
1163 q->subpacket[s].total_subbands = q->subpacket[s].subbands +
1164 q->subpacket[s].js_subband_start;
1165 q->subpacket[s].joint_stereo = 1;
1166 q->subpacket[s].num_channels = 2;
1168 if (q->subpacket[s].samples_per_channel > 256) {
1169 q->subpacket[s].log2_numvector_size = 6;
1171 if (q->subpacket[s].samples_per_channel > 512) {
1172 q->subpacket[s].log2_numvector_size = 7;
1177 channel_mask |= q->subpacket[s].channel_mask = bytestream2_get_be32(&gb);
1179 if (av_popcount64(q->subpacket[s].channel_mask) > 1) {
1180 q->subpacket[s].total_subbands = q->subpacket[s].subbands +
1181 q->subpacket[s].js_subband_start;
1182 q->subpacket[s].joint_stereo = 1;
1183 q->subpacket[s].num_channels = 2;
1184 q->subpacket[s].samples_per_channel = samples_per_frame >> 1;
1186 if (q->subpacket[s].samples_per_channel > 256) {
1187 q->subpacket[s].log2_numvector_size = 6;
1189 if (q->subpacket[s].samples_per_channel > 512) {
1190 q->subpacket[s].log2_numvector_size = 7;
1193 q->subpacket[s].samples_per_channel = samples_per_frame;
1198 q->subpacket[s].cookversion);
1202 if (s > 1 && q->subpacket[s].samples_per_channel != q->samples_per_channel) {
1206 q->samples_per_channel = q->subpacket[0].samples_per_channel;
1210 q->subpacket[s].numvector_size = (1 << q->subpacket[s].log2_numvector_size);
1213 if (q->subpacket[s].total_subbands > 53) {
1218 if ((q->subpacket[s].js_vlc_bits > 6) ||
1219 (q->subpacket[s].js_vlc_bits < 2 * q->subpacket[s].joint_stereo)) {
1221 q->subpacket[s].js_vlc_bits, 2 * q->subpacket[s].joint_stereo);
1225 if (q->subpacket[s].subbands > 50) {
1229 if (q->subpacket[s].subbands == 0) {
1233 q->subpacket[s].gains1.now = q->subpacket[s].gain_1;
1234 q->subpacket[s].gains1.previous = q->subpacket[s].gain_2;
1235 q->subpacket[s].gains2.now = q->subpacket[s].gain_3;
1236 q->subpacket[s].gains2.previous = q->subpacket[s].gain_4;
1238 if (q->num_subpackets + q->subpacket[s].num_channels > channels) {