Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
From: "Rémi Denis-Courmont" <remi@remlab.net>
To: ffmpeg-devel@ffmpeg.org
Subject: Re: [FFmpeg-devel] I've written a filter in Rust
Date: Sat, 22 Feb 2025 14:49:44 +0200
Message-ID: <4959204.GXAFRqVoOG@basile.remlab.net> (raw)
In-Reply-To: <eb5fa9b8-5ec6-45be-a4ec-ac4118cdaf5e@lynne.ee>

Le perjantaina 21. helmikuuta 2025, 15.18.06 UTC+2 Lynne a écrit :
> > - 1: get a working and efficient implementation of the SORT algorithm.
> > - 2: start learning Rust again (it's been ~5 years since I used it)
> > - 3: learn more about the libavfilter codebase
> > - 4: evaluate whether Rust could work as a second language for hacking
> > FFMpeg.
> 
> None of us know Rust confidently enough to maintain and work on such code.

A project should of course limit the number of distinct programminglanguages 
involved for a number of reasons, but there are people who know Rust quite 
well here as well as in adjacent projects from the OSS multimedia community.

The sustainability problem is really not specific to the programming language. 
The majority of FFmpeg code requires domain-specific knowledge that even most 
FFmpeg maintainers don't have. By that same logic we should not have any 
assembler optimisation for any instruction set other than, maybe, 386 and 
support only the most well-known codecs and containers.

(...)
> Regardless of the language, I disagree with using crates in the context 
> of FFmpeg

I assume that you mean *external* crates because if FFmpeg starts 
incorporating Rust, I would certainly expect it to consist of a workspace with 
multiple crates.

With that said, external crates are just the Rust equivalent of external C 
libraries. I agree that, ideally, FFmpeg should not depend on external 
libraries and carry native implementations of anything other than the 
languages runtimes and hardware abstraction layers...but in actuality, FFmpeg 
has tons of libraries as optional dependencies.

> and any use of cargo.

I fail to see the problem, TBH. You can use rustc directly, but it's really 
inconvenient with little to no benefits. I don't see why we couldn't use Cargo 
to produce static libraries, then have the Makefile import those static 
libraries into the existing linking process.

We can (and most definitely should) restrict adding external crates in the 
Cargo manifests but that does not mean we should ban Cargo altogether.

> We used to link to OpenCV. The only reason why we dropped it was because 
> we used the C interface, which was removed, and no one wanted to or was 
> interested in rewriting it.

I agree that we should not depend on external *frameworks*.

-- 
Rémi Denis-Courmont
Tapio's place new town, former Finnish Republic of Uusimaa



_______________________________________________
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".

      parent reply	other threads:[~2025-02-22 12:49 UTC|newest]

Thread overview: 18+ 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-21 16:39           ` Stephen Hutchinson
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-22 12:49   ` Rémi Denis-Courmont [this message]

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=4959204.GXAFRqVoOG@basile.remlab.net \
    --to=remi@remlab.net \
    --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