@@ -61,13 +61,13 @@ static av_cold int libcelt_dec_init(AVCodecContext *c)
struct libcelt_context *celt = c->priv_data;
int err;
- if (!c->channels || !c->frame_size ||
- c->frame_size > INT_MAX / sizeof(int16_t) / c->channels)
+ if (!c->ch_layout.nb_channels || !c->frame_size ||
+ c->frame_size > INT_MAX / sizeof(int16_t) / c->ch_layout.nb_channels)
return AVERROR(EINVAL);
celt->mode = celt_mode_create(c->sample_rate, c->frame_size, &err);
if (!celt->mode)
return ff_celt_error_to_averror(err);
- celt->dec = celt_decoder_create_custom(celt->mode, c->channels, &err);
+ celt->dec = celt_decoder_create_custom(celt->mode, c->ch_layout.nb_channels, &err);
if (!celt->dec) {
celt_mode_destroy(celt->mode);
return ff_celt_error_to_averror(err);
@@ -119,8 +119,8 @@ static int libcelt_dec_decode(AVCodecContext *c, void *data,
return ff_celt_error_to_averror(err);
if (celt->discard) {
frame->nb_samples -= celt->discard;
- memmove(pcm, pcm + celt->discard * c->channels,
- frame->nb_samples * c->channels * sizeof(int16_t));
+ memmove(pcm, pcm + celt->discard * c->ch_layout.nb_channels,
+ frame->nb_samples * c->ch_layout.nb_channels * sizeof(int16_t));
celt->discard = 0;
}
*got_frame_ptr = 1;