From: "Tomas Härdin via ffmpeg-devel" <ffmpeg-devel@ffmpeg.org>
To: ffmpeg-devel@ffmpeg.org
Cc: "Tomas Härdin" <git@haerdin.se>
Subject: [FFmpeg-devel] Re: [RFC] C++
Date: Thu, 23 Oct 2025 23:45:18 +0200
Message-ID: <14274a6828351eb0c7cb0c44c71787f5c84587cc.camel@haerdin.se> (raw)
In-Reply-To: <e2c76a7b-2e3e-4838-84c7-e4eed4b6aac6@gmail.com>
ons 2025-10-22 klockan 14:09 +0200 skrev Gregor Riepl via ffmpeg-devel:
> > My main motivation is to be able to use STL, which would simplify
> > string handling and memory management, and give us access to its
> > data
> > structures. Manual memory management has its place, especially in
> > lavc.
> > In lavf less so. RAII would do wonders in de-gotofying error
> > handling.
> > Features like std::filesystem, std::chrono, std::thread etc
> > abstract
> > away many OS particularities. Thorough STL-ification would render
> > parts
> > of lavu obsolete. avstring.*, bprintf.* and tree.* come to mind.
> > This
> > would have security benefits. Another reason is stronger typing,
> > which
> > tends to reveal bugs.
>
> Just for the sake of the argument: Wouldn't it be better to opt for
> an even safer language than C++, like Rust?
There was a discussion about Rust a while back. I'm not really against
it, but the impedance mismatch is much greater. Plus there's the need
for an entirely different set of compilers. Most of our users know C++
already.
That said, gccrs is making progress so perhaps at some point this might
happen. C++ is still an improvement over the present state of things.
Plus, Katamari-C++ is likely to grow the same kind of features Rust has
anyway.
I've continued to hack at mxfdec.cpp and I'm now seeing substantial
performance improvements thanks to using STL. 182% faster
mxf_read_header for a 10,000 second file generated by mxfenc.c. This is
likely to shoot up even more as I rework the MXFIndexTableSegment code.
Greater still would be the effect of lazy reading of partitions, which
is my overall goal. I'll probably push something to forgejo once it's
firmed up a bit. Especially for Baptiste to take a look at.
I feel I should reiterate the point that whatever we choose to do we
should keep the C API, because C's ABI is stable. C++'s isn't, and
based on what Rémi is saying Rust's isn't either.
/Tomas
_______________________________________________
ffmpeg-devel mailing list -- ffmpeg-devel@ffmpeg.org
To unsubscribe send an email to ffmpeg-devel-leave@ffmpeg.org
next prev parent reply other threads:[~2025-10-23 21:45 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-10-20 17:50 [FFmpeg-devel] " Tomas Härdin via ffmpeg-devel
2025-10-20 21:34 ` [FFmpeg-devel] " Neal Gompa via ffmpeg-devel
2025-10-21 2:24 ` Lynne via ffmpeg-devel
2025-10-22 8:57 ` Tomas Härdin via ffmpeg-devel
2025-10-22 10:46 ` Tomas Härdin via ffmpeg-devel
2025-10-21 18:41 ` Niklas Haas via ffmpeg-devel
2025-10-22 3:15 ` Romain Beauxis via ffmpeg-devel
2025-10-22 4:19 ` InnocentZero via ffmpeg-devel
2025-10-22 8:24 ` Nicolas George via ffmpeg-devel
2025-10-22 10:53 ` Tomas Härdin via ffmpeg-devel
2025-10-22 12:09 ` Gregor Riepl via ffmpeg-devel
2025-10-22 12:42 ` Michael Niedermayer via ffmpeg-devel
2025-10-22 13:07 ` Timo Rothenpieler via ffmpeg-devel
2025-10-22 17:07 ` Rémi Denis-Courmont via ffmpeg-devel
2025-10-22 18:12 ` Timo Rothenpieler via ffmpeg-devel
2025-10-22 18:50 ` Rémi Denis-Courmont via ffmpeg-devel
2025-10-22 17:08 ` Rémi Denis-Courmont via ffmpeg-devel
2025-10-23 21:45 ` Tomas Härdin via ffmpeg-devel [this message]
2025-10-22 13:05 ` Michael Niedermayer via ffmpeg-devel
2025-10-23 21:49 ` Tomas Härdin via ffmpeg-devel
2025-10-23 22:24 ` Michael Niedermayer via ffmpeg-devel
2025-10-22 14:03 ` Leo Izen via ffmpeg-devel
2025-10-21 14:47 Zhao Zhili via ffmpeg-devel
2025-10-21 14:58 ` Nicolas George via ffmpeg-devel
2025-10-21 15:31 ` Zhao Zhili via ffmpeg-devel
2025-10-22 1:34 ` Michael Niedermayer via ffmpeg-devel
2025-10-22 8:11 ` Nicolas George via ffmpeg-devel
2025-10-22 9:15 ` Zhao Zhili via ffmpeg-devel
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=14274a6828351eb0c7cb0c44c71787f5c84587cc.camel@haerdin.se \
--to=ffmpeg-devel@ffmpeg.org \
--cc=git@haerdin.se \
/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