Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
From: "Martin Storsjö via ffmpeg-devel" <ffmpeg-devel@ffmpeg.org>
To: "harish.rajaselvan--- via ffmpeg-devel" <ffmpeg-devel@ffmpeg.org>
Cc: harish.rajaselvan@multicorewareinc.com,
	"Martin Storsjö" <martin@martin.st>
Subject: [FFmpeg-devel] Re: [DISCUSSION] Adding ARM64EC support to FFmpeg
Date: Mon, 22 Sep 2025 14:48:09 +0300 (EEST)
Message-ID: <537b8baa-73e1-e4eb-fd5a-20bb8f1a591@martin.st> (raw)
In-Reply-To: <175853548089.14922.13561628859475164651@f2eeb8e52785>

On Mon, 22 Sep 2025, harish.rajaselvan--- via ffmpeg-devel wrote:

> I have been working on enabling ARM64EC compilation and have 
> successfully built FFmpeg binaries for this target. To achieve this it 
> required modifications to the build configuration files and to the 
> gas-preprocessor.pl script (maintained in 
> https://github.com/FFmpeg/gas-preprocessor). Should changes to 
> gas-preprocessor.pl be submitted as a pull request to its repository, or 
> also sent to this mailing list for review?

I'm not sure if we have a policy for this; reviewing it on the mailing 
list probably gives it more visibility than as a PR in a repo that very 
few follows.

> I would like to submit these patches upstream for review and feedback 
> from the community in the near future in this thread. Please let us know 
> if we can proceed with submitting them, or if there are any challenges 
> we should anticipate for enabling for this target.

Feel free to send patches for review - although I cannot guarantee that we 
are willing to integrate the changes.

As far as I can see, for building for ARM64EC with MSVC, the changes 
required mainly are for passing "-machine:arm64ec" to lib.exe, and for 
filtering out the -arm64EC option from the compiler command in 
gas-preprocessor.pl.

Such changes probably are straightforward and probably can be accepted.

If building with https://github.com/mstorsjo/llvm-mingw/releases (with the 
latest 2 releases), no such changes are needed, and it's possible to 
configure a build with just "--cross-prefix=arm64ec-w64-mingw32- 
--target-os=mingw32 --arch=aarch64".

The other, much more major issue, is that all aarch64 assembly may need to 
be tweaked to work in ARM64EC mode. This may need rewrites (or ugly 
conditionals) to avoid using registers that are forbidden in ARM64EC mode.

(Building with Clang makes this aspect much more straightforward, as Clang 
gives warnings about the use of forbidden registers, like "warning: 
register Q25 is disallowed on ARM64EC.".)

We would have to see the proposed patches to see if these changes are 
palatable or if they are too outrageous for us to want to take them 
upstream.

> Additionally, I would like to know the point of contact for hosting 
> ARM64EC binaries (for example, via btbn or gyan.dev), so that people 
> targeting this platform can have access to FFmpeg builds for this 
> target.

Upstream ffmpeg can't make any promises about this; you'd have to convince 
the developers providing those builds to do it. Personally, I'm 
unconvinced.

For users of the plain ffmpeg.exe binaries, I don't see any reason why 
anyone would want to run an ARM64EC version rather than a plain regular 
ARM64 build. (The main theoretical reason is if intending to load a binary 
x86_64 plugin, but I don't know what plugins that would be?)

The main reason for wanting an ARM64EC build of ffmpeg is for integrating 
into an app that still runs in emulated x86_64 mode - then you'd want 
linking against the libraries and not just using the commandline 
executable. I'm not familiar with those binary distributions, whether they 
include such libraries as well, or only the end executables. If they do 
provide libraries as well, I could see some value in it, but it's of 
course totally up to them whether they feel it's worth the effort (I doubt 
it).

// Martin

_______________________________________________
ffmpeg-devel mailing list -- ffmpeg-devel@ffmpeg.org
To unsubscribe send an email to ffmpeg-devel-leave@ffmpeg.org

  reply	other threads:[~2025-09-22 11:48 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-09-22 10:04 [FFmpeg-devel] " harish.rajaselvan--- via ffmpeg-devel
2025-09-22 11:48 ` Martin Storsjö via ffmpeg-devel [this message]
2025-09-23 13:03   ` [FFmpeg-devel] " Harish Raja Selvan via ffmpeg-devel
2025-09-24 12:15     ` Martin Storsjö via ffmpeg-devel
2025-09-30  4:58       ` Harish Raja Selvan via ffmpeg-devel
2025-10-03 12:27         ` Martin Storsjö via ffmpeg-devel
2025-09-27  9:00 ` Rémi Denis-Courmont via ffmpeg-devel
2025-10-03 12:44   ` Martin Storsjö via ffmpeg-devel
2025-10-03 14:32     ` Rémi Denis-Courmont via ffmpeg-devel
2025-10-03 15:11       ` Martin Storsjö via ffmpeg-devel
2025-10-03 16:39         ` Rémi Denis-Courmont via ffmpeg-devel
2025-10-03 20:49           ` Stephen Hutchinson via ffmpeg-devel
2025-10-04  8:43             ` Rémi Denis-Courmont 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=537b8baa-73e1-e4eb-fd5a-20bb8f1a591@martin.st \
    --to=ffmpeg-devel@ffmpeg.org \
    --cc=harish.rajaselvan@multicorewareinc.com \
    --cc=martin@martin.st \
    /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 http://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/ http://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