- if (q->channels == 2) {
- q->fmt_conv.float_interleave(samples, (const float **)q->outSamples,
- 1024, 2);
+ if (q->channels == 2 && avctx->sample_fmt == AV_SAMPLE_FMT_FLT) {
+ q->fmt_conv.float_interleave(samples_flt,
+ (const float **)q->outSamples,
+ SAMPLES_PER_FRAME, 2);
+ } else if (avctx->sample_fmt == AV_SAMPLE_FMT_S16) {
+ q->fmt_conv.float_to_int16_interleave(samples_s16,
+ (const float **)q->outSamples,
+ SAMPLES_PER_FRAME, q->channels);