diff --git a/src/libs/audio/impl/ffmpeg/PcmDecoder.cpp b/src/libs/audio/impl/ffmpeg/PcmDecoder.cpp index 035bf12e..b77290f9 100644 --- a/src/libs/audio/impl/ffmpeg/PcmDecoder.cpp +++ b/src/libs/audio/impl/ffmpeg/PcmDecoder.cpp @@ -392,11 +392,18 @@ namespace lms::audio::ffmpeg for (std::size_t i{}; i < outputChannelBuffers.size(); ++i) outData[i] = static_cast(static_cast(outputChannelBuffers[i].data())); + std::array inData{}; + if (inputFrame) + { + for (int i{}; i < AV_NUM_DATA_POINTERS; ++i) + inData[i] = inputFrame->data[i]; + } + const int outSampleCount{ ::swr_convert( _resampleContext.get(), outData.data(), static_cast(maxSamplesPerChannel), - inputFrame ? reinterpret_cast(inputFrame->data) : nullptr, + inputFrame ? inData.data() : nullptr, inputFrame ? inputFrame->nb_samples : 0) }; if (outSampleCount < 0)