return AVERROR(EINVAL);
memset(s->matrix, 0, sizeof(s->matrix));
memset(s->matrix_flt, 0, sizeof(s->matrix_flt));
- nb_in = av_get_channel_layout_nb_channels(s->user_in_ch_layout);
- nb_out = av_get_channel_layout_nb_channels(s->user_out_ch_layout);
+ nb_in = (s->user_in_ch_count > 0) ? s->user_in_ch_count :
+ av_get_channel_layout_nb_channels(s->user_in_ch_layout);
+ nb_out = (s->user_out_ch_count > 0) ? s->user_out_ch_count :
+ av_get_channel_layout_nb_channels(s->user_out_ch_layout);
for (out = 0; out < nb_out; out++) {
for (in = 0; in < nb_in; in++)
s->matrix_flt[out][in] = s->matrix[out][in] = matrix[in];
av_cold int swri_rematrix_init(SwrContext *s){
int i, j;
- int nb_in = av_get_channel_layout_nb_channels(s->in_ch_layout);
- int nb_out = av_get_channel_layout_nb_channels(s->out_ch_layout);
+ int nb_in = s->used_ch_count;
+ int nb_out = s->out.ch_count;
s->mix_any_f = NULL;