From: Lynne <dev@lynne.ee>
To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
Subject: Re: [FFmpeg-devel] [RFC] 5 year plan & Inovation
Date: Tue, 23 Apr 2024 10:02:58 +0200 (CEST)
Message-ID: <Nw8yfnF--3-9@lynne.ee> (raw)
In-Reply-To: <ZidnebWRqBMuBuuR@andrews-2024-laptop.sayers>
Apr 23, 2024, 09:47 by ffmpeg-devel@pileofstuff.org:
> On Tue, Apr 23, 2024 at 02:20:51AM +0200, Michael Niedermayer wrote:
>
>> On Thu, Apr 18, 2024 at 10:46:35AM +0200, Stefano Sabatini wrote:
>> > On date Wednesday 2024-04-17 15:58:32 +0200, Michael Niedermayer 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:
>> > >
>> > [...]
>> > > * client side / in browser support
>> > > (expand towards webapps, webpages using ffmpeg client side in the browser)
>> > > bring in more users and developers, and it will be costly for us
>> > > if we let others take this area as its important and significant
>> >
>> > There are already several projects on github, the most prominent one:
>> > https://github.com/ffmpegwasm/ffmpeg.wasm/
>> >
>> > In general it would be useful to provide libav* bindings to other
>> > languages, for example:
>> > https://github.com/PyAV-Org/PyAV
>> > https://github.com/zmwangx/rust-ffmpeg
>> >
>> > Not sure these should be really moved to FFmpeg though.
>>
>> From a user PoV it would be nice if there was a official
>> python, rust and wasm binding
>>
>> It also would draw in more developers and users to FFmpeg.
>> test coverage might also improve
>>
>> I think the 2 questions are.
>> 1. is there a binding for some language that wants to become the official
>> FFmpeg binding for that language ?
>> 2. does the FFmpeg community want that too ?
>>
>> thx
>>
>
> I've thought about this a lot while trying to learn FFmpeg.
> IMHO there are two big hurdles to good other-language bindings:
>
> First, FFmpeg's interface is full of C idioms that are unintuitive to
> programmers from other languages. For example, Stefano Sabatini is
> patiently explaining to me in anoher thread how contexts are a central
> concept in FFmpeg's design. Even where I understood the code on a
> mechanical level, I had drastically underestimated their importance
> because I didn't have a mental model to understand them. Binding
> FFmpeg functionality in another language is only half the problem -
> the interface needs to be explained in terms they can understand,
> or rewritten in terms they already know.
>
> Second, the interface is full of special cases that make translation
> to other languages burdensome. For example, C errors are based on
> returning a value and requiring the caller to check it explicitly;
> whereas most other languages throw an error and allow the caller to
> catch it or not. A translator needs to convert every one of those,
> but FFmpeg functions don't have a standard mechanism to signal the
> correct behaviour for a given function. Even the documentation isn't
> reliably helpful, sometimes saying a variant of "returns an AVERROR",
> sometimes "returns a negative number", and sometimes it just
> returns an int and expects the reader to dig through the source.
> That eats up a huge amount of programmer time, and has to be done for
> every language that wants a binding.
>
> Solving those problems would make it far more practical for translators
> to make bindings in other languages, and for new people to learn FFmpeg
> even in C. For example, creating an `enum AVERROR` and rewriting
> functions to return it would make the code easier to read and drastically
> cut translator time.
>
We always return a negative number for error.
_______________________________________________
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".
next prev parent reply other threads:[~2024-04-23 8:03 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 [this message]
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
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=Nw8yfnF--3-9@lynne.ee \
--to=dev@lynne.ee \
--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