Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
From: Michael Niedermayer <michael@niedermayer.cc>
To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
Subject: Re: [FFmpeg-devel] [RFC] 5 year plan & Inovation
Date: Fri, 19 Apr 2024 01:19:29 +0200
Message-ID: <20240418231929.GU6420@pb2> (raw)
In-Reply-To: <5f454591-fe4c-4fc1-98b0-d3d21b207b12@gmail.com>


[-- Attachment #1.1: Type: text/plain, Size: 7329 bytes --]

On Thu, Apr 18, 2024 at 06:13:40PM -0300, James Almer wrote:
> On 4/18/2024 5:53 PM, Michael Niedermayer wrote:
> > On Thu, Apr 18, 2024 at 04:02:07PM +0200, Niklas Haas wrote:
> > > On Wed, 17 Apr 2024 15:58:32 +0200 Michael Niedermayer <michael@niedermayer.cc> wrote:
> > > > Hi all
> > > > 
> > > > The pace of inovation in FFmpeg has been slowing down.
> > > > Most work is concentarted nowadays on code refactoring, and adding
> > > > support for new codecs and formats.
> > > > 
> > > > Should we
> > > > * make a list of longer term goals
> > > > * vote on them
> > > > * and then together work towards implementing them
> > > > ?
> > > > 
> > > > (The idea here is to increase the success of larger efforts
> > > >   than adding codecs and refactoring code)
> > > > It would then also not be possible for individuals to object
> > > > to a previously agreed goal.
> > > > And it would add ideas for which we can try to get funding/grants for
> > > > 
> > > > (larger scale changes need consensus first that we as a whole want
> > > >   them before we would be able to ask for funding/grants for them)
> > > > 
> > > > Some ideas and why they would help FFmpeg:
> > > > 
> > > > * Switch to a plugin architecture
> > > >      (Increase the number of developers willing to contribute and reduce
> > > >       friction as the team and community grows)
> > > 
> > > This would almost surely hurt productivity
> > 
> > i dont agree, ill elaborae below
> > 
> > 
> > > as it will require exposing,
> > > versioning, documenting and maintaining a vast number of internal APIs
> > 
> > yes to some extend that is needed. It can be more or less depending
> > on how things are implemented
> > 
> > 
> > > which we are currently at the liberty of modifying freely.
> > 
> > we are modifying these APIs for decades. That modification of APIs
> > their documentation and all code using them costs time.
> 
> The AVCodec hooks being internal allowed us to add autoinserted bsfs and to
> painlessly rewrite the decouple I/O callbacks to work as a pure pull based
> interface. Were said internals public, that wouldn't have been possible.

A decoder API needs packet in, frame out.
AVPacket and AVFrame are public.
(and a bunch of key-value data like width / height / timebase / pixelformat / aspect / ...
 teh struct for that is also public since a long time)
I dont see the problem.

you have the decoder API facing the user, that causes no problems,
i dont agree that having a decoder API (or encoder, muxer, demuxer, ...)
facing a plugin would be a bigger problem than the APIs we already have
public
sure there are details, sure there are things that need one to think about
and sleep over and all that but these are from a high level point of
view simple and also the same interfaces to what we already have public


> 
> > 
> > More so we have issues with patch-management. And i claim this is
> > not the mailing list but a lack of time and in some cases a lack of
> > interrest in many areas.
> > 
> > A plugin system moves this patch-management to people who actually
> > care, that is the authors of the codecs and (de)muxers.
> > 
> > Our productivity as is, is not good, many patches are ignored.
> 
> A lot of patches fall through the cracks rather than being ignored.
> There are people that send patchsets unthreaded (Because of misconfigured
> git send-email i suppose), and it makes browsing your mailbox hard.

well i can say that i dont review many patches anymore because i just dont have
the time, its not that i cant keep track of what i wanted to review.

either i make a note in a TODO list or i keep the patch marked as NEW
in my mail user agent.

trac in some sense or patchwork are just more public TODO lists
that can be shared between people so if one doesnt do it another
developer sees it and can do it.


> 
> > The people caring about these patches are their Authors and yet they
> > are powerless as they must sometimes wait many months for reviews
> > Besides that, developers are leaving for various reasons and they
> > are forced to setup full forks not being able to maintain their
> > code in any other way.
> > IMO A plugin system would improve productivity as everyone could work
> > on their own terms.
> 
> You say the ML is not the problem, but it sort of is. An MR based
> development would greatly improve this problem.

People historically where very opposed to merge requests

But, having a public git repo (that people already have)
asking for it to be merged. You get a merge commit and someone will probably
feel offended by that. (thats not what you meant i guess)
but i would 100% support doing git merge requests.
(there are good arguments from people much smarter than me why
merging is better than rebasing)


> 
> > No week or month long delays and weekly pinging patches
> > No risk about patches being rejected or ignored
> > No need to read every other discussion on the ML. One can just
> > simply work on their own plugin looking just at the API documentation
> 
> I don't personally have a strong opinion one way or another on this subject
> at this moment, but any such approach would need to be carefully thought and
> designed, to prevent all the potential problems people have expressed so
> far.

of course this would require carefull design as any public API
would.


[...]

> > > 
> > > > * AI / neural network filters and codecs
> > > >      The future seems to be AI based. Future Filters and Codecs will use
> > > >      neural networks. FFmpeg can be at the forefront, developing these
> > > 
> > > We already have TensorFlow support, no? (vf_sr etc.) What more is
> > > needed?
> > 
> > more of that AND more convenience
> > 
> > lets pick a comparission
> > to run fate
> > you write "make fate"
> > if you want to do it with the samples its
> > make fate-rsync ; make fate
> > 
> > if you want to use vf_sr, its reading the docs, looking at some scripts reading their docs
> > and i presume selecting a training set ? creating a model ? ....
> 
> By no means we could ever ship a custom AI model for the sake of a "git
> fetch, compile, and run" scenario. This was already a problem when
> tensorflow was first committed. So this can't be avoided.

I am not sure i understand you, but training a model on lets say the
fate samples or some public domain images. Why would we not be able
to ship that in a similar way to the fate samples ?

or why not ship a standarized script to build such a model from
user data ?
(i mean by standarized, the same for every filter, like ffmpeg is the same
 for every format not link to different papers and random off site scripts)


> 
> > 
> > how many people do that ?
> 
> Every external dependency has its documented requirements...

vf_sr doesnt have a example one can copy and paste that would
work on a fresh checkout of ffmpeg. That alone is a fail IMHO

thx

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Concerning the gods, I have no means of knowing whether they exist or not
or of what sort they may be, because of the obscurity of the subject, and
the brevity of human life -- Protagoras

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

[-- Attachment #2: Type: text/plain, Size: 251 bytes --]

_______________________________________________
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:[~2024-04-18 23:19 UTC|newest]

Thread overview: 138+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-17 13:58 Michael Niedermayer
2024-04-17 14:22 ` Lynne
2024-04-17 14:34   ` James Almer
2024-04-17 14:50     ` Lynne
2024-04-17 15:24       ` Michael Niedermayer
2024-04-17 15:22   ` Michael Niedermayer
2024-04-17 15:55     ` Jean-Baptiste Kempf
2024-04-17 18:22       ` Michael Niedermayer
2024-04-17 18:31         ` Timo Rothenpieler
2024-04-18  0:22           ` Michael Niedermayer
2024-04-18  0:42             ` Michael Niedermayer
2024-04-17 15:57     ` Frank Plowman
2024-04-17 16:24 ` Andrew Sayers
2024-04-18  7:52   ` Stefano Sabatini
2024-04-18  9:13     ` epirat07
2024-04-18 10:22       ` Andrew Sayers
2024-04-18 19:50         ` Michael Niedermayer
2024-04-18 19:56           ` James Almer
2024-04-18 22:01           ` Andrew Sayers
2024-04-20 21:26             ` Michael Niedermayer
2024-04-18  2:21 ` Aidan
2024-04-18  6:33   ` Paul B Mahol
2024-04-18  8:19   ` Stefano Sabatini
2024-04-18 10:10     ` Aidan
2024-04-18 20:15     ` Michael Niedermayer
2024-04-18 21:15       ` epirat07
2024-04-18 22:45         ` Michael Niedermayer
2024-04-21 14:36           ` Ondřej Fiala
2024-04-18  8:46 ` Stefano Sabatini
2024-04-18  9:21   ` epirat07
2024-04-18  9:32     ` Roman Arzumanyan
2024-04-23  0:20   ` Michael Niedermayer
2024-04-23  7:47     ` Andrew Sayers
2024-04-23  8:02       ` Lynne
2024-04-23  9:38         ` Andrew Sayers
2024-04-18 14:02 ` Niklas Haas
2024-04-18 20:53   ` Michael Niedermayer
2024-04-18 21:13     ` James Almer
2024-04-18 23:19       ` Michael Niedermayer [this message]
2024-04-19  6:02         ` Paul B Mahol
2024-04-19 14:50     ` Niklas Haas
2024-04-19 15:25       ` epirat07
2024-04-19 17:35       ` Zhao Zhili
2024-04-19 18:00         ` Diederick C. Niehorster
2024-04-19 18:06           ` Vittorio Giovara
2024-04-19 19:05             ` Paul B Mahol
2024-04-19 19:45               ` James Almer
2024-04-19 19:55                 ` Paul B Mahol
2024-04-19 19:48             ` Ronald S. Bultje
2024-04-19 21:57               ` Vittorio Giovara
2024-04-19 22:28                 ` Paul B Mahol
2024-04-19 22:31                   ` James Almer
2024-04-20  0:33                     ` Paul B Mahol
2024-04-19 23:23                 ` Ronald S. Bultje
2024-04-20 23:05           ` Michael Niedermayer
2024-04-25  8:03             ` Andrew Sayers
2024-04-29  6:03       ` Davy Durham
2024-04-29 16:37         ` Ondřej Fiala
2024-04-29 16:44           ` Ondřej Fiala
2024-04-29 19:04           ` Davy Durham
2024-04-29 19:25             ` Rémi Denis-Courmont
2024-04-30 19:05             ` Ondřej Fiala
2024-04-30 23:01               ` Andrew Sayers
2024-05-02 13:47                 ` Ondřej Fiala
2024-05-02 14:20                   ` Kieran Kunhya
2024-05-02 14:34                     ` Ondřej Fiala
2024-05-02 17:44                       ` Vittorio Giovara
2024-05-02 18:38                         ` Ronald S. Bultje
2024-05-03  5:53                           ` Rémi Denis-Courmont
2024-05-03 11:28                             ` Ronald S. Bultje
2024-05-03 11:33                               ` Rémi Denis-Courmont
2024-05-03 13:54                                 ` Ronald S. Bultje
2024-05-03 14:33                                   ` Rémi Denis-Courmont
     [not found]                                   ` <3B289095-ED54-4590-B8C0-FF204218876E@cosmin.at>
2024-05-03 15:45                                     ` Cosmin Stejerean via ffmpeg-devel
2024-05-04 19:28                                       ` Michael Niedermayer
2024-05-04 21:25                                         ` Andrew Sayers
2024-05-04 21:51                                           ` epirat07
2024-05-05  0:59                                             ` Zhao Zhili
2024-05-02 19:42                         ` Ondřej Fiala
2024-05-13  6:52                         ` Tomas Härdin
2024-04-30  0:11           ` Hendrik Leppkes
2024-04-30 18:48             ` Ondřej Fiala
2024-04-30 19:06               ` Hendrik Leppkes
2024-04-30 19:15                 ` Ondřej Fiala
2024-05-01  5:27                   ` Rémi Denis-Courmont
2024-05-02 14:25                     ` Ondřej Fiala
2024-05-02 14:38                       ` Rémi Denis-Courmont
2024-05-02 19:32                         ` Ondřej Fiala
2024-05-02 20:06                           ` epirat07
2024-05-03 13:23                             ` Ondřej Fiala
2024-05-03  5:46                           ` Rémi Denis-Courmont
2024-05-03 12:58                             ` Ondřej Fiala
2024-05-03 13:29                               ` Ondřej Fiala
2024-05-03 13:48                               ` Rémi Denis-Courmont
2024-05-03 14:41                               ` Rémi Denis-Courmont
2024-05-03 17:30                                 ` Ondřej Fiala
2024-05-03 17:45                                   ` Rémi Denis-Courmont
2024-05-04 12:48                                     ` Ondřej Fiala
2024-05-02 16:35                       ` Zhao Zhili
     [not found]                         ` <34D9D362-37E5-4BFF-BA5D-01918ED7C171@cosmin.at>
2024-05-02 17:17                           ` Cosmin Stejerean via ffmpeg-devel
2024-05-04  1:11                       ` flow gg
2024-05-04 13:06                         ` Ondřej Fiala
2024-05-04 18:04                           ` Vittorio Giovara
2024-05-04 19:09                             ` Michael Niedermayer
2024-05-04 19:24                               ` Vittorio Giovara
2024-05-04 19:05                         ` Michael Niedermayer
2024-05-12 16:05                           ` Ondřej Fiala
2024-04-21  9:11 ` Rémi Denis-Courmont
2024-04-21 20:40   ` Michael Niedermayer
2024-04-23 12:12     ` Rémi Denis-Courmont
2024-04-24 22:00       ` Michael Niedermayer
2024-04-25 15:15         ` Vittorio Giovara
2024-04-27 10:24           ` Michael Niedermayer
2024-04-27 16:39             ` Vittorio Giovara
2024-05-04 20:35               ` Michael Niedermayer
2024-05-05  3:06                 ` Vittorio Giovara
2024-05-05  8:14                 ` Rémi Denis-Courmont
2024-05-05  9:18                   ` Paul B Mahol
2024-04-27 19:07             ` Ondřej Fiala
2024-04-22  1:12 ` James Almer
2024-04-22 11:07   ` Stefano Sabatini
2024-04-22 11:32     ` Lynne
2024-04-30 17:42       ` Michael Niedermayer
2024-06-17 18:34         ` Michael Niedermayer
2024-06-17 19:00           ` Nicolas George
2024-06-17 19:29             ` Vittorio Giovara
2024-06-17 23:03               ` Andrew Sayers
2024-06-17 19:25           ` Vittorio Giovara
2024-06-17 21:02           ` Rémi Denis-Courmont
2024-06-18 10:44             ` Michael Niedermayer
2024-06-18 22:38           ` Lynne via ffmpeg-devel
2024-04-24 22:50 ` Tomas Härdin
2024-04-24 23:06   ` Diederick C. Niehorster
2024-04-25  0:07   ` Michael Niedermayer
2024-04-25 10:26     ` Tomas Härdin
2024-04-27 10:53       ` Michael Niedermayer
2024-04-27 18:01         ` Tomas Härdin
2024-04-30 18:14           ` Michael Niedermayer

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=20240418231929.GU6420@pb2 \
    --to=michael@niedermayer.cc \
    --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