Closed mmomtchev closed 1 year ago
Sounds like this field was added a far ago:
da9587952a8 (Michael Niedermayer 2012-04-26 01:35:22 +0200 127) int filter_size; /**< length of each FIR filter in the resampling filterbank relative to the cutoff frequency */
approve! Thanks!
When calculating the number of samples that
AudioResampler::pop
will return, the filter size must be taken into account:https://github.com/h4tr3d/avcpp/blob/c3311e6ac4944496a57281cc237ac79248683e92/src/audioresampler.cpp#L209
libswresample uses a filter and needs a number of bytes after the end of the sample to be able to resample - 16 in my case.
Otherwise, it risks returning partial frames.
The total value is available in
SwrContext->filter_size
, the number of samples needed is half that.Ref: https://stackoverflow.com/questions/39587839/libswresample-swr-convert-not-producing-enough-samples