Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
From: "Tomas Härdin" <git@haerdin.se>
To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
Subject: Re: [FFmpeg-devel] I've written a filter in Rust
Date: Wed, 26 Feb 2025 15:34:31 +0100
Message-ID: <1677e4490923053d9403b8cbb3b79ca68ccc52b1.camel@haerdin.se> (raw)
In-Reply-To: <1F8FAD8B-8D33-494D-9F90-4B84CA879B83@remlab.net>

mån 2025-02-24 klockan 16:51 +0200 skrev Rémi Denis-Courmont:
> Hi,
> 
> Le 23 février 2025 23:30:03 GMT+02:00, "Tomas Härdin"
> <git@haerdin.se> a écrit :
> > lör 2025-02-22 klockan 14:57 +0200 skrev Rémi Denis-Courmont:
> > > Le perjantaina 21. helmikuuta 2025, 20.02.16 UTC+2 Tomas Härdin a
> > > écrit :
> > > > The above said, I'm not against Rust. It has some nice
> > > > properties. But
> > > > it does not seem very "stable" so far. Perhaps this has changed
> > > > in
> > > > recent years..
> > > 
> > > IME, it's become very usable for user-space code. Bare metal
> > > still pretty much 
> > > requires unstable features, but that's not a problem for FFmpeg.
> > 
> > I mean more in terms of ABI, and having to have cargo install
> > specific
> > versions of the Rust compiler and so on.
> 
> Why? The ABI will never be fully stable. Zero-cost abstractions just
> don't lend themselves to an ABI.

The C ABI is very stable. It's why "C for the API/ABI and C++ for the
implementation" is a such powerful combination. Perhaps the same thing
could be done with Rust, or both Rust and C++..

> > > > If we're in the habit of allowing other languages I'd be in
> > > > favor of
> > > > allowing C++, so that we can make use of the STL containers
> > > > rather than
> > > > rolling our own.
> > > 
> > > Yikes. Rust is actually way saner for type-generic programming
> > > than C++.
> > 
> > No doubt, but STL is still miles better than rolling our own
> > containers.
> 
> But STL is not worth switching to C++ for.

We already use C++ in the codebase. The cost for using it in more
places is very low

> If the goal is to enable a language with significantly improved
> static safety, without compromising on performance (especially no GC)
> and optimisability, then Rust is pretty much the only option at the
> moment.

I have suggested using formal methods (frama-c) to improve the safety
of the C code. So far the reception has been lukewarm at best, even for
less demanding tools such as value analysis, compared to weakest
precondition calculus (WP). Frama-C is also moving towards C++ support.

> > Anyway, rather than shoehorning Rust into this codebase it might
> > make
> > more sense to contribute to NihAV instead. But only if it has a
> > sane
> > parsing framework
> 
> That makes sense if the goal is to publish and forget, but otherwise
> I doubt that NihAV will ever be relevant "in the field".
> 
> That being said, I think Rust would make much more sense for decoders
> and demuxers than for filters and ML stuff.

On this I fully agree. For demuxers it makes perfect sense, and also
for the non-DSP side of codecs. But this is also why, if you're already
willing pay the oxidation cost, contributing to NihAV makes much more
sense, because you're not held back by trying to retain ABI compat.

Far above all this, what is even more important is to do proper
parsing, with say a parser combinator framework, not just implementing
yet another library of shotgun parsers. And of course, using existing
libraries whenever possible. But in this project both of these amount
to tech-heresy.

/Tomas
_______________________________________________
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-02-26 14:34 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-02-20 13:06 Leandro Santiago
2025-02-20 16:20 ` Leandro Santiago
2025-02-20 22:49 ` Michael Niedermayer
2025-02-21  7:56   ` Leandro Santiago
2025-02-21  9:01   ` Tomas Härdin
2025-02-21  9:21     ` Soft Works
2025-02-21 13:21     ` Michael Niedermayer
2025-02-21 14:30       ` Soft Works
2025-02-21 14:53         ` Kieran Kunhya via ffmpeg-devel
2025-02-21 15:02           ` Soft Works
2025-02-21 19:27             ` Kieran Kunhya via ffmpeg-devel
2025-02-21 20:10               ` Soft Works
2025-02-26 13:50                 ` Tomas Härdin
2025-02-26 14:18                   ` Zhao Zhili
2025-02-26 15:32                     ` Rémi Denis-Courmont
2025-02-26 16:03                       ` Zhao Zhili
2025-02-26 16:25                         ` martin schitter
2025-02-26 14:07                 ` Nicolas George
2025-02-26 16:35                   ` Soft Works
2025-02-21 16:39           ` Stephen Hutchinson
2025-02-26 14:25         ` Vittorio Giovara
2025-02-21 13:18 ` Lynne
2025-02-21 13:44   ` Kieran Kunhya via ffmpeg-devel
2025-02-21 18:02   ` Tomas Härdin
2025-02-22 12:57     ` Rémi Denis-Courmont
2025-02-23 21:30       ` Tomas Härdin
2025-02-23 21:51         ` Michael Niedermayer
2025-02-26 14:11           ` Tomas Härdin
2025-02-24 14:51         ` Rémi Denis-Courmont
2025-02-26 14:34           ` Tomas Härdin [this message]
2025-02-26 15:13           ` Leandro Santiago
2025-02-22 12:49   ` Rémi Denis-Courmont

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=1677e4490923053d9403b8cbb3b79ca68ccc52b1.camel@haerdin.se \
    --to=git@haerdin.se \
    --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