[FFmpeg-devel] [PATCH] libavcodec: add editpts bitstream filter [v4]

Marton Balint cus at passwd.hu
Tue Sep 3 23:59:58 EEST 2019



On Tue, 3 Sep 2019, Andreas Håkon wrote:

> Hi Marton,
>
>
> ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
> On Tuesday, 3 de September de 2019 9:57, Marton Balint <cus at passwd.hu> wrote:
>
>> On Tue, 3 Sep 2019, Andreas Håkon wrote:
>>
>> > Hi,
>> > Ping, ping! (another time).
>> > Please take note of these three points:
>> >
>> > 1.  Lip-Syncing is a relevant topic in the AV editing area. Almost all professional video editors have
>> >     the functionality to realign audio with video. And at time the ffmpeg project lacks for a lipsync
>> >     bitstream filter. For this reason, this new filter is relevant. Although it can also be used for other purposes.
>> >
>> > 2.  This is the fourth iteration of the patch, and it incorporates all suggested requests. So it's ready
>> >     for review and acceptance.
>> >
>> > 3.  Although the current implementation can be improved (using, for example, values expressed in
>> >     nano-seconds), it's preferable to first add it and then improve it.
>> >
>>
>> Some things can't be improved later, because they become part of the
>> public interface so we can no longer just remove them, we'd have to
>> deprecate them first.
>>
>> Also ffmpeg tries to be consistent with other parts of the code, use names
>> based on the same logic, or use similar concepts throughout the libraries.
>>
>> Avoiding duplicated functionality is also a strong requirement for us, if
>> something can be implemented in a more generic way (even if that takes a
>> little more work), we should aim for that.
>>
>> That is why I suggest you implement a more generic approach, a setpts like
>> filter (setts) with evaluation. As others pointed out, you typically need
>> to modify both PTS and DTS, so the expression should affect both.
>> Additional parameters can be introduced if somebody wants different
>> expressions for PTS and DTS.
>
> After looking at the "libavfilter/setpts.c" and the documentation I don't see what you want to copy from it.
> The "expression" functionality can be useful, but the number of constants compatible with a bitstream filter
> are very limited. From my point of view only some of them have sense: PTS and T in fact.

- PTS
- DTS
- STARTDTS
- TB - stream time base
- TS - when a single expression is used, TS is pts when pts is evaluated, 
TS is dts when dts is evaluated.

>
> Any suggestion?
> Perhaps you should describe the functionality of the "setpts_bsf" filter.

name is "setts".

options:
ts=<string>
dts=<string>
pts=<string>

<string> is an expression to be evaluated. Either the ts expression or 
both pts and dts expressions are defined.

If only ts expression is defined then it is evaluated for both PTS and 
DTS.

If pts and dts expressions are defined, they are used instead of the 
common expression.

Regards,
Marton


More information about the ffmpeg-devel mailing list