[FFmpeg-devel] [PATCH 2/3] lavfi/loudnorm: add an internal libebur128 library

Paul B Mahol onemda at gmail.com
Thu Nov 10 20:11:11 EET 2016

On 11/10/16, Hendrik Leppkes <h.leppkes at gmail.com> wrote:
> On Thu, Nov 10, 2016 at 5:32 PM, Kyle Swanson <k at ylo.ph> wrote:
>> On Tue, Nov 8, 2016 at 9:39 AM, Kyle Swanson <k at ylo.ph> wrote:
>>> On Mon, Nov 7, 2016 at 6:00 PM, Marton Balint <cus at passwd.hu> wrote:
>>>> On Fri, 4 Nov 2016, Marton Balint wrote:
>>>>> On Thu, 3 Nov 2016, Hendrik Leppkes wrote:
>>>>>> On Mon, Oct 17, 2016 at 5:20 PM, Moritz Barsnick <barsnick at gmx.net>
>>>>>> wrote:
>>>>>>> On Mon, Oct 17, 2016 at 17:09:15 +0200, wm4 wrote:
>>>>>>>> Does this copy parts of libebur128 to FFmpeg?
>>>>>>>> Why?
>>>>>>> There was a long discussion regarding this patch:
>>>>>>> http://lists.ffmpeg.org/pipermail/ffmpeg-devel/2016-April/192668.html
>>>>>>> (in summary: "please don't require yet another small external
>>>>>>> library,
>>>>>>> rather port it to ffmpeg and maintain it") leading to this one:
>>>>>> The generic idea was not to just copy/paste an external library into
>>>>>> internal code, but extend the ebur128 code we already have - at least
>>>>>> that way we get code written by one of our maintainers, code he knows
>>>>>> and can properly maintain.
>>>>> I copied the external library because we needed an API. The way the
>>>>> internals work, I used the library code because it was simply easier,
>>>>> than
>>>>> factoring out f_ebur128 stuff, also there are some features which
>>>>> f_ebur128.c does not have (variable sample rate support), and there was
>>>>> the
>>>>> licensing issue GPL v.s. LGPL.
>>>>>> If you just copy the implementation of a library, you might as well
>>>>>> just use that library - thats what it exists for. Why do we want to
>>>>>> increase the maintenance burden of our project when other people (ie.
>>>>>> the authors of libebur128) are already doing it as well?
>>>>> In general I agree with people who think that for small code, it is
>>>>> better
>>>>> to integrate it into our codebase, because
>>>>> - it can benefit from features we already have (e.g. resampling)
>>>>> - makes it easier for developers to work on features based on this
>>>>> - code gets more review than code in a small 3rd party library
>>>>> - code and/or improvements have stronger requirements performance-wise
>>>>> - code is better audited (Coverity, etc)
>>>>> Yes, some additional maintenance burden is the price we pay for this,
>>>>> which is IMHO in this case is acceptable.
>>>> Is it fine to apply, or we should put this to a vote?
>>> Give me another day to review the patch. Meant look at this last weekend.
>> These patches look good to me. If we're going to do this, we really
>> need to keep the true peak mode in the libebur128 port. This is a huge
>> part of the R128 spec, and it's important that it stays in. Of course
>> redundant code is bad, so we'll need to update f_ebur128 as well
>> (which has a true peak requirement.) I already have a patch for
>> f_ebur128. Marton, it might be easier for you to update the patch to
>> include true peak mode but I could do it as well. It'd be interesting
>> to benchmark the libebur128 FIR resampler vs. swresample.
> If this gets re-added, please make it use our resampler unless there
> are good technical reasons against that (algorithm wise).
> Keeping an extra small resampler just for some measurements seems like
> something that can be surely avoided.

Yes, I also agree. Is such small resampler really needed?

More information about the ffmpeg-devel mailing list