Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
From: Nicolas George <george@nsup.org>
To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
Subject: Re: [FFmpeg-devel] What is FFmpeg and what should it be
Date: Thu, 3 Aug 2023 15:25:42 +0200
Message-ID: <ZMuq1oseJ8fPDF8Z@phare.normalesup.org> (raw)
In-Reply-To: <144c5ccfa009bfaee7d1527383812f2740756030.camel@haerdin.se>

Tomas Härdin (12023-07-31):
> As far as I recall libxml2 does not enable the fancier features of XML
> unless told to do so. And if it can't disable things like DTD then a
> ticket should be opened with them to make that possible.

You are missing the point: even if all these features are entirely
disabled (which we cannot be really sure), the code and data structure
have to be designed to make them possible. That means significantly more
complex code, much more prone to bugs, including security-relevant.

> It is foolish to spread scarce developer time more thinly.

For that, see below.

> It almost certainly means worse security, not better.

I am quite sure your estimation in this is wrong.

> The same goes for all things that FFmpeg reimplements. HTTP has already
> been mentioned. How many developer hours have been wasted on it when
> libcurl could be used instead, and a fraction of those hours going to
> improving it rather than a duplicate implementation?
> 
> I have been accused of being a "bean counter". But what are these beans
> that I count? They are developer time, the sole source of value of the
> free software movement as a whole. When I see things like HTTP or MXF
> being reimplemented I don't see features. I see liabilities.

You are neglecting a very important point here:

The time of other people is not yours to count.

You are not a boss directing the time of your employees towards the task
most profitable for you. Michael is not hacking software defined radio
to be profitable for somebody, he is having fun with it (probably
because he recently got his hands on the hardware). And I want to write
a <foo bar="qux"> parser because it is an interesting challenge. But
since Michael is a very talented hacker, the result of he having fun
ends up being code that is in some way already better than existing
alternatives.

As a member of a community project, you do not have the authority to
choose what other developers work on. The only authority you have is to
decide whether you will welcome the fruit of their work as an useful new
feature (while being vigilant about code quality) or whether you will be
so annoying about it that they give up trying to contribute to FFmpeg.

As of now, you seem to be making the wrong choice.

And I can tell you about my own situation: for several months now, the
attitude of some developers here, including you very strongly, has
mostly disgusted me from contributing to FFmpeg.

The stupid farmer kills the goose with the golden eggs by opening up her
belly. The smart farmer kills the goose with the golden eggs by trying
to force her to lay on a schedule.

> Layering is not an end in itself as you rightfully point out. It is a
> tool. To what end?

> In the free software world we don't layer and segregate things for no
> reason. We do it so that programs can interact with each other through
> standardized interfaces. The effect is a comedy of the commons. More
> can be done with less labour. For an FM receiver program the
> appropriate interfaces are ALSA, PulseAudio and/or JACK. That way its
> audio can be piped to many programs.

As you point: layering is not an end. “The scope” is not the reason, it
is only a quick summary of the reasons when they are obvious and we all
agree.

So please stop invoking “the scope” as a reason.

Second, layering is indeed something to wish for in a complex project,
but it has to come organically, it has to appear progressively as the
code becomes more complex and the useful boundaries and interfaces
appear.

When people start with layering, the result looks like the OSI model for
network stacks: it makes a few nice paragraphs in textbooks and is
completely worthless in practice.

> It is true that we can add more features, and it is also certainly true
> that these are useful for a non-empty set of users. But is it a good
> use of scarce developer time? Were SDR limited to only Michael's time
> then there would be no problem. But it isn't. It unavoidably touches
> many other parts of the code, as we are already seeing.

It is the second time you say this, and it is the second time I have to
tell you: no, it is not true at all.

We are seeing exactly the opposite: Michael's code is big, but it is
self-contained and completely optional.

Furthermore, it is not wasting any developer time. Only these sterile
objections are wasting precious time.

-- 
  Nicolas George
_______________________________________________
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:[~2023-08-03 13:25 UTC|newest]

Thread overview: 84+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-07-22 19:29 [FFmpeg-devel] [PATCH 1/6] configure: libavradio support Michael Niedermayer
2023-07-22 19:29 ` [FFmpeg-devel] [PATCH 2/6] avutil/log: Add AV_CLASS_CATEGORY_RADIO_INPUT Michael Niedermayer
2023-07-22 20:30   ` Paul B Mahol
2023-07-22 19:29 ` [FFmpeg-devel] [PATCH 3/6] avformat: add support for demuxers/inputs from avradio Michael Niedermayer
2023-07-22 20:35   ` Paul B Mahol
2023-07-22 19:29 ` [FFmpeg-devel] [PATCH 4/6] avdevice/utils: add test for AV_CLASS_CATEGORY_RADIO_INPUT Michael Niedermayer
2023-07-22 19:29 ` [FFmpeg-devel] [PATCH 5/6] fftools: avradio support Michael Niedermayer
2023-07-22 21:39   ` Lynne
2023-07-23 15:23     ` Michael Niedermayer
2023-07-23 18:49       ` Tomas Härdin
2023-07-23 19:01         ` James Almer
2023-07-23 22:56           ` Michael Niedermayer
2023-07-24  8:19             ` Nicolas George
2023-07-24 15:57               ` Michael Niedermayer
2023-07-24 22:30               ` Tomas Härdin
2023-07-25 14:17             ` Tomas Härdin
2023-07-24 20:19           ` Tomas Härdin
2023-07-25  9:37             ` Nicolas George
2023-07-26 10:37             ` Michael Niedermayer
2023-07-27 13:05               ` Tomas Härdin
2023-07-27 18:36                 ` Michael Niedermayer
2023-07-27 18:48                   ` Nicolas George
     [not found]                   ` <CC2992B9-B047-4724-8DE5-01C02CBE31FD@cosmin.at>
2023-08-01 19:51                     ` Cosmin Stejerean
2023-08-01 20:06                       ` Paul B Mahol
2023-08-02 12:46                         ` Michael Niedermayer
2023-08-02 13:00                           ` Paul B Mahol
2023-08-02 13:01                             ` Michael Niedermayer
2023-07-24  8:13         ` Nicolas George
2023-07-24 20:22           ` Tomas Härdin
2023-07-25  9:33             ` Nicolas George
2023-07-25  9:51               ` Kieran Kunhya
2023-07-25  9:56                 ` Nicolas George
2023-07-25 10:16                   ` Kieran Kunhya
2023-07-25 13:55                     ` Nicolas George
2023-07-25 14:37                       ` Kieran Kunhya
2023-07-27 17:56                         ` Nicolas George
2023-07-28 11:07                           ` Kieran Kunhya
2023-07-30 13:04                             ` [FFmpeg-devel] What is FFmpeg and what should it be Nicolas George
2023-07-30 17:07                               ` Andrey Turkin
2023-07-30 18:29                                 ` Kieran Kunhya
2023-07-30 18:54                                   ` Nicolas George
2023-08-01  7:48                                 ` Rémi Denis-Courmont
2023-07-31 13:56                               ` Tomas Härdin
2023-08-03 13:25                                 ` Nicolas George [this message]
2023-08-03 20:50                                   ` Tomas Härdin
2023-08-02  1:44                               ` Vittorio Giovara
2023-08-02 12:55                                 ` Michael Niedermayer
2023-08-02 12:59                                   ` Jean-Baptiste Kempf
2023-08-02 14:12                                     ` Brad Isbell
2023-08-02 14:19                                       ` Nicolas George
2023-08-02 14:26                                       ` Michael Niedermayer
2023-08-02 14:30                                         ` Nicolas George
     [not found]                                           ` <A3B35B92-8333-4637-B4AA-FA9D9750E784@cosmin.at>
2023-08-02 15:46                                             ` Cosmin Stejerean
2023-08-03 15:40                                               ` Michael Niedermayer
2023-08-02 14:20                                     ` Michael Niedermayer
2023-08-02 14:44                                       ` Jean-Baptiste Kempf
2023-08-03 17:45                                         ` Michael Niedermayer
2023-08-03 18:24                                           ` Kieran Kunhya
2023-08-03 19:25                                             ` Michael Niedermayer
2023-08-03 20:04                                               ` Kieran Kunhya
2023-08-04 17:09                                                 ` Michael Niedermayer
2023-08-04 17:35                                                   ` Nicolas George
2023-08-04 23:17                                                     ` Kieran Kunhya
2023-08-05 18:55                                         ` Michael Niedermayer
2023-08-05 19:17                                           ` Paul B Mahol
2023-08-05 23:32                                           ` Vittorio Giovara
2023-08-06  8:28                                             ` Tomas Härdin
2023-08-06 19:53                                             ` Michael Niedermayer
2023-08-07 15:39                                               ` Rémi Denis-Courmont
2023-08-08 15:22                                                 ` Michael Niedermayer
2023-08-08 15:37                                                   ` Paul B Mahol
2023-08-08 18:53                                                   ` Rémi Denis-Courmont
2023-08-09 15:59                                                     ` Michael Niedermayer
2023-08-09 16:24                                                       ` Paul B Mahol
2023-08-10 12:39                                                     ` Nicolas George
2023-08-10 14:58                                                       ` Vittorio Giovara
2023-08-12 17:12                                                         ` Michael Niedermayer
2023-08-10 15:01                                                       ` James Almer
2023-08-10 15:43                                                       ` Jean-Baptiste Kempf
2023-08-10 18:39                                                       ` Tomas Härdin
2023-08-03 11:38                               ` Tomas Härdin
2023-08-03 13:29                                 ` Nicolas George
2023-07-25 12:02                   ` [FFmpeg-devel] [PATCH 5/6] fftools: avradio support Tomas Härdin
2023-07-22 19:29 ` [FFmpeg-devel] [PATCH 6/6] tools/uncoded_frame: " 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=ZMuq1oseJ8fPDF8Z@phare.normalesup.org \
    --to=george@nsup.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