| 963 | } |
| 964 | |
| 965 | static av_cold void construct_perm_table(TwinContext *tctx,enum FrameType ftype) |
| 966 | { |
| 967 | int block_size; |
| 968 | const ModeTab *mtab = tctx->mtab; |
| 969 | int size = tctx->avctx->channels*mtab->fmode[ftype].sub; |
| 970 | int16_t *tmp_perm = (int16_t *) tctx->tmp_buf; |
| 971 | |
| 972 | if (ftype == FT_PPC) { |
| 973 | size = tctx->avctx->channels; |
| 974 | block_size = mtab->ppc_shape_len; |
| 975 | } else |
| 976 | block_size = mtab->size / mtab->fmode[ftype].sub; |
| 977 | |
| 978 | permutate_in_line(tmp_perm, tctx->n_div[ftype], size, |
| 979 | block_size, tctx->length[ftype], |
| 980 | tctx->length_change[ftype], ftype); |
| 981 | |
| 982 | transpose_perm(tctx->permut[ftype], tmp_perm, tctx->n_div[ftype], |
| 983 | tctx->length[ftype], tctx->length_change[ftype]); |
| 984 | |
| 985 | linear_perm(tctx->permut[ftype], tctx->permut[ftype], size, |
| 986 | size*block_size); |
| 987 | } |
| 988 | |
| 989 | static av_cold void init_bitstream_params(TwinContext *tctx) |
| 990 | { |
no test coverage detected