Files
chromebrew/packages/ffmpeg.rb
Satadru Pramanik, DO, MPH, MEng 36fb04d983 Rename libsdl2 => sdl2; Update sdl2; Add sdl2_compat package; Rebuild pkgconf to have pkg-config symlink; Update smallbasic. — libdex → 1.0.0,plutosvg → 0.0.7,plutovg → 1.3.1,py3_gitlint → 0.19.1,sdl2 → 2.32.10,sdl2_compat → 2.32.56,sdl3_image → 3.2.4,sysprof → 49.0,audaspace → 1.7.0,blender → 4.1.1,fceux → 2.6.5,ffmpeg → 7.1.1,flif → 0.4,gegl → 0.4.62,gstreamer → 1.26.6,jellyfin_media_player → 1.9.1-1,json_glib → 1.10.8,krita → 5.2.11,libfaudio → 25.09,libpanel → 1.10.2,libsdl2,libtiff → 4.7.1,libunistring → 1.4,love → 11.5,mjpegtools → 2.2.1,mpv → 0.40.0,opus → 1.5.2-1,pkgconf → 2.5.1-2,py3_numpy → 2.3.3,qemu → 9.1.1,sdl2_image → 2.8.8,sdl2_ttf → 2.24.0,sdl3_ttf → 3.2.2,smallbasic → 12.28,webrtc_audio_processing → 2.1,wxwidgets → 3.2.6-1,xorg_cf_files → 1.0.9,zip → 3.0-15 (#12997)
* Rename libsdl2 => sdl2; Update sdl2; Add sdl2_compat package; Rebuild pkgconf to have pkg-config symlink; Update smallbasic.

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Upstream binaries are missing, so delete extremetuxracer package.

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Add libdex, sysprof, and update webkit2gtk_4_1 deps.

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Add libsdl2 stub

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* revert webkit2gtk_4_1

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* lint

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* revert shotcut

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Add py3_gitlint.

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Update webrtc_audio_processing.

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* opus rebuild to get gstreamer build to see it.

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Add extremetuxracer to deprecated packages.

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Move gstreamer to stable branch.

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Match zip package homepage with that in anitya.

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Rebuild sysprof with gcc 15

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* xorg_cf_files => 1.0.9

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Update libunistring, libtiff

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Add plutovg, plutosvg, update sdl2_ttf, sdl3_ttf

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* update sdl2_image

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Add sdl3_image

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* libfaudio => 25.0.9

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* updater-smallbasic_12.28: Package File Update Run on linux/386 container.

* Add libfaudio binaries

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Rebuild zip.

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* update audaspace

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Removed libsdl2 stub package, changed libsdl2 deps to sdl2 deps in shotcut and freerdp.

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

---------

Signed-off-by: Satadru Pramanik <satadru@gmail.com>
Co-authored-by: satmandu <satmandu@users.noreply.github.com>
2025-09-30 18:06:57 +00:00

197 lines
6.3 KiB
Ruby

require 'package'
class Ffmpeg < Package
description 'Complete solution to record, convert and stream audio and video'
homepage 'https://ffmpeg.org/'
version '7.1.1'
license 'LGPL-2,1, GPL-2, GPL-3, and LGPL-3' # When changing ffmpeg's configure options, make sure this variable is still accurate.
compatibility 'aarch64 armv7l x86_64'
source_url 'https://git.ffmpeg.org/ffmpeg.git'
git_hashtag "n#{version}"
binary_compression 'tar.zst'
binary_sha256({
aarch64: '78088c53bd4f4a65117bfc563d5c86e7973b9c346d3f3152d96a4b7bda67b6ba',
armv7l: '78088c53bd4f4a65117bfc563d5c86e7973b9c346d3f3152d96a4b7bda67b6ba',
x86_64: '5c9de7400d706c246037e75375e51c93cb4da90f1c1603d1eb24a4402fbb93ed'
})
depends_on 'alsa_lib' # R
depends_on 'avisynthplus' # R
depends_on 'bzip2' # R
depends_on 'ccache' => :build
depends_on 'chromaprint' # ?
depends_on 'dav1d' # R
depends_on 'fontconfig' # R
depends_on 'freetype' # R
depends_on 'gcc_lib' # R
depends_on 'glibc' # R
depends_on 'gsm' # R
depends_on 'harfbuzz'
depends_on 'intel_media_sdk' if ARCH == 'x86_64' && CREW_IS_INTEL # R
depends_on 'jack' # R
depends_on 'ladspa' # ?
depends_on 'libaom' # R
depends_on 'libass' # R
depends_on 'libavc1394' # R
depends_on 'libbluray' # R
depends_on 'libdc1394' => :build
depends_on 'libdrm' # R
depends_on 'libfdk_aac' # R
depends_on 'libfrei0r' => :build
depends_on 'libglvnd' # R
depends_on 'libiec61883' # R
depends_on 'libjxl' # R
depends_on 'libmodplug' # R
depends_on 'libmp3lame' # R
depends_on 'libopencoreamr' # R
depends_on 'libraw1394' # R
depends_on 'sdl2' # R
depends_on 'libsoxr' # R
depends_on 'libssh' # R
depends_on 'libtheora' # R
depends_on 'libva' # R
depends_on 'libvdpau' # R
depends_on 'libvoamrwbenc' => :build
depends_on 'libvorbis' # R
depends_on 'libvpx' # R
depends_on 'libwebp' # R
depends_on 'libx11' # R
depends_on 'libx264' # R
depends_on 'libx265' # R
depends_on 'libxcb' # R
depends_on 'libxext' # R
depends_on 'libxml2' # R
depends_on 'libxvid' # R
depends_on 'libxv' # R
depends_on 'lilv' # R
depends_on 'nasm' => :build
depends_on 'openal' # ?
depends_on 'openjpeg' # R
depends_on 'openssl' # R
depends_on 'opus' # R
depends_on 'pipewire' # R
depends_on 'pulseaudio' # R
depends_on 'rav1e' # R
depends_on 'rtmpdump' # R
depends_on 'rubberband' # R
depends_on 'snappy' # R
depends_on 'speex' # R
depends_on 'srt' # R
depends_on 'tesseract' # R
depends_on 'v4l_utils' # R
depends_on 'vidstab' # R
depends_on 'vmaf' # R
depends_on 'wavpack' # ?
depends_on 'xzutils' # R
depends_on 'zeromq' # R
depends_on 'zimg' # R
depends_on 'zlib' # R
depends_on 'zvbi' # R
no_env_options if %w[aarch64 armv7l].include? ARCH
def self.patch
# Needed for qtwebengine compatibility.
downloader 'https://github.com/archlinux/svntogit-packages/raw/packages/ffmpeg/trunk/add-av_stream_get_first_dts-for-chromium.patch',
'57e26caced5a1382cb639235f9555fc50e45e7bf8333f7c9ae3d49b3241d3f77'
system 'patch -Np1 -i add-av_stream_get_first_dts-for-chromium.patch'
end
def self.build
case ARCH
when 'x86_64'
@arch_cflags = ''
when 'aarch64', 'armv7l'
@arch_cflags = '-mfloat-abi=hard -mthumb -mfpu=neon -march=armv7-a+fp'
end
# ChromeOS awk employs sandbox redirection protections which screw
# up configure script generation, so use mawk.
system "sed -i 's/awk/mawk/g' configure"
system "CFLAGS='#{CREW_ENV_OPTIONS_HASH['CFLAGS']} -flto=auto -fuse-ld=#{CREW_LINKER} #{@arch_cflags}' \
CXXFLAGS='#{CREW_ENV_OPTIONS_HASH['CXXFLAGS']} -flto=auto -fuse-ld=#{CREW_LINKER} #{@arch_cflags}' \
LDFLAGS='#{CREW_ENV_OPTIONS_HASH['LDFLAGS']} -flto=auto' \
./configure \
--arch=#{ARCH} \
--disable-debug \
--disable-doc \
--disable-iconv \
--enable-avfilter \
--enable-avisynth \
--enable-ffplay \
--enable-fontconfig \
--enable-frei0r \
--enable-gmp \
--enable-gpl \
--enable-ladspa \
--enable-libaom \
--enable-libass \
--enable-libbluray \
--enable-libdav1d \
--enable-libdrm \
--enable-libfdk-aac \
--enable-libfontconfig \
--enable-libfreetype \
--enable-libfribidi \
--enable-libgsm \
--enable-libiec61883 \
--enable-libjack \
--enable-libjxl \
--enable-libmodplug \
--enable-libmp3lame \
--enable-libopencore_amrnb \
--enable-libopencore_amrwb \
--enable-libopenjpeg \
--enable-libopus \
--enable-libpulse \
--enable-librav1e \
--enable-librtmp \
--enable-librubberband \
--enable-libsnappy \
--enable-libsoxr \
--enable-libspeex \
--enable-libsrt \
--enable-libssh \
--enable-libtesseract \
--enable-libtheora \
--enable-libv4l2 \
--enable-libvidstab \
--enable-libvmaf \
--enable-libvorbis \
--enable-libvpx \
--enable-libwebp \
--enable-libx264 \
--enable-libx265 \
--enable-libxcb \
--enable-libxml2 \
--enable-libxvid \
--enable-libzimg \
--enable-libzmq \
--enable-libzvbi \
--enable-lto \
--enable-lv2 \
--enable-lzma \
--enable-nonfree \
--enable-opengl \
--enable-openssl \
--enable-pthreads \
--enable-shared \
--enable-version3 \
--host-cflags='#{CREW_ENV_OPTIONS_HASH['CFLAGS']} -flto=auto -fuse-ld=#{CREW_LINKER} #{@arch_cflags}' \
--host-ldflags='#{CREW_ENV_OPTIONS_HASH['LDFLAGS']} -flto=auto' \
#{CREW_CONFIGURE_OPTIONS.sub(/--build=.*/, '').gsub('vfpv3-d16', 'neon').gsub('--disable-dependency-tracking', '').sub(/--program-prefix.*?(?=\s|$)/, '').sub(/--program-suffix.*?(?=\s|$)/, '')}"
system "env PATH=#{CREW_LIB_PREFIX}/ccache/bin:#{CREW_PREFIX}/bin:/usr/bin:/bin \
make -j#{CREW_NPROC}"
system 'make tools/qt-faststart'
system 'make doc/ffmpeg.1'
system 'make doc/ffplay.1'
end
def self.install
system 'make', "DESTDIR=#{CREW_DEST_DIR}", 'install'
FileUtils.install 'tools/qt-faststart', "#{CREW_DEST_PREFIX}/bin/", mode: 0o755
FileUtils.install Dir.glob('doc/ff*.1'), "#{CREW_DEST_MAN_PREFIX}/man1/", mode: 0o644
end
end