[FFmpeg-devel] [PATCH v7 2/2] fftools: Add option to log timing
Andreas Rheinhardt
andreas.rheinhardt at outlook.com
Tue Aug 10 22:08:56 EEST 2021
Soft Works:
>
>
>> -----Original Message-----
>> From: ffmpeg-devel <ffmpeg-devel-bounces at ffmpeg.org> On Behalf Of
>> Andreas Rheinhardt
>> Sent: Tuesday, 10 August 2021 20:49
>> To: ffmpeg-devel at ffmpeg.org
>> Subject: Re: [FFmpeg-devel] [PATCH v7 2/2] fftools: Add option to log
>> timing
>>
>> Soft Works:
>>> This commit adds two logging flags: 'time' and 'datetime'.
>>>
>>> Usage:
>>>
>>> ffmpeg -loglevel +time
>>>
>>> or
>>>
>>> ffmpeg -loglevel +datetime
>>>
>>> Signed-off-by: softworkz <softworkz at hotmail.com>
>>> ---
>>> doc/fftools-common-opts.texi | 4 ++++
>>> fftools/cmdutils.c | 21 +++++++++++++++++++++
>>> fftools/ffmpeg.c | 6 +++++-
>>> 3 files changed, 30 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/doc/fftools-common-opts.texi b/doc/fftools-common-
>> opts.texi
>>> index 7643dd8396..aae26c28d0 100644
>>> --- a/doc/fftools-common-opts.texi
>>> +++ b/doc/fftools-common-opts.texi
>>> @@ -198,6 +198,10 @@ and the "Last message repeated n times" line
>> will be omitted.
>>> Indicates that log output should add a @code{[level]} prefix to
>> each message
>>> line. This can be used as an alternative to log coloring, e.g.
>> when dumping the
>>> log to file.
>>> + at item time
>>> +Prefixes each log line with the local time.
>>> + at item datetime
>>> +Same as time but also prints the current date in each line.
>>> @end table
>>> Flags can also be used alone by adding a '+'/'-' prefix to
>> set/reset a single
>>> flag without affecting other @var{flags} or changing
>> @var{loglevel}. When
>>> diff --git a/fftools/cmdutils.c b/fftools/cmdutils.c
>>> index 912e881174..7918078766 100644
>>> --- a/fftools/cmdutils.c
>>> +++ b/fftools/cmdutils.c
>>> @@ -918,6 +918,27 @@ int opt_loglevel(void *optctx, const char
>> *opt, const char *arg)
>>> flags |= AV_LOG_PRINT_LEVEL;
>>> }
>>> arg = token + 5;
>>> + } else if (av_strstart(token, "time", NULL)) {
>>> + if (cmd == '-') {
>>> + flags &= ~AV_LOG_PRINT_TIME;
>>> + } else {
>>> + flags |= AV_LOG_PRINT_TIME;
>>> + }
>>> + arg = token + 4;
>>> + } else if (av_strstart(token, "timing", NULL)) {
>>
>> Why are you recognizing an undocumented and redundant command? Just
>> remove this.
>
> My mistake, this should only go into my fork where I'm having this
> for years already.
>
>>
>>> + if (cmd == '-') {
>>> + flags &= ~AV_LOG_PRINT_TIME;
>>> + } else {
>>> + flags |= AV_LOG_PRINT_TIME;
>>> + }
>>> + arg = token + 6;
>>> + } else if (av_strstart(token, "datetime", NULL)) {
>>> + if (cmd == '-') {
>>> + flags &= ~AV_LOG_PRINT_DATETIME;
>>> + } else {
>>> + flags |= AV_LOG_PRINT_DATETIME;
>>> + }
>>> + arg = token + 8;
>>
>> This still hardcodes the lengths of the strings, resulting in
>> potential
>> breakage if one is updated and the other is forgotten. See my patch
>> for
>> how to avoid this.
>
> Yes, but ALL the code is doing like this. Why should I just change
> the new code and mix it up with the existing code, resulting in
> a weird mashup that is much worse IMO than that tiny caveat that you
> are mentioning.
> I actually intended my patch
(https://ffmpeg.org/pipermail/ffmpeg-devel/2021-August/283439.html)
which deals with the legacy flags to be applied first, so there will be
no mashup.
- Andreas
More information about the ffmpeg-devel
mailing list