diff --git a/baselibs.conf b/baselibs.conf new file mode 100644 index 0000000000000000000000000000000000000000..46517313584c20b783b4efef820dcf860bde2e1b --- /dev/null +++ b/baselibs.conf @@ -0,0 +1,8 @@ +libavcodec60 +libavdevice60 +libavfilter9 +libavformat60 +libavutil58 +libpostproc57 +libswresample4 +libswscale7 diff --git a/enable_decoders b/enable_decoders new file mode 100644 index 0000000000000000000000000000000000000000..90a188a0f9f9b725bf76a63d730ca137166cbe3b --- /dev/null +++ b/enable_decoders @@ -0,0 +1,480 @@ +## module name # reason for enablement in ffmpeg (usually there is another package that already got legal review) +aac +aasc +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 +alac +alias_pix +amrnb # opencore-amr +amrwb # opencore-amr +amv +anm +ansi # trivial +anull +apac +ape +apng # animated png +arbc +argo +ass # trivial +asv1 +asv2 +atrac1 +atrac3 +atrac3al +atrac3p +atrac3pal +aura +aura2 +av1 # libaom +av1_nvdec # passthrough +av1_qsv # passthrough +av1_vaapi # passthrough +ayuv # trivial +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 +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 # passthrough +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 +libaom # libaom +libaom_av1 # libaom +libcodec2 # codec2 +libdav1d # av1 +libgsm # libgsm +libgsm_ms # libgsm +libjxl # libjxl +libopencore_amrnb # opencore-amr +libopencore_amrwb # opencore-amr +libopenh264 # passthrough/dlopen +libopenjpeg # openjpeg +libopus # opus +libschroedinger # schroedinger +libspeex # speex +libvorbis # libvorbis +libvpx_vp8 # libvpx +libvpx_vp9 # libvpx +libzvbi_teletext # zvbi +loco +lscr +m101 +mace3 +mace6 +mdec +media100 +metasound +microdvd +mimic +misc4 +mjpeg # mjpegtools +mjpeg_qsv # passthrough +mjpegb +mlp +mmvideo +motionpixels +mp1 # twolame/lame +mp1float # twolame/lame +mp2 # twolame +mp2float # twolame +mp3 # lame +mp3adu +mp3adufloat +mp3float # lame +mp3on4 +mp3on4float +mpc7 +mpc8 +mpeg1_cuvid # passthrough +mpeg1_v4l2m2m # passthrough +mpeg1video +mpeg2_cuvid # passthrough +mpeg2_qsv # passthrough +mpeg2_v4l2m2m # passthrough +mpeg2_vaapi # passthrough +mpeg2video +mpeg4 +mpeg4_cuvid # passthrough +mpeg4_v4l2m2m # passthrough +mpegvideo +mpl2 +msa1 +mscc +msmpeg4 +msmpeg4v1 +msmpeg4v2 +msmpeg4v3 +msnsiren +msp2 +msrle +mss1 +msvideo1 +mszh +mts2 +mv30 +mvc1 +mvc2 +mvdv +mvha +mwsc +mxpeg +nellymoser +nuv +on2avc +opus # opus +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_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 +prosumer +psd +ptx +qcelp +qdm2 +qdmc +qdraw +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 # 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 # trivial +vorbis # libvorbis +vp3 # libav +vp4 # libav +vp5 # libav +vp5 # libav +vp6 # libav +vp6 # libav +vp6a # libav +vp6a # libav +vp6f # libav +vp6f # libav +vp7 # libav +vp8 # libvpx +vp8_qsv # passthrough +vp8_v4l2m2m # passthrough +vp9 # libvpx +vp9_qsv # passthrough +vp9_v4l2m2m # passthrough +vplayer +vqa +vqc +wady_dpcm +wavarc +wavpack # 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 +y41p # trivial +ylc +yop +yuv4 # trivial +yuv4 # trivial +zero12v +zerocodec +zlib # zlib +zmbv # dosbox diff --git a/enable_encoders b/enable_encoders new file mode 100644 index 0000000000000000000000000000000000000000..56df780ce350b8b70c914f8e4ed93e76cdc7c47e --- /dev/null +++ b/enable_encoders @@ -0,0 +1,195 @@ +## module name # reason for enablement in ffmpeg (usually there is another package that already got legal review) +a64multi +a64multi5 +aac +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_nvenc +av1_vaapi +ayuv # trival +bitpacked # trivial +bmp # trivial +cinepak +cljr +dca +dfpwm +dnxhd +dpx +dvdsub +dvvideo +exr +ffv1 +ffvhuff # trivial+zlib +flac # libFLAC +flashsv +flashsv2 +flv +g723_1 +gif # libpng +h261 +h263 +h263_v4l2m2m # passthrough +h263p +hdr +huffyuv # trivial+zlib +ilbc # ilbc +jpeg2000 +jpegls +libaom # libaom +libaom_av1 # libaom +libcodec2 # codec2 +libgsm # libgsm +libgsm_ms # libgsm +libjxl # libjxl +libmp3lame # lame +libopencore_amrnb # opencore-amr +libopenh264 # passthrough/dlopen +libopenjpeg # openjpeg +libopus # opus +librav1e # rav1e +libschroedinger # schroedinger +libspeex # speex +libsvtav1 # SVT-AV1 +libtheora # libtheora +libtwolame # twolame +libvo_amrwbenc # vo-amrwbenc +libvorbis # libvorbis +libvpx_vp8 # libvpx +libvpx_vp9 # libvpx +libwebp # libwebp +libwebp_anim # libwebp +libxvid # xvidcore +mjpeg # mjpegtools +mjpeg_qsv # passthrough +mjpeg_vaapi # passthrough +mlp +mp2 # twolame +mp2fixed # twolame +mpeg1video +mpeg2_qsv +mpeg2_vaapi +mpeg2video +mpeg4 +mpeg4_v4l2m2m # passthrough +msmpeg4v1 +msmpeg4v2 +msmpeg4v3 +msnsiren +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 +qoi +qtrle +r10k # trivial +r210 # trivial +ra_144 +rawvideo # trivial +roq +roq_dpcm +rpza +rv10 +rv20 +s302m +sbc +sgi # trivial +siren +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 +vc2 # dirac +vnull # trivial +vorbis # libvorbis +vp8_qsv # passthrough +vp8_v4l2m2m # passthrough +vp8_vaapi # passthrough +vp9_qsv # passthrough +vp9_vaapi # passthough +wavpack +wbmp +webvtt # trivial +wmav1 +wmav2 +wmv1 +wmv2 +wrapped_avframe # passthrough +xbm # trivial +xface +xsub +xwd # xwd +y41p # trivial +yuv4 # trivial +zlib # zlib +zmbv # dosbox diff --git a/ffmpeg-4.4.4.tar.xz b/ffmpeg-6.1.tar.xz similarity index 53% rename from ffmpeg-4.4.4.tar.xz rename to ffmpeg-6.1.tar.xz index 3419dc36784bf9a012fda419fc8163b175900cfe..573e3b42efb6a7be13d8e324e05b4efb93436616 100644 Binary files a/ffmpeg-4.4.4.tar.xz and b/ffmpeg-6.1.tar.xz differ diff --git a/ffmpeg-6.1.tar.xz.asc b/ffmpeg-6.1.tar.xz.asc new file mode 100644 index 0000000000000000000000000000000000000000..681b65077da8bf642024cbf656a3d1fc04cfc933 --- /dev/null +++ b/ffmpeg-6.1.tar.xz.asc @@ -0,0 +1,11 @@ +-----BEGIN PGP SIGNATURE----- + +iQFMBAABCAA2FiEE/PmG6hXm4pOlZE8QtDIvBNZ2WNgFAmVOyqYYHGZmbXBlZy1k +ZXZlbEBmZm1wZWcub3JnAAoJELQyLwTWdljYpZgIAIcUwEmwrpNIy37/nksvI11T +ZK2hX5ETjmUBoaYLFvLtTeDys39UuJPvqWZQz3A6aAhAd3wUGSofYFs0qi+nJl8Y +bRlts5PvwX4Iztya2BuZ4QFJsklkKxfVOaWiWz6ZsMpdT0XENIO0E+MkSx+fdRGf +7X7uyhy3/l7HjMFn6eZMhzTJgvSSeVvMqGDWh306CBG2/2yX1BrU0cFAdDY7bj8j +Kg6Jvo1GDn3H/pdKQEa3D+b/lup5J9I9WIHP/oNIHZVVPzM8G7niCXV3KBqke9Lp +7NL70315rmVuyrLV/T6plZiHrGx+BciLRwiZR+JYryhrbsU4xZhjuF+RHv1Y0J0= +=v0YM +-----END PGP SIGNATURE----- diff --git a/ffmpeg.spec b/ffmpeg.spec index e846c4837555ffbe15ec07f82b52537727c9f71d..a89be81682d20959049e1d8dac7f774b8c4bc8a9 100644 --- a/ffmpeg.spec +++ b/ffmpeg.spec @@ -1,394 +1,694 @@ -# Cuda and others are only available on some arches -%global cuda_arches x86_64 -# flavor nonfree -%if 0%{?_with_cuda:1} -%global debug_package %{nil} -%global flavor -cuda -%global progs_suffix -cuda -#global build_suffix -lgpl -%ifarch %{cuda_arches} -%global _with_cuvid 1 -%global _with_libnpp 1 -%endif -%global _with_fdk_aac 1 -%global _without_cdio 1 -%global _without_frei0r 1 -%global _without_gpl 1 -%global _without_vidstab 1 -%global _without_x264 1 -%global _without_x265 1 -%global _without_xvid 1 + +# Create proper conflicts to make sure we require all from one version +# p: Conflict string, eg if you need them all for requires instead +# Default value Conflicts: +# c: copmare string ie "<" or ">=", must be defined +# v: version string ie. "< 42.3.4" or ">= 15.0.2.1", must be defined +%define devel_conflicts(p:c:v:) \ +%define preamble_string %{-p:%{-p*}}%{!-p:Conflicts:} \ +%define comparator %{-c:%{-c*}}%{!-c:%{error:Comparator not defined}} \ +%define conflicts_version %{-v:%{-v*}}%{!-v:%{error:Version not defined}} \ +\ +%preamble_string libavcodec-devel %comparator %conflicts_version \ +%preamble_string libavdevice-devel %comparator %conflicts_version \ +%preamble_string libavfilter-devel %comparator %conflicts_version \ +%preamble_string libavformat-devel %comparator %conflicts_version \ +%preamble_string libavutil-devel %comparator %conflicts_version \ +%preamble_string libpostproc-devel %comparator %conflicts_version \ +%preamble_string libswresample-devel %comparator %conflicts_version \ +%preamble_string libswscale-devel %comparator %conflicts_version \ +%nil + +%if 0%{?BUILD_ORIG} +%bcond_without amrwb +%bcond_without opencore +%bcond_with fdk_aac +%bcond_without x264 +%bcond_without x265 +%bcond_without xvid +%else +%bcond_with amrwb +%bcond_with opencore +%bcond_with fdk_aac +# If software H264 is disabled, the hw driver must be as well: +# HW drivers can fail to initialize, namely when the hardware is absent. +# Browsers choose video formats on sites like youtube based on `ffmpeg +# -codecs` rather than the success/failure status of libav* initialization. +# This becomes a problem when a format only has a HW driver; +# the browser thinks it can do H264 but never succeeds. +%bcond_with x264 +%bcond_with x265 +%bcond_with xvid %endif -# extras flags -%if 0%{!?_cuda_version:1} -%global _cuda_version 10.2 +%bcond_with amf_sdk +%bcond_with cuda_sdk + +%bcond_with mysofa +%bcond_without vidstab +%bcond_with vmaf +%bcond_with openmpt +%bcond_with rubberband +%bcond_with vulkan + +%define _name ffmpeg +%define _major_version 6 +%define _major_expected 7 + +Name: ffmpeg-6 +Version: 6.1 +Release: 1 +Summary: Set of libraries for working with various multimedia formats +License: GPL-3.0-or-later +Group: Productivity/Multimedia/Video/Editors and Convertors +URL: https://ffmpeg.org/ + +Source: https://www.ffmpeg.org/releases/%_name-%version.tar.xz +Source2: https://www.ffmpeg.org/releases/%_name-%version.tar.xz.asc +Source3: enable_encoders +Source4: enable_decoders +Source99: baselibs.conf + +BuildRequires: ladspa-devel +BuildRequires: gsm-devel +BuildRequires: nasm +BuildRequires: pkgconfig +BuildRequires: pkgconfig(alsa) +BuildRequires: pkgconfig(aom) >= 1.0.0 +BuildRequires: pkgconfig(dav1d) >= 0.5.0 +BuildRequires: pkgconfig(ffnvcodec) >= 8.1.24.15 +BuildRequires: pkgconfig(fontconfig) >= 2.4.2 +BuildRequires: pkgconfig(freetype2) +BuildRequires: pkgconfig(fribidi) >= 0.19.0 +BuildRequires: pkgconfig(gnutls) +BuildRequires: pkgconfig(jack) +BuildRequires: pkgconfig(libass) >= 0.11.0 +BuildRequires: pkgconfig(libbluray) +BuildRequires: pkgconfig(libbs2b) +BuildRequires: pkgconfig(libcdio) +BuildRequires: pkgconfig(libcdio_paranoia) +BuildRequires: pkgconfig(libdrm) +BuildRequires: pkgconfig(libgme) +BuildRequires: pkgconfig(libopenjp2) >= 2.1.0 +BuildRequires: pkgconfig(libpng) +BuildRequires: pkgconfig(libpulse) +BuildRequires: pkgconfig(libraw1394) +BuildRequires: pkgconfig(libssh) >= 0.6.0 +BuildRequires: pkgconfig(libva) >= 0.35.0 +BuildRequires: pkgconfig(libva-drm) +BuildRequires: pkgconfig(libva-x11) +BuildRequires: pkgconfig(libwebp) >= 0.4 +BuildRequires: pkgconfig(libwebpmux) >= 0.4.0 +BuildRequires: pkgconfig(libxml-2.0) +BuildRequires: pkgconfig(libzmq) >= 4.2.1 +BuildRequires: pkgconfig(lilv-0) +BuildRequires: pkgconfig(ogg) +BuildRequires: pkgconfig(opus) +BuildRequires: pkgconfig(sdl2) >= 2.0.1 +BuildRequires: pkgconfig(soxr) +BuildRequires: pkgconfig(speex) +BuildRequires: pkgconfig(srt) >= 1.3.0 +BuildRequires: pkgconfig(theora) >= 1.1 +BuildRequires: pkgconfig(twolame) >= 0.3.10 +BuildRequires: pkgconfig(vdpau) +BuildRequires: pkgconfig(vorbis) +BuildRequires: pkgconfig(vpx) >= 1.4.0 +BuildRequires: pkgconfig(x11) +BuildRequires: pkgconfig(xcb) +BuildRequires: pkgconfig(xcb-shape) +BuildRequires: pkgconfig(xcb-shm) +BuildRequires: pkgconfig(xcb-xfixes) +BuildRequires: pkgconfig(xext) +BuildRequires: pkgconfig(zimg) >= 2.7.0 +BuildRequires: pkgconfig(zlib) +BuildRequires: pkgconfig(zvbi-0.2) >= 0.2.28 + +%if %{with amf_sdk} +BuildRequires: AMF-devel %endif -%global _cuda_version_rpm %(echo %{_cuda_version} | sed -e 's/\\./-/') -%global _cuda_bindir %{_cuda_prefix}/bin -%if 0%{?_with_cuda:1} -%global cuda_cflags $(pkg-config --cflags cuda-%{_cuda_version}) -%global cuda_ldflags $(pkg-config --libs cuda-%{_cuda_version}) +%if %{with mysofa} +BuildRequires: libmysofa-devel %endif - -%if 0%{?_with_libnpp:1} -%global libnpp_cflags $(pkg-config --cflags nppi-%{_cuda_version} nppc-%{_cuda_version}) -%global libnpp_ldlags $(pkg-config --libs-only-L nppi-%{_cuda_version} nppc-%{_cuda_version}) +%if %{with vmaf} +BuildRequires: pkgconfig(libvmaf) >= 2.0.0 +%endif +%if %{with openmpt} +BuildRequires: pkgconfig(libopenmpt) >= 0.2.6557 +%endif +%if %{with rubberband} +BuildRequires: pkgconfig(rubberband) >= 1.8.1 +%endif +%if %{with vidstab} +BuildRequires: pkgconfig(vidstab) >= 0.98 +%endif +%if %{with fdk_aac} +BuildRequires: pkgconfig(fdk-aac) +%endif +%if %{with xvid} +BuildRequires: xvidcore-devel +%endif +%if %{with opencore} +BuildRequires: pkgconfig(opencore-amrnb) +%endif +%if %{with amrwb} +BuildRequires: pkgconfig(vo-amrwbenc) +%endif +%if %{with x264} +BuildRequires: pkgconfig(x264) +%endif +%if %{with x265} +BuildRequires: pkgconfig(x265) %endif -%if 0%{?_with_rpi:1} -%global _with_omx 1 -%global _with_omx_rpi 1 -%global _with_mmal 1 -ExclusiveArch: armv7hnl +%if %{with vulkan} +BuildRequires: pkgconfig(libplacebo) >= 4.192.0 +BuildRequires: pkgconfig(shaderc) >= 2019.1 +BuildRequires: pkgconfig(vulkan) >= 1.3.255 %endif -%if 0%{?_without_gpl} -%global lesser L +Provides: ffmpeg-tools = %version +Conflicts: ffmpeg-tools +Provides: ffmpeg = %version +Obsoletes: ffmpeg < %version +Requires: libavcodec60 = %version-%release +Requires: libavdevice60 = %version-%release +Requires: libavfilter9 = %version-%release +Requires: libavformat60 = %version-%release +Requires: libavutil58 = %version-%release +Requires: libpostproc57 = %version-%release +Requires: libswresample4 = %version-%release +Requires: libswscale7 = %version-%release + +%description +FFmpeg is a multimedia framework, able to decode, encode, +transcode, mux, demux, stream, filter and play several formats +that humans and machines have created. +%if !0%{?BUILD_ORIG} + +This build of ffmpeg is limited in the number of codecs supported. %endif -%if 0%{!?_without_amr} || 0%{?_with_gmp} || 0%{?_with_smb} -%global ffmpeg_license %{?lesser}GPLv3+ -%else -%global ffmpeg_license %{?lesser}GPLv2+ +%package -n libavcodec60 +Summary: FFmpeg codec library +Group: System/Libraries +Requires: libavutil58 = %version-%release +Requires: libswresample4 = %version-%release +%if 0%{?BUILD_ORIG} +Provides: libavcodec-full = %version-%release +# This can be (and is) required by packages like vlc-codecs - +# do follow the shlib name to not get random lib providers +Provides: libavcodec60(unrestricted) %endif +# For mozillas +Provides: libavcodec = %version-%release -Summary: Digital VCR and streaming server -Name: ffmpeg%{?flavor} -Version: 4.4.4 -Release: 2 -License: GPL-3.0-or-later -URL: http://ffmpeg.org/ -Source0: http://ffmpeg.org/releases/ffmpeg-%{version}.tar.xz -Patch0: fix-vmaf-model-path.patch - -Requires: %{name}-libs%{?_isa} = %{version}-%{release} -%{?_with_cuda:BuildRequires: cuda-minimal-build-%{_cuda_version_rpm} cuda-drivers-devel} -%{?_with_libnpp:BuildRequires: pkgconfig(nppc-%{_cuda_version})} -BuildRequires: alsa-lib-devel -BuildRequires: bzip2-devel -%{?_with_faac:BuildRequires: faac-devel} -%{?_with_fdk_aac:BuildRequires: fdk-aac-devel} -%{?_with_flite:BuildRequires: flite-devel} -BuildRequires: fontconfig-devel -BuildRequires: freetype-devel -BuildRequires: fribidi-devel -%{!?_without_frei0r:BuildRequires: frei0r-devel} -%{?_with_gme:BuildRequires: game-music-emu-devel} -BuildRequires: gnutls-devel -BuildRequires: gsm-devel -%{?_with_ilbc:BuildRequires: ilbc-devel} -BuildRequires: lame-devel >= 3.98.3 -%{!?_without_jack:BuildRequires: jack-audio-connection-kit-devel} -%{!?_without_ladspa:BuildRequires: ladspa-devel} -%{!?_without_aom:BuildRequires: libaom-devel} -%{!?_without_dav1d:BuildRequires: libdav1d-devel >= 0.2.1} -%{!?_without_ass:BuildRequires: libass-devel} -%{!?_without_bluray:BuildRequires: libbluray-devel} -%{?_with_bs2b:BuildRequires: libbs2b-devel} -%{?_with_caca:BuildRequires: libcaca-devel} -%{!?_without_cdio:BuildRequires: libcdio-paranoia-devel} -%{?_with_chromaprint:BuildRequires: libchromaprint-devel} -%{?_with_crystalhd:BuildRequires: libcrystalhd-devel} -%if 0%{?_with_ieee1394} -BuildRequires: libavc1394-devel -BuildRequires: libdc1394-devel -BuildRequires: libiec61883-devel -%endif -BuildRequires: libdrm-devel -BuildRequires: libgcrypt-devel -BuildRequires: libGL-devel -BuildRequires: libmodplug-devel -BuildRequires: librsvg2-devel -%{?_with_rtmp:BuildRequires: librtmp-devel} -%{?_with_smb:BuildRequires: libsmbclient-devel} -%{!?_without_srt:BuildRequires: srt-devel > 1.3.0} -BuildRequires: libssh-devel -BuildRequires: libtheora-devel -BuildRequires: libv4l-devel -%{?!_without_vaapi:BuildRequires: libva-devel >= 0.31.0} -BuildRequires: libvdpau-devel -BuildRequires: libvorbis-devel -%{?!_without_vpx:BuildRequires: libvpx-devel >= 1.4.0} -%ifarch %{ix86} x86_64 -BuildRequires: nasm +%description -n libavcodec60 +The libavcodec library provides a generic encoding/decoding framework +and contains multiple decoders and encoders for audio, video and +subtitle streams, and several bitstream filters. +%if !0%{?BUILD_ORIG} + +This build of ffmpeg is limited in the number of codecs supported. %endif -%{?_with_webp:BuildRequires: libwebp-devel} -%{?_with_netcdf:BuildRequires: netcdf-devel} -%{?_with_rpi:BuildRequires: raspberrypi-vc-devel} -%{!?_without_nvenc:BuildRequires: nv-codec-headers} -%{!?_without_amr:BuildRequires: opencore-amr-devel vo-amrwbenc-devel} -%{?_with_omx:BuildRequires: libomxil-bellagio-devel} -BuildRequires: libxcb-devel -%{!?_without_openal:BuildRequires: openal-soft-devel} -%if 0%{!?_without_opencl:1} -BuildRequires: opencl-headers ocl-icd-devel -%{?fedora:Recommends: opencl-icd} -%endif -%{?_with_opencv:BuildRequires: opencv-devel} -BuildRequires: openjpeg2-devel -%{!?_without_opus:BuildRequires: opus-devel >= 1.1.3} -%{!?_without_pulse:BuildRequires: pulseaudio-libs-devel} -BuildRequires: perl(Pod::Man) -%{?_with_rubberband:BuildRequires: rubberband-devel} -%{!?_without_tools:BuildRequires: SDL2-devel} -%{?_with_snappy:BuildRequires: snappy-devel} -BuildRequires: soxr-devel -BuildRequires: speex-devel -%{?_with_tesseract:BuildRequires: tesseract-devel} -#BuildRequires: texi2html -BuildRequires: texinfo -%{?_with_twolame:BuildRequires: twolame-devel} -%{?_with_wavpack:BuildRequires: wavpack-devel} -%{!?_without_vidstab:BuildRequires: vid.stab-devel} -%{!?_without_x264:BuildRequires: x264-devel >= 0.0.0-0.31} -%{!?_without_x265:BuildRequires: x265-devel} -%{!?_without_xvid:BuildRequires: xvidcore-devel} -BuildRequires: zimg-devel >= 2.7.0 -BuildRequires: zlib-devel -%{?_with_zmq:BuildRequires: zeromq-devel} -%{!?_without_zvbi:BuildRequires: zvbi-devel} -%description -FFmpeg is a complete and free Internet live audio and video -broadcasting solution for Linux/Unix. It also includes a digital -VCR. It can encode in real time in many formats including MPEG1 audio -and video, MPEG4, h263, ac3, asf, avi, real, mjpeg, and flash. - -%package libs -Summary: Libraries for %{name} - -%description libs -FFmpeg is a complete and free Internet live audio and video -broadcasting solution for Linux/Unix. It also includes a digital -VCR. It can encode in real time in many formats including MPEG1 audio -and video, MPEG4, h263, ac3, asf, avi, real, mjpeg, and flash. -This package contains the libraries for %{name} - -%package -n libavdevice%{?flavor} -Summary: Special devices muxing/demuxing library -Requires: %{name}-libs%{_isa} = %{version}-%{release} -Requires: jack-audio-connection-kit - -%description -n libavdevice%{?flavor} -Libavdevice is a complementary library to libavf "libavformat". It provides -various "special" platform-specific muxers and demuxers, e.g. for grabbing -devices, audio capture and playback etc. - -%package devel -Summary: Development package for %{name} -Requires: %{name}-libs%{_isa} = %{version}-%{release} -Requires: libavdevice%{?flavor}%{_isa} = %{version}-%{release} -Requires: pkgconfig - -%description devel -FFmpeg is a complete and free Internet live audio and video -broadcasting solution for Linux/Unix. It also includes a digital -VCR. It can encode in real time in many formats including MPEG1 audio -and video, MPEG4, h263, ac3, asf, avi, real, mjpeg, and flash. -This package contains development files for %{name} - -# Don't use the %%configure macro as this is not an autotool script -%global ff_configure \ -./configure \\\ - --prefix=%{_prefix} \\\ - --bindir=%{_bindir} \\\ - --datadir=%{_datadir}/%{name} \\\ - --docdir=%{_docdir}/%{name} \\\ - --incdir=%{_includedir}/%{name} \\\ - --libdir=%{_libdir} \\\ - --mandir=%{_mandir} \\\ - --arch=%{_target_cpu} \\\ - --optflags="%{optflags}" \\\ - --extra-ldflags="%{?__global_ldflags} %{?cuda_ldflags} %{?libnpp_ldlags}" \\\ - --extra-cflags="%{?cuda_cflags} %{?libnpp_cflags}" \\\ - %{?flavor:--disable-manpages} \\\ - %{?progs_suffix:--progs-suffix=%{progs_suffix}} \\\ - %{?build_suffix:--build-suffix=%{build_suffix}} \\\ - %{!?_without_amr:--enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvo-amrwbenc --enable-version3} \\\ - --enable-bzlib \\\ - %{?_with_chromaprint:--enable-chromaprint} \\\ - %{!?_with_crystalhd:--disable-crystalhd} \\\ - --enable-fontconfig \\\ - %{!?_without_frei0r:--enable-frei0r} \\\ - --enable-gcrypt \\\ - %{?_with_gmp:--enable-gmp --enable-version3} \\\ - --enable-gnutls \\\ - %{!?_without_ladspa:--enable-ladspa} \\\ - %{!?_without_aom:--enable-libaom} \\\ - %{!?_without_dav1d:--enable-libdav1d} \\\ - %{!?_without_ass:--enable-libass} \\\ - %{!?_without_bluray:--enable-libbluray} \\\ - %{?_with_bs2b:--enable-libbs2b} \\\ - %{?_with_caca:--enable-libcaca} \\\ - %{?_with_cuda:--enable-cuda-sdk --enable-nonfree} \\\ - %{?_with_cuvid:--enable-cuvid --enable-nonfree} \\\ - %{!?_without_cdio:--enable-libcdio} \\\ - %{?_with_ieee1394:--enable-libdc1394 --enable-libiec61883} \\\ - --enable-libdrm \\\ - %{?_with_faac:--enable-libfaac --enable-nonfree} \\\ - %{?_with_fdk_aac:--enable-libfdk-aac --enable-nonfree} \\\ - %{?_with_flite:--enable-libflite} \\\ - %{!?_without_jack:--enable-libjack} \\\ - --enable-libfreetype \\\ - %{!?_without_fribidi:--enable-libfribidi} \\\ - %{?_with_gme:--enable-libgme} \\\ - --enable-libgsm \\\ - %{?_with_ilbc:--enable-libilbc} \\\ - %{?_with_libnpp:--enable-libnpp --enable-nonfree} \\\ - --enable-libmp3lame \\\ - %{?_with_netcdf:--enable-netcdf} \\\ - %{?_with_mmal:--enable-mmal} \\\ - %{!?_without_nvenc:--enable-nvenc} \\\ - %{?_with_omx:--enable-omx} \\\ - %{?_with_omx_rpi:--enable-omx-rpi} \\\ - %{!?_without_openal:--enable-openal} \\\ - %{!?_without_opencl:--enable-opencl} \\\ - %{?_with_opencv:--enable-libopencv} \\\ - %{!?_without_opengl:--enable-opengl} \\\ - --enable-libopenjpeg \\\ - %{!?_without_opus:--enable-libopus} \\\ - %{!?_without_pulse:--enable-libpulse} \\\ - --enable-librsvg \\\ - %{?_with_rtmp:--enable-librtmp} \\\ - %{?_with_rubberband:--enable-librubberband} \\\ - %{?_with_smb:--enable-libsmbclient} \\\ - %{?_with_snappy:--enable-libsnappy} \\\ - %{!?_without_srt:--enable-libsrt} \\\ - --enable-libsoxr \\\ - --enable-libspeex \\\ - --enable-libssh \\\ - %{?_with_tesseract:--enable-libtesseract} \\\ - --enable-libtheora \\\ - %{?_with_twolame:--enable-libtwolame} \\\ - --enable-libvorbis \\\ - --enable-libv4l2 \\\ - %{!?_without_vidstab:--enable-libvidstab} \\\ - %{!?_without_vpx:--enable-libvpx} \\\ - %{?_with_webp:--enable-libwebp} \\\ - %{!?_without_x264:--enable-libx264} \\\ - %{!?_without_x265:--enable-libx265} \\\ - %{!?_without_xvid:--enable-libxvid} \\\ - --enable-libzimg \\\ - %{?_with_zmq:--enable-libzmq} \\\ - %{!?_without_zvbi:--enable-libzvbi} \\\ - --enable-avfilter \\\ - --enable-avresample \\\ - --enable-libmodplug \\\ - --enable-postproc \\\ - --enable-pthreads \\\ - --disable-static \\\ - --enable-shared \\\ - %{!?_without_gpl:--enable-gpl} \\\ - --disable-debug \\\ - --disable-stripping +%package libavcodec-devel +Summary: Development files for FFmpeg's codec library +Group: Development/Libraries/C and C++ +Provides: libavcodec-devel = %version-%release +Obsoletes: libavcodec-devel < %version-%release +Requires: %name-libavutil-devel = %version-%release +Requires: libavcodec60 = %version-%release +%devel_conflicts -c < -v %_major_version +%devel_conflicts -c >= -v %_major_expected + +%description libavcodec-devel +The libavcodec library provides a generic encoding/decoding framework +and contains multiple decoders and encoders for audio, video and +subtitle streams, and several bitstream filters. + +This subpackage contains the headers for FFmpeg libavcodec. + +%package -n libavdevice60 +Summary: FFmpeg device library +Group: System/Libraries +Requires: libavcodec60 = %version-%release +Requires: libavfilter9 = %version-%release +Requires: libavformat60 = %version-%release +Requires: libavutil58 = %version-%release + +%description -n libavdevice60 +The libavdevice library provides a generic framework for grabbing from +and rendering to many common multimedia input/output devices, and +supports several input and output devices, including Video4Linux2, VfW, +DShow, and ALSA. + +%package libavdevice-devel +Summary: Development files for FFmpeg's device library +Group: Development/Libraries/C and C++ +Provides: ffmpeg-devel = %version-%release +Conflicts: ffmpeg-devel +Provides: libavdevice-devel = %version-%release +Obsoletes: libavdevice-devel < %version-%release +Requires: %name-libavcodec-devel = %version-%release +Requires: %name-libavfilter-devel = %version-%release +Requires: %name-libavformat-devel = %version-%release +Requires: %name-libavutil-devel = %version-%release +Requires: %name-libpostproc-devel = %version-%release +Requires: %name-libswresample-devel = %version-%release +Requires: %name-libswscale-devel = %version-%release +Requires: libavdevice60 = %version-%release +%devel_conflicts -c < -v %_major_version +%devel_conflicts -c >= -v %_major_expected + +%description libavdevice-devel +The libavdevice library provides a generic framework for grabbing from +and rendering to many common multimedia input/output devices, and +supports several input and output devices, including Video4Linux2, VfW, +DShow, and ALSA. + +This subpackage contains the headers for FFmpeg libavcodec. + +%package -n libavfilter9 +Summary: FFmpeg audio and video filtering library +Group: System/Libraries +Requires: libavcodec60 = %version-%release +Requires: libavformat60 = %version-%release +Requires: libavutil58 = %version-%release +Requires: libpostproc57 = %version-%release +Requires: libswresample4 = %version-%release +Requires: libswscale7 = %version-%release + +%description -n libavfilter9 +The libavfilter library provides a generic audio/video filtering +framework containing several filters, sources and sinks. + +%package libavfilter-devel +Summary: Development files for FFmpeg's audio/video filter library +Group: Development/Libraries/C and C++ +Provides: libavfilter-devel = %version-%release +Obsoletes: libavfilter-devel < %version-%release +Requires: %name-libavcodec-devel = %version-%release +Requires: %name-libavformat-devel = %version-%release +Requires: %name-libavutil-devel = %version-%release +Requires: %name-libpostproc-devel = %version-%release +Requires: %name-libswresample-devel = %version-%release +Requires: %name-libswscale-devel = %version-%release +Requires: libavfilter9 = %version-%release +%devel_conflicts -c < -v %_major_version +%devel_conflicts -c >= -v %_major_expected + +%description libavfilter-devel +The libavfilter library provides a generic audio/video filtering +framework containing several filters, sources and sinks. + +This subpackage contains the headers for FFmpeg libavfilter. + +%package -n libavformat60 +Summary: FFmpeg's stream format library +Group: System/Libraries +Requires: libavcodec60 = %version-%release +Requires: libavutil58 = %version-%release + +%description -n libavformat60 +The libavformat library provides a generic framework for multiplexing +and demultiplexing (muxing and demuxing) audio, video and subtitle +streams. It encompasses multiple muxers and demuxers for multimedia +container formats. +%if !0%{?BUILD_ORIG} + +This build of ffmpeg is limited in the number of codecs supported. +%endif +%package libavformat-devel +Summary: Development files for FFmpeg's stream format library +Group: Development/Libraries/C and C++ +Provides: libavformat-devel = %version-%release +Obsoletes: libavformat-devel < %version-%release +Requires: %name-libavcodec-devel = %version-%release +Requires: %name-libavutil-devel = %version-%release +Requires: %name-libswresample-devel = %version-%release +Requires: libavformat60 = %version-%release +%devel_conflicts -c < -v %_major_version +%devel_conflicts -c >= -v %_major_expected + +%description libavformat-devel +The libavformat library provides a generic framework for multiplexing +and demultiplexing (muxing and demuxing) audio, video and subtitle +streams. It encompasses multiple muxers and demuxers for multimedia +container formats. + +This subpackage contains the headers for FFmpeg libavformat. + +%package -n libavutil58 +Summary: FFmpeg's utility library +Group: System/Libraries + +%description -n libavutil58 +The libavutil library is a utility library to aid portable multimedia +programming. It contains safe portable string functions, random +number generators, data structures, additional mathematics functions, +cryptography and multimedia related functionality (like enumerations +for pixel and sample formats). + +%package libavutil-devel +Summary: Development files for FFmpeg's utility library +Group: Development/Libraries/C and C++ +Provides: libavutil-devel = %version-%release +Obsoletes: libavutil-devel < %version-%release +Requires: libavutil58 = %version-%release +%devel_conflicts -c < -v %_major_version +%devel_conflicts -c >= -v %_major_expected + +%description libavutil-devel +The libavutil library is a utility library to aid portable multimedia +programming. It contains safe portable string functions, random +number generators, data structures, additional mathematics functions, +cryptography and multimedia related functionality (like enumerations +for pixel and sample formats). + +This subpackage contains the headers for FFmpeg libavutil. + +%package -n libpostproc57 +Summary: FFmpeg post-processing library +Group: System/Libraries +Requires: libavutil58 = %version-%release + +%description -n libpostproc57 +A library with video postprocessing filters, such as deblocking and +deringing filters, noise reduction, automatic contrast and brightness +correction, linear/cubic interpolating deinterlacing. + +%package libpostproc-devel +Summary: Development files for the FFmpeg post-processing library +Group: Development/Libraries/C and C++ +Provides: libpostproc-devel = %version-%release +Obsoletes: libpostproc-devel < %version-%release +Requires: %name-libavutil-devel = %version-%release +Requires: libpostproc57 = %version-%release +%devel_conflicts -c < -v %_major_version +%devel_conflicts -c >= -v %_major_expected + +%description libpostproc-devel +A library with video postprocessing filters, such as deblocking and +deringing filters, noise reduction, automatic contrast and brightness +correction, linear/cubic interpolating deinterlacing. + +This subpackage contains the headers for FFmpeg libpostproc. + +%package -n libswresample4 +Summary: FFmpeg software resampling library +Group: System/Libraries +Requires: libavutil58 = %version-%release + +%description -n libswresample4 +The libswresample library performs audio conversion between different +sample rates, channel layout and channel formats. + +%package libswresample-devel +Summary: Development files for the FFmpeg software resampling library +Group: Development/Libraries/C and C++ +Provides: libswresample-devel = %version-%release +Obsoletes: libswresample-devel < %version-%release +Requires: %name-libavutil-devel = %version-%release +Requires: libswresample4 = %version-%release +%devel_conflicts -c < -v %_major_version +%devel_conflicts -c >= -v %_major_expected + +%description libswresample-devel +The libswresample library performs audio conversion between different +sample rates, channel layout and channel formats. + +This subpackage contains the headers for FFmpeg libswresample. + +%package -n libswscale7 +Summary: FFmpeg image scaling and colorspace/pixel conversion library +Group: System/Libraries +Requires: libavutil58 = %version-%release + +%description -n libswscale7 +The libswscale library performs image scaling and colorspace and +pixel format conversion operations. + +%package libswscale-devel +Summary: Development files for FFmpeg's image scaling and colorspace library +Group: Development/Libraries/C and C++ +Conflicts: libswscale-devel +Provides: libswscale-devel = %version-%release +Requires: %name-libavutil-devel = %version-%release +Requires: libswscale7 = %version-%release +%devel_conflicts -c < -v %_major_version +%devel_conflicts -c >= -v %_major_expected + +%description libswscale-devel +The libswscale library performs image scaling and colorspace and +pixel format conversion operations. + +This subpackage contains the headers for FFmpeg libswscale. %prep -%autosetup -p1 -n ffmpeg-%{version} -# fix -O3 -g in host_cflags -sed -i "s|check_host_cflags -O3|check_host_cflags %{optflags}|" configure -mkdir -p _doc/examples -cp -pr doc/examples/{*.c,Makefile,README} _doc/examples/ +%autosetup -p1 -n %_name-%version %build -%{?_with_cuda:export PATH=${PATH}:%{_cuda_bindir}} -%{ff_configure}\ - --shlibdir=%{_libdir} \ -%if 0%{?_without_tools:1} - --disable-doc \ - --disable-ffmpeg --disable-ffplay --disable-ffprobe \ +./configure \ + --prefix="%_prefix" \ + --libdir="%_libdir" \ + --shlibdir="%_libdir" \ + --incdir="%_includedir/ffmpeg" \ + --extra-cflags="%optflags" \ + --optflags="%optflags" \ + --disable-htmlpages \ + --enable-pic \ + --disable-stripping \ + --enable-shared \ + --disable-static \ + --enable-gpl \ + --enable-version3 \ + --disable-openssl \ + --enable-gnutls \ + --enable-ladspa \ +%if %{with vulkan} + --enable-libshaderc \ + --enable-vulkan \ + --enable-libplacebo \ %endif -%ifarch %{ix86} - --cpu=%{_target_cpu} \ +%if %{with amf} + --enable-amf \ %endif -%ifarch %{ix86} x86_64 %{power64} - --enable-runtime-cpudetect \ +%if !%{with cuda_sdk} + --disable-cuda-sdk \ %endif -%ifarch %{power64} -%ifarch ppc64 - --cpu=g5 \ + --enable-libaom \ + --enable-libass \ + --enable-libbluray \ + --enable-libbs2b \ + --enable-libcdio \ + --enable-libdav1d \ + --enable-libdrm \ + --enable-libfontconfig \ + --enable-libfreetype \ + --enable-libfribidi \ + --enable-libgsm \ + --enable-libjack \ +%if %{with mysofa} + --enable-libmysofa \ %endif -%ifarch ppc64p7 - --cpu=power7 \ + --enable-libopenjpeg \ +%if %{with openmpt} + --enable-libopenmpt \ %endif -%ifarch ppc64le - --cpu=power8 \ + --enable-libopus \ + --enable-libpulse \ +%if %{with rubberband} + --enable-librubberband \ %endif - --enable-pic \ + --enable-libsoxr \ + --enable-libspeex \ + --enable-libssh \ + --enable-libsrt \ + --enable-libtheora \ + --enable-libtwolame \ +%if %{with vidstab} + --enable-libvidstab \ %endif -%ifarch %{arm} - --disable-runtime-cpudetect --arch=arm \ -%ifarch armv6hl - --cpu=armv6 \ +%if %{with vmaf} + --enable-libvmaf \ %endif -%ifarch armv7hl armv7hnl - --cpu=armv7-a \ - --enable-vfpv3 \ - --enable-thumb \ + --enable-libvorbis \ + --enable-libvpx \ + --enable-libwebp \ + --enable-libxml2 \ + --enable-libzimg \ + --enable-libzmq \ + --enable-libzvbi \ + --enable-lv2 \ + --enable-vaapi \ + --enable-vdpau \ + --enable-version3 \ +%if %{with fdk_aac} + --enable-libfdk-aac \ + --enable-nonfree \ %endif -%ifarch armv7hl - --disable-neon \ +%if %{with opencore} + --enable-libopencore-amrnb \ + --enable-libopencore-amrwb \ %endif -%ifarch armv7hnl - --enable-neon \ +%if %{with amrwb} + --enable-libvo-amrwbenc \ %endif +%if %{with x264} + --enable-libx264 \ %endif - || cat ffbuild/config.log - -%make_build V=1 -make documentation V=1 -make alltools V=1 - -%install -%make_install V=1 -%if 0%{!?flavor:1} -rm -r %{buildroot}%{_datadir}/%{name}/examples +%if %{with x265} + --enable-libx265 \ %endif -%if 0%{!?progs_suffix:1} -install -pm755 tools/qt-faststart %{buildroot}%{_bindir} +%if %{with xvid} + --enable-libxvid \ +%endif +%if !0%{?BUILD_ORIG} + --enable-muxers \ + --enable-demuxers \ + --disable-encoders \ + --disable-decoders \ + --disable-decoder=h264,hevc,vc1 \ + --enable-encoder="$(perl -pe 's{^(\w*).*}{$1,}gs' <%_sourcedir/enable_encoders)" \ + --enable-decoder="$(perl -pe 's{^(\w*).*}{$1,}gs' <%_sourcedir/enable_decoders)" \ + +for i in H264 HEVC VC1; do + grep -q "#define CONFIG_${i}_DECODER 0" config_components.h +done %endif -%ldconfig_scriptlets libs -%ldconfig_scriptlets -n libavdevice%{?flavor} +cat config.h +%make_build -%if 0%{!?_without_tools:1} -%files -%{_bindir}/ffmpeg%{?progs_suffix} -%{_bindir}/ffplay%{?progs_suffix} -%{_bindir}/ffprobe%{?progs_suffix} -%{!?progs_suffix:%{_bindir}/qt-faststart} -%{!?flavor: -%{_mandir}/man1/ffmpeg*.1* -%{_mandir}/man1/ffplay*.1* -%{_mandir}/man1/ffprobe*.1* -} -%{_datadir}/%{name} -%endif - -%files libs -%doc CREDITS README.md -%license COPYING.* -%{_libdir}/lib*.so.* -%exclude %{_libdir}/libavdevice%{?build_suffix}.so.* -%{!?flavor:%{_mandir}/man3/lib*.3.* -%exclude %{_mandir}/man3/libavdevice.3* -} - -%files -n libavdevice%{?flavor} -%{_libdir}/libavdevice%{?build_suffix}.so.* -%{!?flavor:%{_mandir}/man3/libavdevice.3*} - -%files devel -%doc MAINTAINERS doc/APIchanges doc/*.txt -%doc _doc/examples -%doc %{_docdir}/%{name}/*.html -%{_includedir}/%{name} -%{_libdir}/pkgconfig/lib*.pc -%{_libdir}/lib*.so +%global extratools aviocat cws2fws ffescape ffeval ffhash fourcc2pixfmt graph2dot ismindex pktdumper probetest qt-faststart seek_print sidxindex trasher +for i in %extratools; do + %make_build "tools/$i" +done + +%install +b="%buildroot" +%make_install install-man +rm -Rf "$b/%_datadir/ffmpeg/examples" +for i in %extratools; do + cp -a "tools/$i" "$b/%_bindir/" +done + +%post -n libavcodec60 -p /sbin/ldconfig +%postun -n libavcodec60 -p /sbin/ldconfig +%post -n libavdevice60 -p /sbin/ldconfig +%postun -n libavdevice60 -p /sbin/ldconfig +%post -n libavfilter9 -p /sbin/ldconfig +%postun -n libavfilter9 -p /sbin/ldconfig +%post -n libavformat60 -p /sbin/ldconfig +%postun -n libavformat60 -p /sbin/ldconfig +%post -n libavutil58 -p /sbin/ldconfig +%postun -n libavutil58 -p /sbin/ldconfig +%post -n libpostproc57 -p /sbin/ldconfig +%postun -n libpostproc57 -p /sbin/ldconfig +%post -n libswresample4 -p /sbin/ldconfig +%postun -n libswresample4 -p /sbin/ldconfig +%post -n libswscale7 -p /sbin/ldconfig +%postun -n libswscale7 -p /sbin/ldconfig + +%files +%doc Changelog CREDITS README.md +%_bindir/* +%_mandir/man1/ff*.1* +%_datadir/ffmpeg/ + +%files -n libavcodec60 +%license COPYING.GPLv2 LICENSE.md +%_libdir/libavcodec.so.* + +%files -n libavdevice60 +%license COPYING.GPLv2 LICENSE.md +%_libdir/libavdevice.so.* + +%files -n libavfilter9 +%license COPYING.GPLv2 LICENSE.md +%_libdir/libavfilter.so.* + +%files -n libavformat60 +%license COPYING.GPLv2 LICENSE.md +%_libdir/libavformat.so.* + +%files -n libavutil58 +%license COPYING.GPLv2 LICENSE.md +%_libdir/libavutil.so.* + +%files -n libpostproc57 +%license COPYING.GPLv2 LICENSE.md +%_libdir/libpostproc.so.* + +%files -n libswresample4 +%license COPYING.GPLv2 LICENSE.md +%_libdir/libswresample.so.* + +%files -n libswscale7 +%license COPYING.GPLv2 LICENSE.md +%_libdir/libswscale.so.* + +%files libavcodec-devel +%dir %_includedir/ffmpeg/ +%_includedir/ffmpeg/libavcodec/ +%_libdir/libavcodec.so +%_libdir/pkgconfig/libavcodec.pc +%_mandir/man3/libavcodec.3* + +%files libavdevice-devel +%dir %_includedir/ffmpeg/ +%_includedir/ffmpeg/libavdevice/ +%_libdir/libavdevice.so +%_libdir/pkgconfig/libavdevice.pc +%_mandir/man3/libavdevice.3* + +%files libavfilter-devel +%dir %_includedir/ffmpeg/ +%_includedir/ffmpeg/libavfilter/ +%_libdir/libavfilter.so +%_libdir/pkgconfig/libavfilter.pc +%_mandir/man3/libavfilter.3* + +%files libavformat-devel +%dir %_includedir/ffmpeg/ +%_includedir/ffmpeg/libavformat/ +%_libdir/libavformat.so +%_libdir/pkgconfig/libavformat.pc +%_mandir/man3/libavformat.3* + +%files libavutil-devel +%dir %_includedir/ffmpeg/ +%_includedir/ffmpeg/libavutil/ +%_libdir/libavutil.so +%_libdir/pkgconfig/libavutil.pc +%_mandir/man3/libavutil.3* + +%files libpostproc-devel +%dir %_includedir/ffmpeg/ +%_includedir/ffmpeg/libpostproc/ +%_libdir/libpostproc.so +%_libdir/pkgconfig/libpostproc.pc + +%files libswresample-devel +%dir %_includedir/ffmpeg/ +%_includedir/ffmpeg/libswresample/ +%_libdir/libswresample.so +%_libdir/pkgconfig/libswresample.pc +%_mandir/man3/libswresample.3* + +%files libswscale-devel +%dir %_includedir/ffmpeg/ +%_includedir/ffmpeg/libswscale/ +%_libdir/libswscale.so +%_libdir/pkgconfig/libswscale.pc +%_mandir/man3/libswscale.3* %changelog +* Thu Feb 22 2024 Eustace - 6.1-1 +- Upgrade to 6.1 + * Wed Feb 21 2024 Dongxing Wang - 4.4.4-2 - Fix obs failure diff --git a/fix-vmaf-model-path.patch b/fix-vmaf-model-path.patch deleted file mode 100644 index 5a5500a43775b1280f322166c6796988a33f016b..0000000000000000000000000000000000000000 --- a/fix-vmaf-model-path.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/libavfilter/vf_libvmaf.c b/libavfilter/vf_libvmaf.c -index 4d49127..bd6f451 100644 ---- a/libavfilter/vf_libvmaf.c -+++ b/libavfilter/vf_libvmaf.c -@@ -72,7 +72,7 @@ typedef struct LIBVMAFContext { - #define FLAGS AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM - - static const AVOption libvmaf_options[] = { -- {"model_path", "Set the model to be used for computing vmaf.", OFFSET(model_path), AV_OPT_TYPE_STRING, {.str="/usr/local/share/model/vmaf_v0.6.1.pkl"}, 0, 1, FLAGS}, -+ {"model_path", "Set the model to be used for computing vmaf.", OFFSET(model_path), AV_OPT_TYPE_STRING, {.str="/usr/share/model/vmaf_v0.6.1.pkl"}, 0, 1, FLAGS}, - {"log_path", "Set the file path to be used to store logs.", OFFSET(log_path), AV_OPT_TYPE_STRING, {.str=NULL}, 0, 1, FLAGS}, - {"log_fmt", "Set the format of the log (csv, json or xml).", OFFSET(log_fmt), AV_OPT_TYPE_STRING, {.str=NULL}, 0, 1, FLAGS}, - {"enable_transform", "Enables transform for computing vmaf.", OFFSET(enable_transform), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, FLAGS},