Compare commits

...

13 Commits

Author SHA1 Message Date
Gilver d49706c67c chore(fdk-aac): Track Bodhi (#12767) 2026-05-31 16:59:29 +08:00
Gilver 5a2ae5d8f9 fix(ffmpeg): Rebase onto Fedora spec (#12766) 2026-05-31 16:47:01 +08:00
Raboneko 94d95aeb3e bump(nightly): mpv-nightly winetricks-git libsingularity ghostty-nightly zed-nightly xray-nightly types-colorama v2ray-domain-list-community opentabletdriver-nightly glasgow graftcp-nightly 2026-05-31 04:13:02 +00:00
Raboneko 9b68dc6a85 bump: ruffle-nightly 2026-05-31 01:54:01 +00:00
Raboneko 2b135d92c4 bump: vicinae 2026-05-30 23:41:18 +00:00
Raboneko 846a35efce bump: rpcs3 uutils-coreutils-replace 2026-05-30 22:38:33 +00:00
Raboneko 93b06cde20 bump: rpcs3 2026-05-30 18:13:48 +00:00
Raboneko 9e22e6314b bump: pyfluidsynth 2026-05-30 17:03:48 +00:00
Raboneko 649969ad83 bump(branch): zig-master 2026-05-30 16:00:54 +00:00
Raboneko 010c248093 bump: zrythm 2026-05-30 15:50:59 +00:00
Raboneko bd0ac08fe0 bump: rpcs3 zig-master-bootstrap breeze-plus-icon-theme graftcp 2026-05-30 14:40:24 +00:00
Raboneko 3a5a28c3f0 bump: rpcs3 2026-05-30 11:46:51 +00:00
Raboneko 3452575926 bump: rpcs3 wine-staging 2026-05-30 10:12:10 +00:00
41 changed files with 2600 additions and 2875 deletions
+2 -2
View File
@@ -1,9 +1,9 @@
# Disable X11 for RHEL 10+
%bcond x11 %[%{undefined rhel} || 0%{?rhel} < 10]
%global commit 13a3e3ad0e7d21c0db7c85aab3c8f63b47f784d4
%global commit 74271a7d80f6c59185699d0d6d2d0b64bcbe90ae
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%global commit_date 20260529
%global commit_date 20260531
%global ver 0.41.0
Name: mpv-nightly
+1 -1
View File
@@ -1,4 +1,4 @@
%global ver 2026-05-30
%global ver 2026-05-31
%global goodver %(echo %ver | sed 's/-//g')
%global __brp_mangle_shebangs %{nil}
%bcond_without mold
+2 -2
View File
@@ -1,9 +1,9 @@
# Fedora sometimes sources the snapshots under stable versions and just bumps release
# For user clarity I have separated these into different packages
%global commit 14b802e419aff260b9d630e71027d88855e224e7
%global commit 08304e81f9ac9a83c552a6bd78689040d174bf95
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%global ver 20260125
%global commit_date 20260411
%global commit_date 20260531
Name: winetricks-git
Version: %{ver}^%{commit_date}git.%{shortcommit}
@@ -1,5 +1,5 @@
%global commit e6e501062dc6064dc4d77a20b4ccaa55cb1d5ef0
%global commit_date 20260529
%global commit 434d1d8bcf68058e8fd44db75bb1b468abaad3e3
%global commit_date 20260531
%global shortcommit %(c=%{commit}; echo ${c:0:7})
Name: libsingularity
@@ -1,6 +1,6 @@
%global commit c4eba3da38c629dbd4b8f770da3e0c605f2a7f53
%global commit 2c62d182cec246764ff725096a70b9ef44996f7f
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%global fulldate 2026-05-29
%global fulldate 2026-05-30
%global commit_date %(echo %{fulldate} | sed 's/-//g')
%global public_key RWQlAjJC23149WL2sEpT/l0QKy7hMIFhYdQOFy0Z7z7PbneUgvlsnYcV
%global ver 1.3.2
+2 -2
View File
@@ -1,6 +1,6 @@
%global commit e2e7a6769e693c843c82cea2dcf65917c139cc0f
%global commit 09165c15dc5d1fea93604231eaf30ca4c25f1cd6
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%global commit_date 20260530
%global commit_date 20260531
%global ver 1.6.0
%bcond_with check
+2 -2
View File
@@ -9,8 +9,8 @@
# GLIBCXX_ASSERTIONS is known to break RPCS3
%global build_cflags %(echo "%{__build_flags_lang_c}" | sed 's|-Wp,-D_GLIBCXX_ASSERTIONS ||g') %{?_distro_extra_cflags}
%global build_cxxflags %(echo "%{__build_flags_lang_cxx}" | sed 's|-Wp,-D_GLIBCXX_ASSERTIONS ||g') %{?_distro_extra_cflags}
%global commit 7c6b3dcdb9e63b319f06df2c4fd5798fbd25b32a
%global ver 0.0.40-19400
%global commit 1bd246d2d31cee65b867d93ff82993cec8f012cb
%global ver 0.0.40-19408
Name: rpcs3
Version: %(echo %{ver} | sed 's/-/^/g')
+2 -2
View File
@@ -1,7 +1,7 @@
%global commit d43a808ea50265383646d17321426b193594fb21
%global commit 455f6bc2d5915be0465d66fe6d7d06974c2729d3
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%global ver v26.3.27
%global commit_date 20260530
%global commit_date 20260531
%global goipath github.com/XTLS/Xray-core
Version: %{ver}^%{commit_date}git.%{shortcommit}
@@ -2,7 +2,7 @@
%global _desc Python bindings for FluidSynth.
Name: python-%{pypi_name}
Version: 1.3.6
Version: 1.4.0
Release: 1%{?dist}
Summary: Python bindings for FluidSynth
License: LGPL-2.1
@@ -1,5 +1,5 @@
%global commit d6fae5ce1f3c56bffae4a3120c47e5261ca4fd19
%global commit_date 20260530
%global commit 54bea668cb7c976500c1e1f890351c8cdaabd080
%global commit_date 20260531
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%global pypi_name types-colorama
+1 -1
View File
@@ -1,6 +1,6 @@
#!/usr/bin/bash
version=0.17.0-dev.420+8086ae176
version=0.17.0-dev.607+456b2ec07
mirrors=()
@@ -6,7 +6,7 @@
%define llvm_compat 22
%endif
%global llvm_version 22.0.0
%global ver 0.17.0-dev.420+8086ae176
%global ver 0.17.0-dev.607+456b2ec07
%bcond bootstrap 1
%bcond docs %{without bootstrap}
%bcond test 1
+1 -1
View File
@@ -18,7 +18,7 @@
%global zig_cache_dir %{builddir}/zig-cache
Name: zig-master
Version: 0.17.0~dev.420+8086ae176
Version: 0.17.0~dev.607+456b2ec07
Release: 2%{?dist}
Summary: Master builds of the Zig language
License: MIT AND NCSA AND LGPL-2.1-or-later AND LGPL-2.1-or-later WITH GCC-exception-2.0 AND GPL-2.0-or-later AND GPL-2.0-or-later WITH GCC-exception-2.0 AND BSD-3-Clause AND Inner-Net-2.0 AND ISC AND LicenseRef-Fedora-Public-Domain AND GFDL-1.1-or-later AND ZPL-2.1
+2 -2
View File
@@ -4,8 +4,8 @@ project pkg {
spec = "fdk-aac.spec"
}
labels {
mock=1
mock = 1
subrepo = "multimedia"
weekly = 1
updbranch = 1
}
}
+3 -1
View File
@@ -1 +1,3 @@
rpm.version(gh_tag("mstorsjo/fdk-aac"));
import "andax/bump_extras.rhai" as bump;
rpm.version(bump::bodhi("fdk-aac-free", bump::as_bodhi_ver(labels.branch)));
@@ -1,7 +1,7 @@
%global commit de37fe2bb9f03f1a13a9e61938d73f79951b791c
%global commit 971f4e2fb13ab9b1eb0f73dad370036b36316707
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%global ver 20260530034608
%global commit_date 20260530
%global ver 20260531040030
%global commit_date 20260531
Name: v2ray-domain-list-community
Version: %{ver}^%{commit_date}git.%{shortcommit}
+3
View File
@@ -0,0 +1,3 @@
# FFmpeg keys
ffmpeg-devel.asc
ffmpeg.keyring
+1 -1
View File
@@ -2,7 +2,7 @@ project pkg {
arches = ["x86_64", "aarch64", "i386"]
rpm {
spec = "ffmpeg.spec"
extra_repos = ["https://repos.fyralabs.com/terrarawhide-nvidia", "https://repos.fyralabs.com/terrarawhide-multimedia"]
extra_repos = ["https://repos.fyralabs.com/terrarawhide-multimedia"]
}
labels {
updbranch = 1
+479
View File
@@ -0,0 +1,479 @@
## module name # reason for enablement in ffmpeg (usually there is another package that already got legal review)
aac
aasc
libfdk_aac # fdk-aac-free
ac3
acelp_kelvin
adpcm_4xm
adpcm_adx
adpcm_afc
adpcm_agm
adpcm_aica
adpcm_argo
adpcm_ct
adpcm_dtk
adpcm_ea
adpcm_ea_maxis_xa
adpcm_ea_r1
adpcm_ea_r2
adpcm_ea_r3
adpcm_ea_xas
adpcm_g722
adpcm_g726
adpcm_g726le
adpcm_ima_acorn
adpcm_ima_alp
adpcm_ima_amv
adpcm_ima_apc
adpcm_ima_apm
adpcm_ima_cunning
adpcm_ima_dat4
adpcm_ima_dk3
adpcm_ima_dk4
adpcm_ima_ea_eacs
adpcm_ima_ea_sead
adpcm_ima_iss
adpcm_ima_moflex
adpcm_ima_mtf
adpcm_ima_oki
adpcm_ima_qt
adpcm_ima_rad
adpcm_ima_smjpeg
adpcm_ima_ssi
adpcm_ima_wav
adpcm_ima_ws
adpcm_ms
adpcm_mtaf
adpcm_psx
adpcm_sbpro_2
adpcm_sbpro_3
adpcm_sbpro_4
adpcm_swf
adpcm_thp
adpcm_thp_le
adpcm_vima
adpcm_xa
adpcm_xmd
adpcm_yamaha
adpcm_zork
aic
alac
alias_pix
amrnb
amrwb
amv
anm
ansi # trivial
anull
apac
ape
apng # animated png
apv
arbc
argo
ass # trivial
asv1
asv2
atrac1
atrac3
atrac3al
atrac3p
atrac3pal
aura
aura2
av1 # libaom
av1_qsv # libaom
bethsoftvid # trivial
bfi # trivial
bink
binkaudio_dct
binkaudio_rdft
bintext
bitpacked # trivial
bmp # trivial
bmv_audio
bmv_video
bonk
brender_pix
c93
cbd2_dpcm
ccaption
cdgraphics
cdtoons
cdxl
cinepak
clearvideo
cljr
cook
cpia
cscd
cyuv
dca
dds
derf_dpcm
dfa
dfpwm
dirac # dirac
dnxhd
dnxhr
dolby_e
dpx
dsd_lsbf
dsd_msbf
dsicinaudio
dsicinvideo
dss_sp
dvaudio
dvbsub
dvdsub
dvvideo
dxa
dxtory
eacmv
eamad
eatgq
eatgv
eatqi
eightbps
eightsvx_exp
eightsvx_fib
escape124
escape130
evrc
exr # openEXR
ffv1 # ffmpeg
ffvhuff # ffmpeg
ffwavesynth # pseudo
fits
flac # libFLAC
flashsv
flashsv2
flic
flv
fmvc
fourxm
ftr # fdk-aac
g723_1
g729
gdv
gem
gif # libpng
gremlin_dpcm
gsm # libgsm
gsm_ms
h261
h263
h263_v4l2m2m # hardware
h263i
h263p
hap
hca
hcom
hdr
hnm4_video
hq_hqa
hqx
huffyuv # trivial+zlib
hymt # huffyuv-mt
iac
idcin
idf
iff_ilbm
ilbc # ilbc
imc
indeo2
indeo3
indeo4
indeo5
interplay_acm
interplay_dpcm
interplay_video
ipu
jacosub
jpeg2000 # openjpeg2
jpegls
jv
kgv1
kmvc
lagarith
libaribb24 # aribb24
libaribcaption # libaribcaption
libaom # libaom
libaom_av1 # libaom
libcodec2 # codec2
libdav1d # av1
libgsm # libgsm
libgsm_ms # libgsm
libilbc # ilbc
libjxl # libjxl
liblc3 # liblc3
libopencore_amrnb # opencore-amr
libopencore_amrwb # opencore-amr
libopenh264 # openh264
libopenjpeg # openjpeg
libopus # opus
librsvg # librsvg
libschroedinger # schroedinger
libspeex # speex
libvorbis # libvorbis
libvpx_vp8 # libvpx
libvpx_vp9 # libvpx
libxevd
libzvbi_teletext # zvbi
loco
lscr
m101
mace3
mace6
mdec
media100
metasound
microdvd
mimic
misc4
mjpeg # mjpegtools
mjpeg_qsv # mjpegtools
mjpegb
mlp
mmvideo
motionpixels
movtext
mp1 # twolame/lame
mp1float # twolame/lame
mp2 # twolame
mp2float # twolame
mp3 # lame
mp3adu
mp3adufloat
mp3float # lame
mp3on4
mp3on4float
mpc7
mpc8
mpeg1_v4l2m2m
mpeg1video
mpeg2_qsv
mpeg2_v4l2m2m
mpeg2video
mpeg4
mpeg4_v4l2m2m # hardware
mpegvideo
mpl2
msa1
mscc
msmpeg4v1
msmpeg4v2
msmpeg4v3
msnsiren
msp2
msrle
mss1
msvideo1
mszh
mts2
mv30
mvc1
mvc2
mvdv
mvha
mwsc
mxpeg
nellymoser
nuv
on2avc
opus # libopus
paf_audio
paf_video
pam # trivial
pbm # trivial
pcm_alaw # trivial
pcm_bluray
pcm_dvd
pcm_f16le # trivial
pcm_f24le # trivial
pcm_f32be # trivial
pcm_f32le # trivial
pcm_f64be # trivial
pcm_f64le # trivial
pcm_lxf # trivial
pcm_mulaw # trivial
pcm_s16be # trivial
pcm_s16be_planar # trivial
pcm_s16le # trivial
pcm_s16le_planar # trivial
pcm_s24be # trivial
pcm_s24daud # trivial
pcm_s24le # trivial
pcm_s24le_planar # trivial
pcm_s32be # trivial
pcm_s32le # trivial
pcm_s32le_planar # trivial
pcm_s64be # trivial
pcm_s64le # trivial
pcm_s8 # trivial
pcm_s8_planar # trivial
pcm_sga # trivial
pcm_u16be # trivial
pcm_u16le # trivial
pcm_u24be # trivial
pcm_u24le # trivial
pcm_u32be # trivial
pcm_u32le # trivial
pcm_u8 # trivial
pcm_vidc # trivial
pcx
pfm # trivial
pgm # trivial
pgmyuv # trivial
pgssub # mkvtoolnix
pgx
phm # trivial
photocd
pictor
pjs
png # libpng
ppm # trivial
prores
prores_raw
prosumer
psd
ptx
qcelp
qdm2
qdmc
qdraw
qoa
qoi
qpeg
qtrle
r10k
r210
ra_144
ra_288
rasc
rawvideo # trivial
realtext
rka
rl2
roq
roq_dpcm
rpza
rscc
rv10
rv20
s302m
sami
sanm
sbc
screenpresso
sdx2_dpcm
sgi # trivial
sgirle # trivial
shorten
simbiosis_imx
sipr
siren
smackaud
smacker
smc
smvjpeg
snow
sol_dpcm
sonic
sp5x
speedhq
speex
srgc
srt # trivial
ssa # trivial
stl
subrip
subviewer
subviewer1
sunrast # trivial
svq1
svq3
tak
targa # trivial
targa_y216
tdsc
text # trivial
theora # libtheora
thp
tiertexseqvideo
tiff # libtiff
tmv
truehd
truemotion1
truemotion2
truemotion2rt
truespeech
tscc
tscc2
tta
twinvq
txd
ulti
utvideo
v210 # trivial
v210x # trivial
v308 # trivial
v408 # trivial
v410 # trivial
vb
vble
vcr1
vmdaudio
vmdvideo
vmnc
vnull
vorbis # libvorbis
vp3 # libav
vp4 # libav
vp5 # libav
vp6 # libav
vp6a # libav
vp6f # libav
vp7 # libav
vp8 # libvpx
vp8_qsv # libvpx
vp8_v4l2m2m # libvpx
vp9 # libvpx
vp9_qsv # libvpx
vp9_v4l2m2m # libvpx
vplayer
vqa
vqc
wady_dpcm
wavarc
wavpack
wbmp
wcmv
webp # libwebp
webvtt # trivial
wmav1
wmav2
wmavoice
wmv1
wmv2
wnv1
wrapped_avframe # passthrough
ws_snd1
xan_dpcm
xan_wc3
xan_wc4
xbin
xbm # trivial
xface
xl
xpm
xsub
xwd # xwd
y41p # trivial
ylc
yop
yuv4 # trivial
zero12v
zerocodec
zlib # zlib
zmbv # dosbox
+216
View File
@@ -0,0 +1,216 @@
## module name # reason for enablement in ffmpeg (usually there is another package that already got legal review)
a64multi
a64multi5
aac
libfdk_aac # fdk-aac-free
ac3
adpcm_adx
adpcm_argo
adpcm_g722
adpcm_g726
adpcm_g726le
adpcm_ima_alp
adpcm_ima_amv
adpcm_ima_apm
adpcm_ima_qt
adpcm_ima_ssi
adpcm_ima_wav
adpcm_ima_ws
adpcm_ms
adpcm_swf
adpcm_yamaha
alac
alias_pix
amv
anull
apng # libpng
ass # trivial
asv1
asv2
av1_amf
av1_nvenc
av1_qsv
av1_vaapi
bitpacked # trivial
bmp # trivial
cinepak
cljr
dca
dfpwm
dnxhd
dnxhr
dpx
dvbsub
dvdsub
dvvideo
exr
ffv1
ffvhuff # trivial+zlib
flac # libFLAC
flashsv
flashsv2
flv
g723_1
gif # libpng
h261
h263
h263_v4l2m2m # hardware
h263p
h264_amf # hardware
h264_nvenc # hardware
h264_qsv # hardware
h264_v4l2m2m # hardware
h264_vaapi # hardware
hap
hdr
hevc_amf # hardware
hevc_nvenc # hardware
hevc_qsv # hardware
hevc_v4l2m2m # hardware
hevc_vaapi # hardware
huffyuv # trivial+zlib
ilbc # ilbc
jpeg2000
jpegls
libaom
libaom_av1 # libaom
libcodec2 # codec2
libgsm # libgsm
libgsm_ms # libgsm
libilbc # ilbc
libjxl # libjxl
liblc3 # liblc3
libmp3lame # lame
liboapv
libopencore_amrnb
libopenh264 # openh264
libopenjpeg # openjpeg
libopus # opus
librav1e # rav1e
libspeex # speex
libsvtav1
libtheora # libtheora
libtwolame # twolame
libvo_amrwbenc
libvorbis # libvorbis
libvpx_vp8 # libvpx
libvpx_vp9 # libvpx
libwebp # libwebp
libwebp_anim # libwebp
libxeve
libxvid # xvidcore
mjpeg # mjpegtools
mjpeg_qsv # mjpegtools
mjpeg_vaapi # mjpegtools
mlp
movtext
mp2 # twolame
mp2fixed # twolame
mpeg1video
mpeg2_qsv
mpeg2_vaapi
mpeg2video
mpeg4
mpeg4_v4l2m2m # hardware
msmpeg4v2
msmpeg4v3
msvideo1
nellymoser
opus # opus
pam
pbm # trivial
pcm_alaw # trivial
pcm_f32be # trivial
pcm_f32le # trivial
pcm_f64be # trivial
pcm_f64le # trivial
pcm_mulaw # trivial
pcm_s16be # trivial
pcm_s16be_planar # trivial
pcm_s16le # trivial
pcm_s16le_planar # trivial
pcm_s24be # trivial
pcm_s24le # trivial
pcm_s24le_planar # trivial
pcm_s32be # trivial
pcm_s32le # trivial
pcm_s32le_planar # trivial
pcm_s8 # trivial
pcm_s8_planar # trivial
pcm_u16be # trivial
pcm_u16le # trivial
pcm_u24be # trivial
pcm_u24le # trivial
pcm_u32be # trivial
pcm_u32le # trivial
pcm_u8 # trivial
pcx
pgm # trivial
pgmyuv # trivial
phm # trivial
png # libpng
ppm # trivial
prores
prores_aw
prores_ks
qoi
qtrle
r10k # trivial
r210 # trivial
ra_144
rawvideo # trivial
roq
roq_dpcm
rpza
rv10
rv20
s302m
sbc
sgi # trivial
smc
snow
sonic
sonic_ls
speedhq
srt # trivial
ssa # trivial
subrip # trivial
sunrast # trivial
svq1
targa # trivial
text # trivial
tiff # libtiff
truehd
tta
ttml
utvideo
v210 # trivial
v308 # trivial
v408 # trivial
v410 # trivial
vc1_qsv # hardware
vc1_v4l2m2m # hardware
vc2 # dirac
vnull
vorbis # libvorbis
vp8_qsv # libvpx
vp8_v4l2m2m # libvpx
vp8_vaapi # libvpx
vp9_qsv # libvpx
vp9_vaapi # libvpx
wavpack
wbmp
webvtt # trivial
wmav1
wmav2
wmv1
wmv2
wrapped_avframe # passthrough
xbm # (X11)
xface
xsub
xwd # xwd
y41p # trivial
yuv4 # trivial
zlib # zlib
zmbv # dosbox
File diff suppressed because it is too large Load Diff
@@ -1,42 +0,0 @@
diff -Naur ffmpeg-7.1.2.old/libavcodec/lcevcdec.c ffmpeg-7.1.2/libavcodec/lcevcdec.c
--- ffmpeg-7.1.2.old/libavcodec/lcevcdec.c 2025-10-27 10:07:00.369472051 +0100
+++ ffmpeg-7.1.2/libavcodec/lcevcdec.c 2025-10-27 10:07:01.223246583 +0100
@@ -139,7 +139,7 @@
if (!sd)
return 1;
- res = LCEVC_SendDecoderEnhancementData(lcevc->decoder, in->pts, 0, sd->data, sd->size);
+ res = LCEVC_SendDecoderEnhancementData(lcevc->decoder, (uint64_t) in->pts, sd->data, sd->size);
if (res != LCEVC_Success)
return AVERROR_EXTERNAL;
@@ -147,7 +147,7 @@
if (ret < 0)
return ret;
- res = LCEVC_SendDecoderBase(lcevc->decoder, in->pts, 0, picture, -1, NULL);
+ res = LCEVC_SendDecoderBase(lcevc->decoder, (uint64_t) in->pts, picture, -1, NULL);
if (res != LCEVC_Success)
return AVERROR_EXTERNAL;
diff -Naur ffmpeg-7.1.2.old/libavfilter/vf_lcevc.c ffmpeg-7.1.2/libavfilter/vf_lcevc.c
--- ffmpeg-7.1.2.old/libavfilter/vf_lcevc.c 2025-10-27 10:07:00.732521928 +0100
+++ ffmpeg-7.1.2/libavfilter/vf_lcevc.c 2025-10-27 10:07:01.223846623 +0100
@@ -139,7 +139,7 @@
return ret;
if (sd) {
- res = LCEVC_SendDecoderEnhancementData(lcevc->decoder, in->pts, 0, sd->data, sd->size);
+ res = LCEVC_SendDecoderEnhancementData(lcevc->decoder, (uint64_t) in->pts, sd->data, sd->size);
if (res == LCEVC_Again)
return AVERROR(EAGAIN);
else if (res != LCEVC_Success) {
@@ -148,7 +148,7 @@
}
}
- res = LCEVC_SendDecoderBase(lcevc->decoder, in->pts, 0, picture, -1, in);
+ res = LCEVC_SendDecoderBase(lcevc->decoder, (uint64_t) in->pts, picture, -1, in);
if (res != LCEVC_Success) {
av_log(ctx, AV_LOG_ERROR, "LCEVC_SendDecoderBase failed\n");
LCEVC_FreePicture(lcevc->decoder, picture);
@@ -0,0 +1,33 @@
From 26eb0232fa41d603a2f016faf5610de79f694c02 Mon Sep 17 00:00:00 2001
From: Andreas Schneider <asn@cryptomilk.org>
Date: Sun, 10 May 2026 00:10:38 +0200
Subject: [PATCH] fdk-aac-free-devel is GPL compatible
See https://bugzilla.redhat.com/show_bug.cgi?id=1501522#c112
---
configure | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure b/configure
index 1759694..6cf4f08 100755
--- a/configure
+++ b/configure
@@ -2003,7 +2003,6 @@ EXTERNAL_LIBRARY_GPL_LIST="
EXTERNAL_LIBRARY_NONFREE_LIST="
decklink
- libfdk_aac
libmpeghdec
"
@@ -2044,6 +2043,7 @@ EXTERNAL_LIBRARY_LIST="
libcodec2
libdav1d
libdc1394
+ libfdk_aac
libflite
libfontconfig
libfreetype
--
2.54.0
+28 -13
View File
@@ -1,31 +1,46 @@
diff -Naur ffmpeg-7.1.2.old/libavformat/avformat.h ffmpeg-7.1.2/libavformat/avformat.h
--- ffmpeg-7.1.2.old/libavformat/avformat.h 2025-10-27 10:07:00.895476692 +0100
+++ ffmpeg-7.1.2/libavformat/avformat.h 2025-10-27 10:07:01.866348795 +0100
@@ -1202,6 +1202,10 @@
From d32aacab65a322b66d6a1b48f6cdb03e42bde0f9 Mon Sep 17 00:00:00 2001
From: Frank Liberato <liberato@chromium.org>
Date: Wed, 7 Jul 2021 19:01:22 -0700
Subject: [PATCH] Add av_stream_get_first_dts for Chromium
---
libavformat/avformat.h | 4 ++++
libavformat/utils.c | 7 +++++++
2 files changed, 11 insertions(+)
diff --git a/libavformat/avformat.h b/libavformat/avformat.h
index 1916aa2dc5..e6682849fa 100644
--- a/libavformat/avformat.h
+++ b/libavformat/avformat.h
@@ -1170,6 +1170,10 @@ typedef struct AVStreamGroup {
struct AVCodecParserContext *av_stream_get_parser(const AVStream *s);
+// Chromium: We use the internal field first_dts vvv
+int64_t av_stream_get_first_dts(const AVStream *st);
+// Chromium: We use the internal field first_dts ^^^
+
#define AV_PROGRAM_RUNNING 1
/**
diff -Naur ffmpeg-7.1.2.old/libavformat/utils.c ffmpeg-7.1.2/libavformat/utils.c
--- ffmpeg-7.1.2.old/libavformat/utils.c 2025-10-27 10:07:00.899476727 +0100
+++ ffmpeg-7.1.2/libavformat/utils.c 2025-10-27 10:07:01.866992658 +0100
@@ -44,6 +44,13 @@
diff --git a/libavformat/utils.c b/libavformat/utils.c
index cf4d68bff9..7d750abf88 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -56,6 +56,13 @@ int ff_unlock_avformat(void)
* various utility functions for use within FFmpeg
*/
+// Chromium: We use the internal field first_dts vvv
+int64_t av_stream_get_first_dts(const AVStream *st)
+{
+ return cffstream(st)->first_dts;
+ return cffstream(st)->first_dts;
+}
+// Chromium: We use the internal field first_dts ^^^
+
/* an arbitrarily chosen "sane" max packet size -- 50M */
#define SANE_CHUNK_SIZE (50000000)
--
2.41.0
@@ -0,0 +1,58 @@
From: Jan Engelhardt <jengelh@inai.de>
Edit the default codec selection such that
ffmpeg -i youtube.blah.webm foobar.mkv
without any further arguments can produce a result even on a
reduced codec selection list.
---
libavformat/matroskaenc.c | 20 ++++++++++++++------
1 file changed, 14 insertions(+), 6 deletions(-)
Index: ffmpeg-7.0/libavformat/matroskaenc.c
===================================================================
--- ffmpeg-7.0.orig/libavformat/matroskaenc.c
+++ ffmpeg-7.0/libavformat/matroskaenc.c
@@ -3540,16 +3540,25 @@ static int mkv_query_codec(enum AVCodecI
return 0;
}
+#define PREFAUDIO \
+ CONFIG_LIBOPUS_ENCODER ? AV_CODEC_ID_OPUS : \
+ CONFIG_AAC_ENCODER ? AV_CODEC_ID_AAC : \
+ CONFIG_VORBIS_ENCODER ? AV_CODEC_ID_VORBIS : \
+ AV_CODEC_ID_AC3
+
const FFOutputFormat ff_matroska_muxer = {
.p.name = "matroska",
.p.long_name = NULL_IF_CONFIG_SMALL("Matroska"),
.p.mime_type = "video/x-matroska",
.p.extensions = "mkv",
.priv_data_size = sizeof(MatroskaMuxContext),
- .p.audio_codec = CONFIG_LIBVORBIS_ENCODER ?
- AV_CODEC_ID_VORBIS : AV_CODEC_ID_AC3,
- .p.video_codec = CONFIG_LIBX264_ENCODER ?
- AV_CODEC_ID_H264 : AV_CODEC_ID_MPEG4,
+ .p.audio_codec = PREFAUDIO,
+ .p.video_codec =
+ CONFIG_LIBVPX_VP9_ENCODER ? AV_CODEC_ID_VP9 : \
+ CONFIG_LIBX264_ENCODER ? AV_CODEC_ID_H264 : \
+ CONFIG_LIBVPX_VP8_ENCODER ? AV_CODEC_ID_VP8 : \
+ CONFIG_MPEG4_ENCODER ? AV_CODEC_ID_MPEG4 : \
+ AV_CODEC_ID_THEORA,
.init = mkv_init,
.deinit = mkv_deinit,
.write_header = mkv_write_header,
@@ -3617,8 +3626,7 @@ const FFOutputFormat ff_matroska_audio_m
.p.mime_type = "audio/x-matroska",
.p.extensions = "mka",
.priv_data_size = sizeof(MatroskaMuxContext),
- .p.audio_codec = CONFIG_LIBVORBIS_ENCODER ?
- AV_CODEC_ID_VORBIS : AV_CODEC_ID_AC3,
+ .p.audio_codec = PREFAUDIO,
.p.video_codec = AV_CODEC_ID_NONE,
.init = mkv_init,
.deinit = mkv_deinit,
@@ -1,13 +0,0 @@
diff -Naur ffmpeg-7.1.2.old/configure ffmpeg-7.1.2/configure
--- ffmpeg-7.1.2.old/configure 2025-10-27 10:07:02.273543997 +0100
+++ ffmpeg-7.1.2/configure 2025-10-27 10:07:02.276510125 +0100
@@ -4710,6 +4710,9 @@
if $nvcc $nvccflags_default 2>&1 | grep -qi unsupported; then
nvccflags_default="-gencode arch=compute_60,code=sm_60 -O2"
fi
+ if $nvcc $nvccflags_default 2>&1 | grep -qi unsupported; then
+ nvccflags_default="-gencode arch=compute_75,code=sm_75 -O2"
+ fi
fi
set_default arch cc cxx doxygen pkg_config ranlib strip sysinclude \
@@ -1,454 +0,0 @@
diff -Naur ffmpeg-7.1.2.old/doc/outdevs.texi ffmpeg-7.1.2/doc/outdevs.texi
--- ffmpeg-7.1.2.old/doc/outdevs.texi 2025-10-27 10:07:00.979477433 +0100
+++ ffmpeg-7.1.2/doc/outdevs.texi 2025-10-27 10:07:02.002148270 +0100
@@ -240,6 +240,10 @@
outgoing VANC data will be dropped.
Defaults to @samp{1048576}.
+@item block_until_available
+Retries output if device appears unavailable. Retry rate is 60 times a second.
+Defaults to @option{0}.
+
@end table
@subsection Examples
diff -Naur ffmpeg-7.1.2.old/fftools/ffmpeg_sched.c ffmpeg-7.1.2/fftools/ffmpeg_sched.c
--- ffmpeg-7.1.2.old/fftools/ffmpeg_sched.c 2025-10-27 10:07:01.220479559 +0100
+++ ffmpeg-7.1.2/fftools/ffmpeg_sched.c 2025-10-27 10:07:02.002549025 +0100
@@ -22,6 +22,7 @@
#include <stdatomic.h>
#include <stddef.h>
#include <stdint.h>
+#include <unistd.h>
#include "cmdutils.h"
#include "ffmpeg_sched.h"
diff -Naur ffmpeg-7.1.2.old/libavdevice/decklink_common_c.h ffmpeg-7.1.2/libavdevice/decklink_common_c.h
--- ffmpeg-7.1.2.old/libavdevice/decklink_common_c.h 2025-10-27 10:07:00.829476109 +0100
+++ ffmpeg-7.1.2/libavdevice/decklink_common_c.h 2025-10-27 10:07:02.003002589 +0100
@@ -74,6 +74,7 @@
int64_t timestamp_align;
int timing_offset;
int wait_for_tc;
+ int block_until_available;
DecklinkSignalLossAction signal_loss_action;
};
diff -Naur ffmpeg-7.1.2.old/libavdevice/decklink_common.cpp ffmpeg-7.1.2/libavdevice/decklink_common.cpp
--- ffmpeg-7.1.2.old/libavdevice/decklink_common.cpp 2025-10-27 10:07:00.828476101 +0100
+++ ffmpeg-7.1.2/libavdevice/decklink_common.cpp 2025-10-27 10:07:02.003115933 +0100
@@ -25,7 +25,7 @@
#include "libavformat/internal.h"
}
-#include <DeckLinkAPI.h>
+#include <DeckLinkAPI_v14_2_1.h>
#ifdef _WIN32
#include <DeckLinkAPI_i.c>
#else
@@ -53,6 +53,7 @@
#include "decklink_common.h"
+
static IDeckLinkIterator *decklink_create_iterator(AVFormatContext *avctx)
{
IDeckLinkIterator *iter;
@@ -512,8 +513,8 @@
return AVERROR(EIO);
while (ret == 0 && iter->Next(&dl) == S_OK) {
- IDeckLinkOutput *output_config;
- IDeckLinkInput *input_config;
+ IDeckLinkOutput_v14_2_1 *output_config;
+ IDeckLinkInput_v14_2_1 *input_config;
const char *display_name = NULL;
const char *unique_name = NULL;
AVDeviceInfo *new_device = NULL;
@@ -527,14 +528,14 @@
goto next;
if (show_outputs) {
- if (dl->QueryInterface(IID_IDeckLinkOutput, (void **)&output_config) == S_OK) {
+ if (dl->QueryInterface(IID_IDeckLinkOutput_v14_2_1, (void **)&output_config) == S_OK) {
output_config->Release();
add = 1;
}
}
if (show_inputs) {
- if (dl->QueryInterface(IID_IDeckLinkInput, (void **)&input_config) == S_OK) {
+ if (dl->QueryInterface(IID_IDeckLinkInput_v14_2_1, (void **)&input_config) == S_OK) {
input_config->Release();
add = 1;
}
diff -Naur ffmpeg-7.1.2.old/libavdevice/decklink_common.h ffmpeg-7.1.2/libavdevice/decklink_common.h
--- ffmpeg-7.1.2.old/libavdevice/decklink_common.h 2025-10-27 10:07:00.831476127 +0100
+++ ffmpeg-7.1.2/libavdevice/decklink_common.h 2025-10-27 10:07:02.003408083 +0100
@@ -93,8 +93,8 @@
struct decklink_ctx {
/* DeckLink SDK interfaces */
IDeckLink *dl;
- IDeckLinkOutput *dlo;
- IDeckLinkInput *dli;
+ IDeckLinkOutput_v14_2_1 *dlo;
+ IDeckLinkInput_v14_2_1 *dli;
IDeckLinkConfiguration *cfg;
IDeckLinkProfileAttributes *attr;
decklink_output_callback *output_callback;
@@ -134,7 +134,6 @@
AVStream *klv_st;
AVStream *teletext_st;
uint16_t cdp_sequence_num;
-
/* Options */
int list_devices;
int list_formats;
@@ -149,13 +148,16 @@
BMDPixelFormat raw_format;
DecklinkSignalLossAction signal_loss_action;
+
int frames_preroll;
int frames_buffer;
pthread_mutex_t mutex;
pthread_cond_t cond;
int frames_buffer_available_spots;
+ int outstanding_frames;
int autodetect;
+ int block_until_available;
#if CONFIG_LIBKLVANC
struct klvanc_context_s *vanc_ctx;
@@ -249,3 +251,4 @@
int64_t ff_decklink_packet_queue_peekpts(DecklinkPacketQueue *q);
#endif /* AVDEVICE_DECKLINK_COMMON_H */
+
diff -Naur ffmpeg-7.1.2.old/libavdevice/decklink_dec.cpp ffmpeg-7.1.2/libavdevice/decklink_dec.cpp
--- ffmpeg-7.1.2.old/libavdevice/decklink_dec.cpp 2025-10-27 10:07:00.828476101 +0100
+++ ffmpeg-7.1.2/libavdevice/decklink_dec.cpp 2025-10-27 10:07:02.003669356 +0100
@@ -31,7 +31,7 @@
#include "libavformat/internal.h"
}
-#include <DeckLinkAPI.h>
+#include <DeckLinkAPI_v14_2_1.h>
extern "C" {
#include "config.h"
@@ -56,6 +56,7 @@
#include "decklink_common.h"
#include "decklink_dec.h"
+extern bool operator==(const REFIID& me, const REFIID& other);
#define MAX_WIDTH_VANC 1920
const BMDDisplayMode AUTODETECT_DEFAULT_MODE = bmdModeNTSC;
@@ -105,13 +106,13 @@
{bmdModeUnknown, 0, -1, -1, -1}
};
-class decklink_allocator : public IDeckLinkMemoryAllocator
+class decklink_allocator : public IDeckLinkMemoryAllocator_v14_2_1
{
public:
decklink_allocator(): _refs(1) { }
virtual ~decklink_allocator() { }
- // IDeckLinkMemoryAllocator methods
+ // IDeckLinkMemoryAllocator_v14_2_1 methods
virtual HRESULT STDMETHODCALLTYPE AllocateBuffer(unsigned int bufferSize, void* *allocatedBuffer)
{
void *buf = av_malloc(bufferSize + AV_INPUT_BUFFER_PADDING_SIZE);
@@ -129,7 +130,15 @@
virtual HRESULT STDMETHODCALLTYPE Decommit() { return S_OK; }
// IUnknown methods
- virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, LPVOID *ppv) { return E_NOINTERFACE; }
+ virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, LPVOID *ppv)
+ {
+ if (iid == IID_IDeckLinkMemoryAllocator_v14_2_1) {
+ *ppv = (IDeckLinkMemoryAllocator_v14_2_1*)this;
+ AddRef();
+ return S_OK;
+ }
+ return E_NOINTERFACE;
+ }
virtual ULONG STDMETHODCALLTYPE AddRef(void) { return ++_refs; }
virtual ULONG STDMETHODCALLTYPE Release(void)
{
@@ -472,7 +481,7 @@
}
-static void handle_klv(AVFormatContext *avctx, decklink_ctx *ctx, IDeckLinkVideoInputFrame *videoFrame, int64_t pts)
+static void handle_klv(AVFormatContext *avctx, decklink_ctx *ctx, IDeckLinkVideoInputFrame_v14_2_1 *videoFrame, int64_t pts)
{
const uint8_t KLV_DID = 0x44;
const uint8_t KLV_IN_VANC_SDID = 0x04;
@@ -574,17 +583,25 @@
}
}
-class decklink_input_callback : public IDeckLinkInputCallback
+class decklink_input_callback : public IDeckLinkInputCallback_v14_2_1
{
public:
explicit decklink_input_callback(AVFormatContext *_avctx);
~decklink_input_callback();
- virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, LPVOID *ppv) { return E_NOINTERFACE; }
+ virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, LPVOID *ppv)
+ {
+ if (iid == IID_IDeckLinkInputCallback_v14_2_1) {
+ *ppv = (IDeckLinkInputCallback_v14_2_1*)this;
+ AddRef();
+ return S_OK;
+ }
+ return E_NOINTERFACE;
+ }
virtual ULONG STDMETHODCALLTYPE AddRef(void);
virtual ULONG STDMETHODCALLTYPE Release(void);
virtual HRESULT STDMETHODCALLTYPE VideoInputFormatChanged(BMDVideoInputFormatChangedEvents, IDeckLinkDisplayMode*, BMDDetectedVideoInputFormatFlags);
- virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived(IDeckLinkVideoInputFrame*, IDeckLinkAudioInputPacket*);
+ virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived(IDeckLinkVideoInputFrame_v14_2_1*, IDeckLinkAudioInputPacket*);
private:
std::atomic<int> _refs;
@@ -593,7 +610,7 @@
int no_video;
int64_t initial_video_pts;
int64_t initial_audio_pts;
- IDeckLinkVideoInputFrame* last_video_frame;
+ IDeckLinkVideoInputFrame_v14_2_1* last_video_frame;
};
decklink_input_callback::decklink_input_callback(AVFormatContext *_avctx) : _refs(1)
@@ -625,7 +642,7 @@
return ret;
}
-static int64_t get_pkt_pts(IDeckLinkVideoInputFrame *videoFrame,
+static int64_t get_pkt_pts(IDeckLinkVideoInputFrame_v14_2_1 *videoFrame,
IDeckLinkAudioInputPacket *audioFrame,
int64_t wallclock,
int64_t abs_wallclock,
@@ -679,7 +696,7 @@
return pts;
}
-static int get_bmd_timecode(AVFormatContext *avctx, AVTimecode *tc, AVRational frame_rate, BMDTimecodeFormat tc_format, IDeckLinkVideoInputFrame *videoFrame)
+static int get_bmd_timecode(AVFormatContext *avctx, AVTimecode *tc, AVRational frame_rate, BMDTimecodeFormat tc_format, IDeckLinkVideoInputFrame_v14_2_1 *videoFrame)
{
IDeckLinkTimecode *timecode;
int ret = AVERROR(ENOENT);
@@ -701,7 +718,7 @@
return ret;
}
-static int get_frame_timecode(AVFormatContext *avctx, decklink_ctx *ctx, AVTimecode *tc, IDeckLinkVideoInputFrame *videoFrame)
+static int get_frame_timecode(AVFormatContext *avctx, decklink_ctx *ctx, AVTimecode *tc, IDeckLinkVideoInputFrame_v14_2_1 *videoFrame)
{
AVRational frame_rate = ctx->video_st->r_frame_rate;
int ret;
@@ -726,7 +743,7 @@
}
HRESULT decklink_input_callback::VideoInputFrameArrived(
- IDeckLinkVideoInputFrame *videoFrame, IDeckLinkAudioInputPacket *audioFrame)
+ IDeckLinkVideoInputFrame_v14_2_1 *videoFrame, IDeckLinkAudioInputPacket *audioFrame)
{
void *frameBytes;
void *audioFrameBytes;
@@ -1141,7 +1158,7 @@
goto error;
/* Get input device. */
- if (ctx->dl->QueryInterface(IID_IDeckLinkInput, (void **) &ctx->dli) != S_OK) {
+ if (ctx->dl->QueryInterface(IID_IDeckLinkInput_v14_2_1, (void **) &ctx->dli) != S_OK) {
av_log(avctx, AV_LOG_ERROR, "Could not open input device from '%s'\n",
avctx->url);
ret = AVERROR(EIO);
diff -Naur ffmpeg-7.1.2.old/libavdevice/decklink_enc_c.c ffmpeg-7.1.2/libavdevice/decklink_enc_c.c
--- ffmpeg-7.1.2.old/libavdevice/decklink_enc_c.c 2025-10-27 10:07:00.833476145 +0100
+++ ffmpeg-7.1.2/libavdevice/decklink_enc_c.c 2025-10-27 10:07:02.004050964 +0100
@@ -32,6 +32,7 @@
{ "list_devices", "use ffmpeg -sinks decklink instead", OFFSET(list_devices), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, ENC | AV_OPT_FLAG_DEPRECATED},
{ "list_formats", "list supported formats" , OFFSET(list_formats), AV_OPT_TYPE_INT , { .i64 = 0 }, 0, 1, ENC },
{ "preroll" , "video preroll in seconds", OFFSET(preroll ), AV_OPT_TYPE_DOUBLE, { .dbl = 0.5 }, 0, 5, ENC },
+ { "block_until_available", "wait for device to become available instead of raising error", OFFSET(block_until_available), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, ENC },
{ "vanc_queue_size", "VANC queue buffer size", OFFSET(vanc_queue_size), AV_OPT_TYPE_INT64, { .i64 = (1024 * 1024)}, 0, INT64_MAX, ENC },
#if BLACKMAGIC_DECKLINK_API_VERSION >= 0x0b000000
{ "duplex_mode" , "duplex mode" , OFFSET(duplex_mode ), AV_OPT_TYPE_INT , { .i64 = 0 }, 0, 5, ENC, .unit = "duplex_mode"},
diff -Naur ffmpeg-7.1.2.old/libavdevice/decklink_enc.cpp ffmpeg-7.1.2/libavdevice/decklink_enc.cpp
--- ffmpeg-7.1.2.old/libavdevice/decklink_enc.cpp 2025-10-27 10:07:00.832476136 +0100
+++ ffmpeg-7.1.2/libavdevice/decklink_enc.cpp 2025-10-27 10:07:02.004296918 +0100
@@ -20,6 +20,8 @@
*/
#include <atomic>
+#include <unistd.h>
+
using std::atomic;
/* Include internal.h first to avoid conflict between winsock.h (used by
@@ -28,7 +30,7 @@
#include "libavformat/internal.h"
}
-#include <DeckLinkAPI.h>
+#include <DeckLinkAPI_v14_2_1.h>
extern "C" {
#include "libavformat/avformat.h"
@@ -47,8 +49,26 @@
#include "libklvanc/pixels.h"
#endif
+extern bool operator==(const REFIID& me, const REFIID& other){
+ return me.byte0 == other.byte0 &&
+ me.byte1 == other.byte1 &&
+ me.byte2 == other.byte2 &&
+ me.byte3 == other.byte3 &&
+ me.byte4 == other.byte4 &&
+ me.byte5 == other.byte5 &&
+ me.byte6 == other.byte6 &&
+ me.byte7 == other.byte7 &&
+ me.byte8 == other.byte8 &&
+ me.byte9 == other.byte9 &&
+ me.byte10 == other.byte10 &&
+ me.byte11 == other.byte11 &&
+ me.byte12 == other.byte12 &&
+ me.byte13 == other.byte13 &&
+ me.byte14 == other.byte14 &&
+ me.byte15 == other.byte15;
+}
/* DeckLink callback class declaration */
-class decklink_frame : public IDeckLinkVideoFrame
+class decklink_frame : public IDeckLinkVideoFrame_v14_2_1
{
public:
decklink_frame(struct decklink_ctx *ctx, AVFrame *avframe, AVCodecID codec_id, int height, int width) :
@@ -111,7 +131,16 @@
_ancillary->AddRef();
return S_OK;
}
- virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, LPVOID *ppv) { return E_NOINTERFACE; }
+ virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, LPVOID *ppv)
+ {
+ if (iid == IID_IDeckLinkVideoFrame_v14_2_1)
+ {
+ *ppv = (IDeckLinkVideoFrame_v14_2_1*)this;
+ AddRef();
+ return S_OK;
+ }
+ return E_NOINTERFACE;
+ }
virtual ULONG STDMETHODCALLTYPE AddRef(void) { return ++_refs; }
virtual ULONG STDMETHODCALLTYPE Release(void)
{
@@ -138,10 +167,10 @@
std::atomic<int> _refs;
};
-class decklink_output_callback : public IDeckLinkVideoOutputCallback
+class decklink_output_callback : public IDeckLinkVideoOutputCallback_v14_2_1
{
public:
- virtual HRESULT STDMETHODCALLTYPE ScheduledFrameCompleted(IDeckLinkVideoFrame *_frame, BMDOutputFrameCompletionResult result)
+ virtual HRESULT STDMETHODCALLTYPE ScheduledFrameCompleted(IDeckLinkVideoFrame_v14_2_1 *_frame, BMDOutputFrameCompletionResult result)
{
decklink_frame *frame = static_cast<decklink_frame *>(_frame);
struct decklink_ctx *ctx = frame->_ctx;
@@ -155,11 +184,22 @@
ctx->frames_buffer_available_spots++;
pthread_cond_broadcast(&ctx->cond);
pthread_mutex_unlock(&ctx->mutex);
-
+ pthread_mutex_lock(&ctx->mutex);
+ ctx->outstanding_frames--;
+ pthread_mutex_unlock(&ctx->mutex);
return S_OK;
}
virtual HRESULT STDMETHODCALLTYPE ScheduledPlaybackHasStopped(void) { return S_OK; }
- virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, LPVOID *ppv) { return E_NOINTERFACE; }
+ virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, LPVOID *ppv)
+ {
+ if (iid == IID_IDeckLinkVideoOutputCallback_v14_2_1)
+ {
+ *ppv = (IDeckLinkVideoOutputCallback_v14_2_1*)this;
+ AddRef();
+ return S_OK;
+ }
+ return E_NOINTERFACE;
+ }
virtual ULONG STDMETHODCALLTYPE AddRef(void) { return 1; }
virtual ULONG STDMETHODCALLTYPE Release(void) { return 1; }
};
@@ -204,9 +244,14 @@
av_log(avctx, AV_LOG_WARNING, "Could not enable video output with VANC! Trying without...\n");
ctx->supports_vanc = 0;
}
- if (!ctx->supports_vanc && ctx->dlo->EnableVideoOutput(ctx->bmd_mode, bmdVideoOutputFlagDefault) != S_OK) {
- av_log(avctx, AV_LOG_ERROR, "Could not enable video output!\n");
- return -1;
+ while (!ctx->supports_vanc && ctx->dlo->EnableVideoOutput(ctx->bmd_mode, bmdVideoOutputFlagDefault) != S_OK) {
+ if (!ctx->block_until_available) {
+ av_log(avctx, AV_LOG_ERROR, "Could not enable video output!\n");
+ return -1;
+ };
+ av_log(avctx, AV_LOG_WARNING, "Could not enable video output, waiting for device...\n");
+ usleep(1000000 / 60);
+ continue;
}
/* Set callback. */
@@ -370,6 +415,10 @@
struct decklink_cctx *cctx = (struct decklink_cctx *)avctx->priv_data;
struct decklink_ctx *ctx = (struct decklink_ctx *)cctx->ctx;
+ av_log(avctx, AV_LOG_DEBUG, "Wating for %d outstanding frames to return their results\n", ctx->outstanding_frames);
+ while (ctx->outstanding_frames > 0){
+ usleep(1);
+ }
if (ctx->playback_started) {
BMDTimeValue actual;
ctx->dlo->StopScheduledPlayback(ctx->last_pts * ctx->bmd_tb_num,
@@ -739,7 +788,7 @@
ctx->first_pts = pkt->pts;
/* Schedule frame for playback. */
- hr = ctx->dlo->ScheduleVideoFrame((class IDeckLinkVideoFrame *) frame,
+ hr = ctx->dlo->ScheduleVideoFrame((class IDeckLinkVideoFrame_v14_2_1 *) frame,
pkt->pts * ctx->bmd_tb_num,
ctx->bmd_tb_num, ctx->bmd_tb_den);
/* Pass ownership to DeckLink, or release on failure */
@@ -750,6 +799,9 @@
return AVERROR(EIO);
}
+ pthread_mutex_lock(&ctx->mutex);
+ ctx->outstanding_frames++;
+ pthread_mutex_unlock(&ctx->mutex);
ctx->dlo->GetBufferedVideoFrameCount(&buffered);
av_log(avctx, AV_LOG_DEBUG, "Buffered video frames: %d.\n", (int) buffered);
if (pkt->pts > 2 && buffered <= 2)
@@ -850,6 +902,7 @@
ctx->list_devices = cctx->list_devices;
ctx->list_formats = cctx->list_formats;
ctx->preroll = cctx->preroll;
+ ctx->block_until_available = cctx->block_until_available;
ctx->duplex_mode = cctx->duplex_mode;
ctx->first_pts = AV_NOPTS_VALUE;
if (cctx->link > 0 && (unsigned int)cctx->link < FF_ARRAY_ELEMS(decklink_link_conf_map))
@@ -874,7 +927,7 @@
return ret;
/* Get output device. */
- if (ctx->dl->QueryInterface(IID_IDeckLinkOutput, (void **) &ctx->dlo) != S_OK) {
+ if (ctx->dl->QueryInterface(IID_IDeckLinkOutput_v14_2_1, (void **) &ctx->dlo) != S_OK) {
av_log(avctx, AV_LOG_ERROR, "Could not open output device from '%s'\n",
avctx->url);
ret = AVERROR(EIO);
-12
View File
@@ -1,12 +0,0 @@
diff -Naur ffmpeg-7.1.2.old/configure ffmpeg-7.1.2/configure
--- ffmpeg-7.1.2.old/configure 2025-10-27 10:07:01.862821941 +0100
+++ ffmpeg-7.1.2/configure 2025-10-27 10:07:02.140469997 +0100
@@ -6766,7 +6766,7 @@
nvccflags=$nvccflags_default
fi
-nvccflags="$nvccflags -std=c++11"
+nvccflags="$nvccflags -std=c++14"
if enabled x86_64 || enabled ppc64 || enabled aarch64; then
nvccflags="$nvccflags -m64"
+64 -32
View File
@@ -1,15 +1,24 @@
diff -Naur ffmpeg-7.1.2.old/configure ffmpeg-7.1.2/configure
--- ffmpeg-7.1.2.old/configure 2025-10-27 10:07:00.645474486 +0100
+++ ffmpeg-7.1.2/configure 2025-10-27 10:07:01.726484024 +0100
@@ -278,6 +278,7 @@
--enable-libsrt enable Haivision SRT protocol via libsrt [no]
--enable-libssh enable SFTP protocol via libssh [no]
--enable-libsvtav1 enable AV1 encoding via SVT [no]
+ --enable-libsvtvp9 enable VP9 encoding via svt [no]
--enable-libtensorflow enable TensorFlow as a DNN module backend
for DNN based filters like sr [no]
--enable-libtesseract enable Tesseract, needed for ocr filter [no]
@@ -1955,6 +1956,7 @@
From fed3505f256f4eecc967f9bec4252cb1b15375bd Mon Sep 17 00:00:00 2001
From: Terra Packaging Team <terra@fyralabs.com>
Date: Sun, 31 May 2026 03:01:18 -0500
Subject: [PATCH] Patch for SVT-VP9 plugin
See: https://github.com/OpenVisualCloud/SVT-VP9/tree/master/ffmpeg_plugin
---
configure | 3 +
configure.rej | 10 +
libavcodec/Makefile | 1 +
libavcodec/allcodecs.c | 1 +
libavcodec/libsvt_vp9.c | 701 ++++++++++++++++++++++++++++++++++++++++
5 files changed, 716 insertions(+)
create mode 100644 configure.rej
create mode 100644 libavcodec/libsvt_vp9.c
diff --git a/configure b/configure
index 1759694..4b63d8e 100755
--- a/configure
+++ b/configure
@@ -2083,6 +2083,7 @@ EXTERNAL_LIBRARY_LIST="
libshaderc
libshine
libsmbclient
@@ -17,7 +26,7 @@ diff -Naur ffmpeg-7.1.2.old/configure ffmpeg-7.1.2/configure
libsnappy
libsoxr
libspeex
@@ -3579,6 +3581,7 @@
@@ -3825,6 +3826,7 @@ libvpx_vp8_decoder_deps="libvpx"
libvpx_vp8_encoder_deps="libvpx"
libvpx_vp9_decoder_deps="libvpx"
libvpx_vp9_encoder_deps="libvpx"
@@ -25,7 +34,7 @@ diff -Naur ffmpeg-7.1.2.old/configure ffmpeg-7.1.2/configure
libvvenc_encoder_deps="libvvenc"
libwebp_encoder_deps="libwebp"
libwebp_anim_encoder_deps="libwebp"
@@ -7028,6 +7031,7 @@
@@ -7387,6 +7389,7 @@ enabled libtwolame && require libtwolame twolame.h twolame_init -ltwolame
die "ERROR: libtwolame must be installed and version must be >= 0.3.10"; }
enabled libuavs3d && require_pkg_config libuavs3d "uavs3d >= 1.1.41" uavs3d.h uavs3d_decode
enabled libv4l2 && require_pkg_config libv4l2 libv4l2 libv4l2.h v4l2_ioctl
@@ -33,10 +42,39 @@ diff -Naur ffmpeg-7.1.2.old/configure ffmpeg-7.1.2/configure
enabled libvidstab && require_pkg_config libvidstab "vidstab >= 0.98" vid.stab/libvidstab.h vsMotionDetectInit
enabled libvmaf && require_pkg_config libvmaf "libvmaf >= 2.0.0" libvmaf.h vmaf_init
enabled libvmaf && check_pkg_config libvmaf_cuda "libvmaf >= 2.0.0" libvmaf_cuda.h vmaf_cuda_state_init
diff -Naur ffmpeg-7.1.2.old/libavcodec/allcodecs.c ffmpeg-7.1.2/libavcodec/allcodecs.c
--- ffmpeg-7.1.2.old/libavcodec/allcodecs.c 2025-10-27 10:07:00.517473357 +0100
+++ ffmpeg-7.1.2/libavcodec/allcodecs.c 2025-10-27 10:07:01.728697010 +0100
@@ -796,6 +796,7 @@
diff --git a/configure.rej b/configure.rej
new file mode 100644
index 0000000..3de8351
--- /dev/null
+++ b/configure.rej
@@ -0,0 +1,10 @@
+--- configure 2026-03-10 10:00:58.102559577 +0100
++++ configure 2026-03-10 10:00:58.530928613 +0100
+@@ -278,6 +278,7 @@
+ --enable-libsrt enable Haivision SRT protocol via libsrt [no]
+ --enable-libssh enable SFTP protocol via libssh [no]
+ --enable-libsvtav1 enable AV1 encoding via SVT [no]
++ --enable-libsvtvp9 enable VP9 encoding via svt [no]
+ --enable-libtensorflow enable TensorFlow as a DNN module backend
+ for DNN based filters like sr [no]
+ --enable-libtesseract enable Tesseract, needed for ocr filter [no]
diff --git a/libavcodec/Makefile b/libavcodec/Makefile
index 1410bd8..9310a97 100644
--- a/libavcodec/Makefile
+++ b/libavcodec/Makefile
@@ -1217,6 +1217,7 @@ OBJS-$(CONFIG_LIBVO_AMRWBENC_ENCODER) += libvo-amrwbenc.o
OBJS-$(CONFIG_LIBVORBIS_DECODER) += libvorbisdec.o
OBJS-$(CONFIG_LIBVORBIS_ENCODER) += libvorbisenc.o \
vorbis_data.o
+OBJS-$(CONFIG_LIBSVT_VP9_ENCODER) += libsvt_vp9.o
OBJS-$(CONFIG_LIBVPX_VP8_DECODER) += libvpxdec.o
OBJS-$(CONFIG_LIBVPX_VP8_ENCODER) += libvpxenc.o
OBJS-$(CONFIG_LIBVPX_VP9_DECODER) += libvpxdec.o
diff --git a/libavcodec/allcodecs.c b/libavcodec/allcodecs.c
index 695214f..8eaa76a 100644
--- a/libavcodec/allcodecs.c
+++ b/libavcodec/allcodecs.c
@@ -826,6 +826,7 @@ extern const FFCodec ff_libuavs3d_decoder;
extern const FFCodec ff_libvo_amrwbenc_encoder;
extern const FFCodec ff_libvorbis_encoder;
extern const FFCodec ff_libvorbis_decoder;
@@ -44,9 +82,11 @@ diff -Naur ffmpeg-7.1.2.old/libavcodec/allcodecs.c ffmpeg-7.1.2/libavcodec/allco
extern const FFCodec ff_libvpx_vp8_encoder;
extern const FFCodec ff_libvpx_vp8_decoder;
extern FFCodec ff_libvpx_vp9_encoder;
diff -Naur ffmpeg-7.1.2.old/libavcodec/libsvt_vp9.c ffmpeg-7.1.2/libavcodec/libsvt_vp9.c
--- ffmpeg-7.1.2.old/libavcodec/libsvt_vp9.c 1970-01-01 01:00:00.000000000 +0100
+++ ffmpeg-7.1.2/libavcodec/libsvt_vp9.c 2025-10-27 10:07:01.729099438 +0100
diff --git a/libavcodec/libsvt_vp9.c b/libavcodec/libsvt_vp9.c
new file mode 100644
index 0000000..90ed5cb
--- /dev/null
+++ b/libavcodec/libsvt_vp9.c
@@ -0,0 +1,701 @@
+/*
+* Scalable Video Technology for VP9 encoder library plugin
@@ -749,14 +789,6 @@ diff -Naur ffmpeg-7.1.2.old/libavcodec/libsvt_vp9.c ffmpeg-7.1.2/libavcodec/libs
+ .defaults = eb_enc_defaults,
+ .p.wrapper_name = "libsvt_vp9",
+};
diff -Naur ffmpeg-7.1.2.old/libavcodec/Makefile ffmpeg-7.1.2/libavcodec/Makefile
--- ffmpeg-7.1.2.old/libavcodec/Makefile 2025-10-27 10:07:00.259471080 +0100
+++ ffmpeg-7.1.2/libavcodec/Makefile 2025-10-27 10:07:01.729297932 +0100
@@ -1157,6 +1157,7 @@
OBJS-$(CONFIG_LIBVORBIS_DECODER) += libvorbisdec.o
OBJS-$(CONFIG_LIBVORBIS_ENCODER) += libvorbisenc.o \
vorbis_data.o
+OBJS-$(CONFIG_LIBSVT_VP9_ENCODER) += libsvt_vp9.o
OBJS-$(CONFIG_LIBVPX_VP8_DECODER) += libvpxdec.o
OBJS-$(CONFIG_LIBVPX_VP8_ENCODER) += libvpxenc.o
OBJS-$(CONFIG_LIBVPX_VP9_DECODER) += libvpxdec.o
--
2.54.0
@@ -0,0 +1,26 @@
From 03ce488cabd436b353aaa4bef1b848493e17317f Mon Sep 17 00:00:00 2001
From: Terra Packaging Team <terra@fyralabs.com>
Date: Sun, 31 May 2026 03:08:52 -0500
Subject: [PATCH] Fix VapourSynth dlopen
See: https://bugzilla.redhat.com/show_bug.cgi?id=2345698
---
libavformat/vapoursynth.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libavformat/vapoursynth.c b/libavformat/vapoursynth.c
index 0fa5aff..e6ac20b 100644
--- a/libavformat/vapoursynth.c
+++ b/libavformat/vapoursynth.c
@@ -49,7 +49,7 @@
#else
#include <dlfcn.h>
#define VSSCRIPT_NAME "libvapoursynth-script"
- #define VSSCRIPT_LIB VSSCRIPT_NAME SLIBSUF
+ #define VSSCRIPT_LIB VSSCRIPT_NAME SLIBSUF ".0"
#endif
struct VSState {
--
2.54.0
File diff suppressed because it is too large Load Diff
+5
View File
@@ -0,0 +1,5 @@
let key = get("https://ffmpeg.org/ffmpeg-devel.asc");
let dir = sub(`/[^/]+$`, "", __script_path);
open_file(`${dir}/ffmpeg-devel.asc`, "w").write(key);
sh(`gpg2 --import --import-options import-export,import-minimal ffmpeg-devel.asc > ./ffmpeg.keyring`, #{ "cwd": dir });
+1 -1
View File
@@ -1,4 +1,4 @@
%global v v2.0.0-alpha.0
%global v v2.0.0-alpha.1
Name: zrythm
Version: %(echo %v | sed 's@-@~@g' | sed 's@^v@@')
@@ -1,6 +1,6 @@
%global commit c4ba7e2649becd6c28289095b2992c7c0b4bb5e4
%global commit d9d1c16d0e5642f58e1c30ad60dba521642c2a70
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%global commit_date 20260525
%global commit_date 20260531
%global ver 0.6.7
# We aren't using Mono but RPM expected Mono
@@ -5,7 +5,7 @@
%endif
Name: uutils-coreutils-replace
Version: 0.8.0
Version: 0.9.0
Release: 1%{?dist}
Summary: Cross-platform Rust rewrite of the GNU coreutils
License: MIT
+1 -1
View File
@@ -5,7 +5,7 @@
%endif
Name: vicinae
Version: 0.21.2
Version: 0.21.3
Release: 1%{?dist}
License: GPL-3.0
URL: https://docs.vicinae.com
+1 -1
View File
@@ -18,7 +18,7 @@
Name: wine-staging
Version: 11.9
Version: 11.10
Release: 1%{?dist}
Epoch: 1
Summary: WINE Is Not An Emulator - runs MS Windows programs
@@ -1,6 +1,6 @@
Name: breeze-plus-icon-theme
Version: 6.19.0
Release: 2%{?dist}
Version: 6.26.0
Release: 1%{?dist}
Summary: Breeze icon theme with additional icons
Packager: Amy King <amy@amyrom.tech>
+2 -2
View File
@@ -1,5 +1,5 @@
%global commit 95642d4631aa49e9cc74a5d8f3c4bc33dd3d670a
%global commit_date 20260530
%global commit 3bb11344d0aa74d3c42f51f6c5eb9eda22f3491f
%global commit_date 20260531
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%global pypi_name glasgow
@@ -1,5 +1,5 @@
%global commit 6b8e7e659fa39b9396a54f8bf94e9c51c2f58564
%global commit_date 20260403
%global commit b00ebe1c4cf877e9d1aca99bb41400d3c6130753
%global commit_date 20260531
%global shortcommit %(c=%{commit}; echo ${c:0:7})
Name: graftcp-nightly
+2 -2
View File
@@ -1,6 +1,6 @@
Name: graftcp
Version: 0.7.1
Release: 1%?dist
Version: 0.8.0
Release: 1%{?dist}
Summary: A flexible tool for redirecting a given program's TCP traffic to SOCKS5 or HTTP proxy
URL: https://github.com/hmgle/graftcp
License: GPL-3.0