On 10/3/25 12:39 PM, Rémi Denis-Courmont via ffmpeg-devel wrote:
Le perjantaina 3. lokakuuta 2025, 18.11.55 Itä-Euroopan kesäaika Martin
Storsjö a écrit :
Wanting to use the libav* libraries in a hybrid x86_64/arm64ec process
seems like something quite plausible though. Not something I'd go out of
my way to complicate other things to accomplish, but reasonable build
system tweaks to allow such builds sound tolerable to me.

Is it that plausible? That seems far less plausible than running a plain
x86_64 application on an Arm system. Especially for something performance
sensitive as FFmpeg, you would want a proper native port. Sure, you could very
well end up with slow x86 code due to "non-technical challenges" (euphemism
for the vendor not providing an Arm build or your IT department lagging
behind).

But realistically, you're not going to be able to replace an x86
libavcodec.dll with an AArch64 libavcodec.dll in such an x86 app. The chance
of finding the right build options to get a compatible ABI are pretty much
zero. In fact, they are very exactly zero because the libavutil ABI depends on
the ISA due notably to the CPU feature flags, configuration parameters, etc.

So this can only work if you have Arm64EC application code calling an
hypothetical Arm64EC libav*, but also calling x86 code on independent code
paths. Why would you not port the x86 code to Arm too (or run them in a
separate process)? That seems pretty fringe if not academic to me.


While I haven't gotten through adding the more newly-added external
libraries to the tedious mingw build guide, IIRC most/all of them
already can be built natively for AArch64, so I can't really think of a
publicly-available set of circumstances where someone would be linking
an x86-64 dependency into a native Arm instance of FFmpeg.

I could see it as trying to use x86-64 builds of AviSynth+, though.
That's LoadLibrary, and I either can't remember or haven't seen
anything that describes how the Arm64EC concept behaves when using
dynamic loading.

Yes, there is a native AArch64 Windows release of AviSynth+,
but there won't be one for Arm64EC, because we dropped support
for building with MSVC outside of x86(-64).  An llvm-mingw-built
Arm64EC core wouldn't be able to load MSVC-built x86-64 plugins.

So it wouldn't surprise me if people stubbornly refuse to use
the AArch64 release because they don't want to let go of a build
of a plugin that the plugin author only published for x86-64
(even if said plugin is FOSS).
_______________________________________________
ffmpeg-devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to