On Wed, Jan 04, 2023 at 05:59:14PM +0100, Paul B Mahol wrote: > Patches attached. [...] > af_aresample.c | 10 ++++------ > 1 file changed, 4 insertions(+), 6 deletions(-) > e517e6bf054deb40fe9ff16f6ce6585c6a1fb284 0001-avfilter-af_aresample-switch-to-convert-frame-API.patch > From fe951a82dc6c75eced5b306a11ea5462a245c4c3 Mon Sep 17 00:00:00 2001 > From: Paul B Mahol > Date: Wed, 4 Jan 2023 17:13:16 +0100 > Subject: [PATCH 1/3] avfilter/af_aresample: switch to convert frame API > > Signed-off-by: Paul B Mahol > --- > libavfilter/af_aresample.c | 10 ++++------ > 1 file changed, 4 insertions(+), 6 deletions(-) > > diff --git a/libavfilter/af_aresample.c b/libavfilter/af_aresample.c > index 971c861d0e..7923377c8c 100644 > --- a/libavfilter/af_aresample.c > +++ b/libavfilter/af_aresample.c > @@ -209,18 +209,16 @@ FF_ENABLE_DEPRECATION_WARNINGS > } else { > outsamplesref->pts = AV_NOPTS_VALUE; > } > - n_out = swr_convert(aresample->swr, outsamplesref->extended_data, n_out, > - (void *)insamplesref->extended_data, n_in); > - if (n_out <= 0) { > + ret = swr_convert_frame(aresample->swr, outsamplesref, > + (void *)insamplesref); > + if (ret < 0) { > av_frame_free(&outsamplesref); > av_frame_free(&insamplesref); > - return 0; > + return ret; > } > > aresample->more_data = outsamplesref->nb_samples == n_out; // Indicate that there is probably more data in our buffers > > - outsamplesref->nb_samples = n_out; > - > ret = ff_filter_frame(outlink, outsamplesref); > av_frame_free(&insamplesref); > return ret; > -- > 2.37.2 This breaks libswresample with soxr exmple: ffmpeg -loglevel error -y -f s32le -acodec pcm_s32le -ar 96000 -ac 1 -i ref-96000.raw -af aresample=osr=44100:resampler=soxr:cutoff=.903:precision=24:cheby=1 -f s32le -acodec pcm_s32le 96000-44100.raw before it shows no errors after it shows: ... [s32le @ 0x55b8463eb580] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 285242 >= 285242 [s32le @ 0x55b8463eb580] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 286690 >= 286690 [s32le @ 0x55b8463eb580] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 288138 >= 288138 [s32le @ 0x55b8463eb580] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 289586 >= 289586 [s32le @ 0x55b8463eb580] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 291034 >= 291034 [s32le @ 0x55b8463eb580] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 291758 >= 291758 [s32le @ 0x55b8463eb580] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 293206 >= 293206 [s32le @ 0x55b8463eb580] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 294654 >= 294654 [s32le @ 0x55b8463eb580] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 296102 >= 296102 [s32le @ 0x55b8463eb580] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 297550 >= 297550 [s32le @ 0x55b8463eb580] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 298998 >= 298998 [s32le @ 0x55b8463eb580] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 300446 >= 300446 [s32le @ 0x55b8463eb580] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 301170 >= 301170 [s32le @ 0x55b8463eb580] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 302617 >= 302617 [s32le @ 0x55b8463eb580] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 304065 >= 304065 ... [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB The educated differ from the uneducated as much as the living from the dead. -- Aristotle