[FFmpeg-devel] [PATCH] swresample: make swr_get_out_samples() work with all resamplers
wm4
nfxjfg at googlemail.com
Thu Jun 4 19:19:25 CEST 2015
Making it fail if e.g. soxr is used makes the function completely
useless.
---
libswresample/swresample.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/libswresample/swresample.c b/libswresample/swresample.c
index 9ab29d6..0ef556a 100644
--- a/libswresample/swresample.c
+++ b/libswresample/swresample.c
@@ -852,9 +852,13 @@ int swr_get_out_samples(struct SwrContext *s, int in_samples)
return AVERROR(EINVAL);
if (s->resampler && s->resample) {
- if (!s->resampler->get_out_samples)
- return AVERROR(ENOSYS);
- out_samples = s->resampler->get_out_samples(s, in_samples);
+ if (s->resampler->get_out_samples) {
+ out_samples = s->resampler->get_out_samples(s, in_samples);
+ } else {
+ out_samples = av_rescale_rnd(in_samples, s->out_sample_rate,
+ s->in_sample_rate, AV_ROUND_UP) +
+ swr_get_delay(s, s->out_sample_rate);
+ }
} else {
out_samples = s->in_buffer_count + in_samples;
av_assert0(s->out_sample_rate == s->in_sample_rate);
--
2.1.4
More information about the ffmpeg-devel
mailing list