diff options
-rw-r--r-- | libavresample/audio_convert.c | 53 |
1 files changed, 28 insertions, 25 deletions
diff --git a/libavresample/audio_convert.c b/libavresample/audio_convert.c index b57d2fa650..371617cc25 100644 --- a/libavresample/audio_convert.c +++ b/libavresample/audio_convert.c @@ -378,32 +378,35 @@ int ff_audio_convert(AudioConvert *ac, AudioData *out, AudioData *in) } } } else { - switch (ac->func_type) { - case CONV_FUNC_TYPE_FLAT: { - if (!in->is_planar) - len *= in->channels; - if (use_generic) { - for (p = 0; p < ac->planes; p++) - ac->conv_flat_generic(out->data[p], in->data[p], len); - } else { - for (p = 0; p < ac->planes; p++) - ac->conv_flat(out->data[p], in->data[p], len); + switch (ac->func_type) { + case CONV_FUNC_TYPE_FLAT: { + if (!in->is_planar) + len *= in->channels; + if (use_generic) { + for (p = 0; p < ac->planes; p++) + ac->conv_flat_generic(out->data[p], in->data[p], len); + } else { + for (p = 0; p < ac->planes; p++) + ac->conv_flat(out->data[p], in->data[p], len); + } + break; + } + case CONV_FUNC_TYPE_INTERLEAVE: + if (use_generic) + ac->conv_interleave_generic(out->data[0], in->data, len, + ac->channels); + else + ac->conv_interleave(out->data[0], in->data, len, ac->channels); + break; + case CONV_FUNC_TYPE_DEINTERLEAVE: + if (use_generic) + ac->conv_deinterleave_generic(out->data, in->data[0], len, + ac->channels); + else + ac->conv_deinterleave(out->data, in->data[0], len, + ac->channels); + break; } - break; - } - case CONV_FUNC_TYPE_INTERLEAVE: - if (use_generic) - ac->conv_interleave_generic(out->data[0], in->data, len, ac->channels); - else - ac->conv_interleave(out->data[0], in->data, len, ac->channels); - break; - case CONV_FUNC_TYPE_DEINTERLEAVE: - if (use_generic) - ac->conv_deinterleave_generic(out->data, in->data[0], len, ac->channels); - else - ac->conv_deinterleave(out->data, in->data[0], len, ac->channels); - break; - } } out->nb_samples = in->nb_samples; |