[FFmpeg-devel] [PATCH 0/4] fftw exploration (WIP)
h.leppkes at gmail.com
Fri Mar 25 16:25:58 CET 2016
On Fri, Mar 25, 2016 at 4:23 PM, Hendrik Leppkes <h.leppkes at gmail.com> wrote:
> On Fri, Mar 25, 2016 at 3:34 PM, Ganesh Ajjanagadde <gajjanag at gmail.com> wrote:
>> On Fri, Mar 25, 2016 at 12:35 AM, Clément Bœsch <u at pkh.me> wrote:
>>> On Thu, Mar 24, 2016 at 05:50:48PM -0700, Ganesh Ajjanagadde wrote:
>>>> Ganesh Ajjanagadde (4):
>>>> configure: add fftw3 detection
>>>> lavc/fftw: add initial fftw wrapper
>>>> lavc/fft-test: add FFTW3 tests
>>>> lavc/fft-test: update benchmark code
>>> Using an external library for such an essential component sounds like
>>> madness to me.
>> I don't really understand. It is an opt-in dependency, and does not
>> have to be used. Seems like I don't really understand the FFmpeg
>> philosophy; there are a ton of optional libs in configure. FFT is not
>> used in all codecs, so I view it on the same lines as having things
>> like libopus based decoding instead of native FFmpeg decoding, the
>> multiple AAC encoders/decoders, the duplicate prores stuff, libnut on
>> top of the native demuxer, etc, etc.
> The way I see it, external libraries should only be used if they
> provide actual features (for example new formats not otherwise
> supported, or access to hardware de/encoders), or a higher quality
> (ie. for encoders).
> Using external libraries for small performance gains seems rather
> overkill, resulting in code rot and maintenance burden.
> If performance is the only reason one might want an external library,
> then its a much better idea to try to optimize the code we have, that
> way more people automatically benefit from this, and we avoid this
Also for the record, most of the external libraries that duplicate
internal functionality existed before the internal functionality was
improved/implemented, or the current internal variant is still not
quite on the level.
Sometimes its just cruft that should probably be purged, just noone
did it yet. Sometimes we use the library for encoding, and also offer
decoding through the same (ie. fdk-aac, or libopus), which doesn't add
a "new" external library, just uses more of it.
More information about the ffmpeg-devel