Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
From: "softworkz ." <softworkz-at-hotmail.com@ffmpeg.org>
To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
Subject: Re: [FFmpeg-devel] SW's Patchsets Overview
Date: Wed, 2 Apr 2025 20:18:55 +0000
Message-ID: <DM8P223MB03657732DC376984DF4ED8DBBAAF2@DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM> (raw)
In-Reply-To: <c45a5869-e39e-bc20-0559-079f0b93ca37@passwd.hu>



> -----Original Message-----
> From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of Marton
> Balint
> Sent: Mittwoch, 2. April 2025 21:45
> To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
> Subject: Re: [FFmpeg-devel] SW's Patchsets Overview
> 
> 
> 
> On Wed, 2 Apr 2025, softworkz . wrote:
> 
> > Hello everybody,
> >
> > with freshly gained push access rights, I want to act responsibly and
> > carefully, and also avoid unexpected surprises so I'm not going to
> rush
> > things. Due to that change, I thought it might be good to post an
> > overview of the patchsets I am intending to push in the near future:
> 
> Thanks for the heads up.
> 
> [...]
> 
> > avutil/log: Replace addresses in log output with simple ids
> >
> > GitHub:    https://github.com/ffstaging/FFmpeg/pull/59
> > Patchwork:
> https://patchwork.ffmpeg.org/project/ffmpeg/list/?series=14094
> 

Hi Marton,

thanks a lot for looking at the patchset.

> To be honest, I don't like this at all. You duplicate a lot of code from
> avutil/log, and the implementation has quite a few problems, some of
> them not really fixable.

Originally, this was a patch against avutil/log. Nicolas objected that it was adding global state and Hendrik (and Nicolas) suggested that I should to this in fftools only - outside of the libs, in a was that fftools get their own logging implementation - with the potential of being able to do other things in the future that wouldn't make sense in the lib code.
Letting fftools have their own logging implementation of can of course only start from a copy in order to retain existing behavior. On top of that I applied that little change then.


> - creating object IDs in the order the objects log something (what if
> they do not? What if it depends on loglevel?)
> - tracking object IDs based on their address - objects are
>    allocated and removed at runtime, it is possible that an address will be
>    re-used for a different object later on

The Ids are not meant to have much more value than the addresses currently shown - with an important difference: They are short and remain the same on repeated execution. Plus: they are counted by AVClass, that give a little additional value, but since they are just "indexing" the addresses, they are in fact prone to the same shortcomings like the addresses themselves, meaning that a re-assignment might give you the same id for something different and also different addresses (in consequence the IDs as well) can reference the same thing (e.g. with buffer refs).

> - linear search of addresses. A long ffmpeg process can constantly
> create
>    objects during runtime, eventually completely depleting the pool and
>    causing an extensive search for all future logs.

I have considered that case. There is a hard limit from when on no IDs are assigned anymore (all zeros).


> So overall I don't think it's worth pursuing this, especially since most
> users won't care neither about the ID, nor about the address...

Let me give two examples of where I find it useful to have those IDs:

On startup decoders can be initialized multiple times, like first for probing and then for transcoding. Or when there are multiple streams of the same type (codec), the log messages can be confusing when the log output from several identical ones gets mixed up. Being able to see "which is which" is quite of value at times.

HW Device context can also get initialized multiple times and knowing which one has shut down already and which hasn't - is helpful. Also, in case of complex filtergraphs with multiple derived and reverse-derived hw contexts, one can quickly get lost in understanding the logs.


That being said - I don't want to insist on those IDs. We could also just hide the addresses (activatable by a log flag) and I'd still be happy about being able to do logfile diffs in the future without trouble 😊

In that case, the change could also be made just in avutil/log. Probably also depends on what the consensus would be regarding the value of fftools having their own logging implementation - or rather not?

I'm open for either direction.

Thank you,
sw













_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

  reply	other threads:[~2025-04-02 20:19 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-04-02  1:07 softworkz .
2025-04-02 19:45 ` Marton Balint
2025-04-02 20:18   ` softworkz . [this message]
2025-04-06 21:04     ` Marton Balint
2025-04-06 21:12       ` softworkz .
2025-04-08 22:24         ` Michael Niedermayer
2025-04-08 22:45           ` softworkz .
2025-04-07  9:14       ` Nicolas George
2025-04-07  9:47         ` softworkz .
2025-04-08 22:53         ` Marton Balint
2025-04-08 23:31           ` softworkz .
2025-04-09  8:33           ` Nicolas George

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=DM8P223MB03657732DC376984DF4ED8DBBAAF2@DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM \
    --to=softworkz-at-hotmail.com@ffmpeg.org \
    --cc=ffmpeg-devel@ffmpeg.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
		ffmpegdev@gitmailbox.com
	public-inbox-index ffmpegdev

Example config snippet for mirrors.


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git