mirror of
https://github.com/terrapkg/packages.git
synced 2026-05-31 09:01:55 +00:00
fix(ffmpeg): Rebase onto Fedora spec
This commit is contained in:
@@ -0,0 +1,3 @@
|
|||||||
|
# FFmpeg keys
|
||||||
|
ffmpeg-devel.asc
|
||||||
|
ffmpeg.keyring
|
||||||
@@ -2,7 +2,7 @@ project pkg {
|
|||||||
arches = ["x86_64", "aarch64", "i386"]
|
arches = ["x86_64", "aarch64", "i386"]
|
||||||
rpm {
|
rpm {
|
||||||
spec = "ffmpeg.spec"
|
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 {
|
labels {
|
||||||
updbranch = 1
|
updbranch = 1
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -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
|
||||||
|
|
||||||
@@ -1,31 +1,46 @@
|
|||||||
diff -Naur ffmpeg-7.1.2.old/libavformat/avformat.h ffmpeg-7.1.2/libavformat/avformat.h
|
From d32aacab65a322b66d6a1b48f6cdb03e42bde0f9 Mon Sep 17 00:00:00 2001
|
||||||
--- ffmpeg-7.1.2.old/libavformat/avformat.h 2025-10-27 10:07:00.895476692 +0100
|
From: Frank Liberato <liberato@chromium.org>
|
||||||
+++ ffmpeg-7.1.2/libavformat/avformat.h 2025-10-27 10:07:01.866348795 +0100
|
Date: Wed, 7 Jul 2021 19:01:22 -0700
|
||||||
@@ -1202,6 +1202,10 @@
|
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);
|
struct AVCodecParserContext *av_stream_get_parser(const AVStream *s);
|
||||||
|
|
||||||
+// Chromium: We use the internal field first_dts vvv
|
+// Chromium: We use the internal field first_dts vvv
|
||||||
+int64_t av_stream_get_first_dts(const AVStream *st);
|
+int64_t av_stream_get_first_dts(const AVStream *st);
|
||||||
+// Chromium: We use the internal field first_dts ^^^
|
+// Chromium: We use the internal field first_dts ^^^
|
||||||
+
|
+
|
||||||
#define AV_PROGRAM_RUNNING 1
|
#define AV_PROGRAM_RUNNING 1
|
||||||
|
|
||||||
/**
|
/**
|
||||||
diff -Naur ffmpeg-7.1.2.old/libavformat/utils.c ffmpeg-7.1.2/libavformat/utils.c
|
diff --git a/libavformat/utils.c b/libavformat/utils.c
|
||||||
--- ffmpeg-7.1.2.old/libavformat/utils.c 2025-10-27 10:07:00.899476727 +0100
|
index cf4d68bff9..7d750abf88 100644
|
||||||
+++ ffmpeg-7.1.2/libavformat/utils.c 2025-10-27 10:07:01.866992658 +0100
|
--- a/libavformat/utils.c
|
||||||
@@ -44,6 +44,13 @@
|
+++ b/libavformat/utils.c
|
||||||
|
@@ -56,6 +56,13 @@ int ff_unlock_avformat(void)
|
||||||
* various utility functions for use within FFmpeg
|
* various utility functions for use within FFmpeg
|
||||||
*/
|
*/
|
||||||
|
|
||||||
+// Chromium: We use the internal field first_dts vvv
|
+// Chromium: We use the internal field first_dts vvv
|
||||||
+int64_t av_stream_get_first_dts(const AVStream *st)
|
+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 ^^^
|
+// Chromium: We use the internal field first_dts ^^^
|
||||||
+
|
+
|
||||||
/* an arbitrarily chosen "sane" max packet size -- 50M */
|
/* an arbitrarily chosen "sane" max packet size -- 50M */
|
||||||
#define SANE_CHUNK_SIZE (50000000)
|
#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);
|
|
||||||
@@ -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"
|
|
||||||
@@ -1,15 +1,7 @@
|
|||||||
diff -Naur ffmpeg-7.1.2.old/configure ffmpeg-7.1.2/configure
|
diff -Naur ffmpeg-8.1.1.old/configure ffmpeg-8.1.1/configure
|
||||||
--- ffmpeg-7.1.2.old/configure 2025-10-27 10:07:00.645474486 +0100
|
--- ffmpeg-8.1.1.old/configure 2026-05-22 09:46:43.476259040 +0200
|
||||||
+++ ffmpeg-7.1.2/configure 2025-10-27 10:07:01.726484024 +0100
|
+++ ffmpeg-8.1.1/configure 2026-05-22 09:46:43.942340977 +0200
|
||||||
@@ -278,6 +278,7 @@
|
@@ -2083,6 +2083,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 @@
|
|
||||||
libshaderc
|
libshaderc
|
||||||
libshine
|
libshine
|
||||||
libsmbclient
|
libsmbclient
|
||||||
@@ -17,7 +9,7 @@ diff -Naur ffmpeg-7.1.2.old/configure ffmpeg-7.1.2/configure
|
|||||||
libsnappy
|
libsnappy
|
||||||
libsoxr
|
libsoxr
|
||||||
libspeex
|
libspeex
|
||||||
@@ -3579,6 +3581,7 @@
|
@@ -3825,6 +3826,7 @@
|
||||||
libvpx_vp8_encoder_deps="libvpx"
|
libvpx_vp8_encoder_deps="libvpx"
|
||||||
libvpx_vp9_decoder_deps="libvpx"
|
libvpx_vp9_decoder_deps="libvpx"
|
||||||
libvpx_vp9_encoder_deps="libvpx"
|
libvpx_vp9_encoder_deps="libvpx"
|
||||||
@@ -25,7 +17,7 @@ diff -Naur ffmpeg-7.1.2.old/configure ffmpeg-7.1.2/configure
|
|||||||
libvvenc_encoder_deps="libvvenc"
|
libvvenc_encoder_deps="libvvenc"
|
||||||
libwebp_encoder_deps="libwebp"
|
libwebp_encoder_deps="libwebp"
|
||||||
libwebp_anim_encoder_deps="libwebp"
|
libwebp_anim_encoder_deps="libwebp"
|
||||||
@@ -7028,6 +7031,7 @@
|
@@ -7387,6 +7389,7 @@
|
||||||
die "ERROR: libtwolame must be installed and version must be >= 0.3.10"; }
|
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 libuavs3d && require_pkg_config libuavs3d "uavs3d >= 1.1.41" uavs3d.h uavs3d_decode
|
||||||
enabled libv4l2 && require_pkg_config libv4l2 libv4l2 libv4l2.h v4l2_ioctl
|
enabled libv4l2 && require_pkg_config libv4l2 libv4l2 libv4l2.h v4l2_ioctl
|
||||||
@@ -33,10 +25,24 @@ 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 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 && 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
|
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
|
diff -Naur ffmpeg-8.1.1.old/configure.rej ffmpeg-8.1.1/configure.rej
|
||||||
--- ffmpeg-7.1.2.old/libavcodec/allcodecs.c 2025-10-27 10:07:00.517473357 +0100
|
--- ffmpeg-8.1.1.old/configure.rej 1970-01-01 01:00:00.000000000 +0100
|
||||||
+++ ffmpeg-7.1.2/libavcodec/allcodecs.c 2025-10-27 10:07:01.728697010 +0100
|
+++ ffmpeg-8.1.1/configure.rej 2026-05-22 09:46:43.944047173 +0200
|
||||||
@@ -796,6 +796,7 @@
|
@@ -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 -Naur ffmpeg-8.1.1.old/libavcodec/allcodecs.c ffmpeg-8.1.1/libavcodec/allcodecs.c
|
||||||
|
--- ffmpeg-8.1.1.old/libavcodec/allcodecs.c 2026-05-22 09:46:43.386258267 +0200
|
||||||
|
+++ ffmpeg-8.1.1/libavcodec/allcodecs.c 2026-05-22 09:46:43.944175014 +0200
|
||||||
|
@@ -826,6 +826,7 @@
|
||||||
extern const FFCodec ff_libvo_amrwbenc_encoder;
|
extern const FFCodec ff_libvo_amrwbenc_encoder;
|
||||||
extern const FFCodec ff_libvorbis_encoder;
|
extern const FFCodec ff_libvorbis_encoder;
|
||||||
extern const FFCodec ff_libvorbis_decoder;
|
extern const FFCodec ff_libvorbis_decoder;
|
||||||
@@ -44,9 +50,9 @@ 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_encoder;
|
||||||
extern const FFCodec ff_libvpx_vp8_decoder;
|
extern const FFCodec ff_libvpx_vp8_decoder;
|
||||||
extern FFCodec ff_libvpx_vp9_encoder;
|
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
|
diff -Naur ffmpeg-8.1.1.old/libavcodec/libsvt_vp9.c ffmpeg-8.1.1/libavcodec/libsvt_vp9.c
|
||||||
--- ffmpeg-7.1.2.old/libavcodec/libsvt_vp9.c 1970-01-01 01:00:00.000000000 +0100
|
--- ffmpeg-8.1.1.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
|
+++ ffmpeg-8.1.1/libavcodec/libsvt_vp9.c 2026-05-22 09:46:43.944263059 +0200
|
||||||
@@ -0,0 +1,701 @@
|
@@ -0,0 +1,701 @@
|
||||||
+/*
|
+/*
|
||||||
+* Scalable Video Technology for VP9 encoder library plugin
|
+* Scalable Video Technology for VP9 encoder library plugin
|
||||||
@@ -749,10 +755,10 @@ diff -Naur ffmpeg-7.1.2.old/libavcodec/libsvt_vp9.c ffmpeg-7.1.2/libavcodec/libs
|
|||||||
+ .defaults = eb_enc_defaults,
|
+ .defaults = eb_enc_defaults,
|
||||||
+ .p.wrapper_name = "libsvt_vp9",
|
+ .p.wrapper_name = "libsvt_vp9",
|
||||||
+};
|
+};
|
||||||
diff -Naur ffmpeg-7.1.2.old/libavcodec/Makefile ffmpeg-7.1.2/libavcodec/Makefile
|
diff -Naur ffmpeg-8.1.1.old/libavcodec/Makefile ffmpeg-8.1.1/libavcodec/Makefile
|
||||||
--- ffmpeg-7.1.2.old/libavcodec/Makefile 2025-10-27 10:07:00.259471080 +0100
|
--- ffmpeg-8.1.1.old/libavcodec/Makefile 2026-05-22 09:46:43.194256618 +0200
|
||||||
+++ ffmpeg-7.1.2/libavcodec/Makefile 2025-10-27 10:07:01.729297932 +0100
|
+++ ffmpeg-8.1.1/libavcodec/Makefile 2026-05-22 09:46:43.944732404 +0200
|
||||||
@@ -1157,6 +1157,7 @@
|
@@ -1217,6 +1217,7 @@
|
||||||
OBJS-$(CONFIG_LIBVORBIS_DECODER) += libvorbisdec.o
|
OBJS-$(CONFIG_LIBVORBIS_DECODER) += libvorbisdec.o
|
||||||
OBJS-$(CONFIG_LIBVORBIS_ENCODER) += libvorbisenc.o \
|
OBJS-$(CONFIG_LIBVORBIS_ENCODER) += libvorbisenc.o \
|
||||||
vorbis_data.o
|
vorbis_data.o
|
||||||
|
|||||||
@@ -0,0 +1,12 @@
|
|||||||
|
diff -Naur ffmpeg-7.1.2.old/libavformat/vapoursynth.c ffmpeg-7.1.2/libavformat/vapoursynth.c
|
||||||
|
--- ffmpeg-7.1.2.old/libavformat/vapoursynth.c 2025-10-27 14:43:15.744230401 +0100
|
||||||
|
+++ ffmpeg-7.1.2/libavformat/vapoursynth.c 2025-10-27 14:43:36.732183431 +0100
|
||||||
|
@@ -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 {
|
||||||
+1168
-488
File diff suppressed because it is too large
Load Diff
@@ -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(`gpg --import --import-options import-export,import-minimal ffmpeg-devel.asc > ./ffmpeg.keyring`, #{ "cwd": dir });
|
||||||
Reference in New Issue
Block a user