[pulseaudio-discuss] [PATCH 0/3] resamplers
Alexander E. Patrakov
patrakov at gmail.com
Mon Aug 4 06:29:39 PDT 2014
04.08.2014 19:05, Peter Meerwald wrote:
> Hello Alexander,
>
>>> my goal would be to establish libavresample as the new default resampler and
>>> drop the ffmpeg code copied into PA currently; don't worry, this would be
>>> further work based on the feedback received :)
>
>> This conflicts with my goal of writing and getting a rewindable
>> resampler into pulseaudio.
First, sorry for the very harsh reply.
>
> ok, so general direction is not undisputed :)
>
> do you know if libavresample can do rewind?
>
> do you oppose the present patches to split up resampler.c and add new
> resamplers? nothing would prevent yet another resampler
>
> probably different applications need different resamplers, i.e. fast vs.
> correct
>
> currently, speex and ffmpeg are kind-of default:
>
> speexdsp is largely unmaintained, very recently there seems to be some
> activity [0]; speex has SSE and NEON code path
>
> ffmpeg code is copied into the PA repo and has been superceeded by
> libavresample
>
> libavresample has AARCH64, NEON and SSE/AVX codepath, although only
> AARCH64 (!) has SIMD resampling code (yet)
>
> libavresample might be a good basis for general purpose resampling with
> a good infrastructure for architecture specific optimization
>
> regards, p.
>
> [0] https://git.xiph.org/speexdsp.git
>
OK, now I see what you are after. Let me answer point-by-point.
First, libavresample cannot rewind. There is currently no open-source
rewindable resampler. Just look at the header. There is nothing that
could save and restore the delay buffer in avresample.
As for the current patch to split up resampler.c (1/3 in your series), I
don't have any inherent objection to its intent. However, I should look
more closely before I can say whether its content is good. Will do that
today.
As for adding _any_ new resamplers, well, I would like to see the
justification in the commit message for each new resampler. Otherwise
we'll end up with the equivalent of GNOME 1 situation with clocks.
For libavresample, you have already provided a good justification
(upstream deprecation of the ffmpeg resampler + SIMD addition) in the
e-mail I am replying to, please copy it into the commit message. Still,
I have to look at the patch more thoroughly.
Maybe the end result for the "rewindable resampler" quest will be
something based on libavresample - but then we'll have to either
maintain it indefinitely or submit our modifications upstream (where
they will be likely rejected, as "not needed for libav").
For soxr, I have not seen such justification yet, and thus currently
have a slight objection to its addition.
Anyway, I think that the task of objectively testing the resampler speed
and quality also needs to be done, in order to provide such
justifications. Please see
http://lists.freedesktop.org/archives/pulseaudio-discuss/2014-February/019968.html
for the formulation.
Feel free to come to the Plumbers conference and discuss it there if we
don't reach any conclusion before that.
--
Alexander E. Patrakov
More information about the pulseaudio-discuss
mailing list