Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ Currently FFmpeg 9.0.1 is built with the following packages enabled for all plat
- png 1.6.58
- webp 1.6.0
- libvmaf 3.2.0
- x264 32c3b801191522961102d4bea292cdb61068d0dd (except armv7l)
- x265 4.2 (except armv7l)
- x264 b35605ace3ddf7c1a5d67a2eb553f034aef41d55 (except armv7l)
- x265 4.3

The following additional packages are also enabled on Linux:

Expand Down
24 changes: 24 additions & 0 deletions patches/x265.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
--- a/source/CMakeLists.txt
+++ b/source/CMakeLists.txt
@@ -47,7 +47,7 @@
string(TOLOWER "${CMAKE_SYSTEM_PROCESSOR}" SYSPROC)
endif()
set(X86_ALIASES x86 i386 i686 x86_64 amd64)
-set(ARM_ALIASES armv6l armv7l)
+set(ARM_ALIASES armv6l armv7l armv8l)
set(ARM64_ALIASES arm64 arm64e aarch64)
set(RISCV64_ALIASES riscv64)
set(LOONGARCH64_ALIASES loongarch64)
@@ -325,10 +325,10 @@
elseif(ARM)
find_package(Neon)
if(CPU_HAS_NEON)
- set(ARM_ARGS -mcpu=native -mfloat-abi=hard -mfpu=neon -marm -fPIC)
+ set(ARM_ARGS -march=armv7-a -mfloat-abi=hard -mfpu=neon -marm -fPIC)
add_definitions(-DHAVE_NEON)
else()
- set(ARM_ARGS -mcpu=native -mfloat-abi=hard -mfpu=vfp -marm)
+ set(ARM_ARGS -march=armv7-a -mfloat-abi=hard -mfpu=vfp -marm)
endif()
endif()
if(ARM64)
11 changes: 5 additions & 6 deletions scripts/build-ffmpeg.py
Original file line number Diff line number Diff line change
Expand Up @@ -180,11 +180,10 @@ def main():
"--enable-zlib",
]

# x264/x265 are skipped on 32-bit ARM (armv7)
# x264 is skipped on 32-bit ARM (armv7)
ffmpeg_package.build_arguments.append("--enable-libx265")
if not is_arm32:
ffmpeg_package.build_arguments.extend(
["--enable-libx264", "--enable-libx265"]
)
ffmpeg_package.build_arguments.append("--enable-libx264")

if use_cuda:
ffmpeg_package.build_arguments.extend(["--enable-nvenc", "--enable-nvdec"])
Expand Down Expand Up @@ -247,8 +246,8 @@ def main():
if use_gnutls:
packages += gnutls_group
if is_arm32:
# x264/x265 are not built on 32-bit ARM (armv7)
packages += [p for p in codec_group if p.name not in {"x264", "x265"}]
# x264 is not built on 32-bit ARM (armv7)
packages += [p for p in codec_group if p.name != "x264"]
else:
packages += codec_group
packages += [ffmpeg_package]
Expand Down
11 changes: 10 additions & 1 deletion scripts/cibuildpkg.py
Original file line number Diff line number Diff line change
Expand Up @@ -371,6 +371,15 @@ def _build_x265(self, package: Package) -> None:
if disable_sve:
flags_high_bits.append("-DENABLE_SVE2=OFF")

# x265 greps /proc/cpuinfo for NEON, which reports the aarch64 host's
# flags ("asimd") inside the 32-bit ARM container. Its NEON .S files are
# assembled regardless, so tell it NEON is there or they get -mfpu=vfp.
arm32_flags = (
["-DCPU_HAS_NEON=1"]
if platform.machine().lower() in {"armv7l", "armv8l", "arm"}
else []
)

x265_12bits = replace(
package,
build_dir="x265-12bits",
Expand Down Expand Up @@ -411,7 +420,7 @@ def _build_x265(self, package: Package) -> None:
"-DLINKED_10BIT=1",
"-DLINKED_12BIT=1",
"-DEXTRA_LINK_FLAGS=-L../x265-10bits -L../x265-12bits",
] + (["-DENABLE_SVE2=OFF"] if disable_sve else [])
] + (["-DENABLE_SVE2=OFF"] if disable_sve else []) + arm32_flags
self._build_with_cmake(package=package, for_builder=False)

def _extract(self, package: Package) -> None:
Expand Down
4 changes: 2 additions & 2 deletions scripts/pkg.py
Original file line number Diff line number Diff line change
Expand Up @@ -150,8 +150,8 @@ def __lt__(self, other):
),
Package(
name="x265",
source_url="https://bitbucket.org/multicoreware/x265_git/downloads/x265_4.2.tar.gz",
sha256="40b1ea0453e0309f0eba934e0ddf533f8f6295966679e8894e8f1c1c8d5e1210",
source_url="https://github.com/Multicorewareinc/x265/releases/download/4.3/x265_4.3.tar.gz",
sha256="83c53e4c8bbb8f1e33ed59e10a7d621d1d7801ca853910c3eb41f038b8ffb121",
build_system="cmake",
source_dir="source",
),
Expand Down
Loading