SHA256
1
0
forked from pool/ffmpeg-4

Accepting request 620431 from home:scarabeus_iv

FFmpeg4

OBS-URL: https://build.opensuse.org/request/show/620431
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/ffmpeg-4?expand=0&rev=1
This commit is contained in:
Ismail Dönmez 2018-07-04 08:12:41 +00:00 committed by Git OBS Bridge
commit c460d3f4e7
15 changed files with 2396 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

9
baselibs.conf Normal file
View File

@ -0,0 +1,9 @@
libavcodec58
libavdevice58
libavfilter7
libavformat58
libavresample4
libavutil56
libpostproc55
libswresample3
libswscale5

19
cve-2017-17555.diff Normal file
View File

@ -0,0 +1,19 @@
From: Jan Engelhardt <jengelh@inai.de>
Date: 2018-02-12 13:30:29.256158366 +0100
References: https://bugzilla.suse.com/show_bug.cgi?id=1072366
References: CVE-2017-17555
Index: ffmpeg-4.0.1/libswresample/audioconvert.c
===================================================================
--- ffmpeg-4.0.1.orig/libswresample/audioconvert.c 2018-04-20 12:02:58.000000000 +0200
+++ ffmpeg-4.0.1/libswresample/audioconvert.c 2018-06-30 00:17:17.785924731 +0200
@@ -239,7 +239,7 @@ int swri_audio_convert(AudioConvert *ctx
const uint8_t *pi= ich < 0 ? ctx->silence : in->ch[ich];
uint8_t *po= out->ch[ch];
uint8_t *end= po + os*len;
- if(!po)
+ if (!pi || !po)
continue;
ctx->conv_f(po+off*os, pi+off*is, is, os, end);
}

98
enable_decoders Normal file
View File

@ -0,0 +1,98 @@
ac3
ansi # trivial
apng
ass # trivial
ayuv # trivial
bmp # trivial
dirac # dirac
exr # openEXR
ffv1 # ffmpeg
ffvhuff # ffmpeg
ffwavesynth # pseudo
flac # libFLAC
gif # libpng
gsm # libgsm
huffyuv # trivial+zlib
libcelt
libgsm
libopenjpeg
libopus
libschroedinger
libspeex
libvorbis
libvpx_vp8
libvpx_vp9
mjpeg # mjpegtools
mpeg1video
mpeg2video
#mpeg4
mp1 # twolame/lame
mp1float # twolame/lame
mp2 # twolame
mp2float # twolame
mp3 # lame
mp3float # lame
opus # libopus
pam # trivial
pbm # trivial
pcm_alaw # trivial
pcm_bluray
pcm_dvd
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
pgssub # mkvtoolnix
png # libpng
ppm # trivial
rawvideo # trivial
sgi # trivial
srt # trivial
ssa # trivial
sunrast # trivial
targa # trivial
text # trivial
theora # libtheora
tiff # libtiff
v210 # trivial
v210x # trivial
v308 # trivial
v408 # trivial
v410 # trivial
vorbis # libvorbis
vp3 # libav
vp5 # libav
vp6 # libav
vp6a # libav
vp6f # libav
vp8 # libvpx
vp9 # libvpx
webp # libwebp
xbm # trivial
xwd # xwd
y41p # trivial
yuv4 # trivial
zlib # pseudo

76
enable_encoders Normal file
View File

@ -0,0 +1,76 @@
apng # libpng
ass # trivial
ayuv # trival
bmp # trivial
ffv1
ffvhuff # trivial+zlib
flac # libFLAC
gif # libpng
huffyuv # trivial+zlib
jpegls
libgsm
libmp3lame
libopenjpeg
libopus
libschroedinger
libspeex
libtheora
libtwolame
libvorbis
libvpx_vp8
libvpx_vp9
libwebp
libwebp_anim
mjpeg # mjpegtools
mp2 # twolame
mp2fixed # twolame
opus
pam
pbm
pcm_alaw
pcm_f32be
pcm_f32le
pcm_f64be
pcm_f64le
pcm_mulaw
pcm_s16be
pcm_s16be_planar
pcm_s16le
pcm_s16le_planar
pcm_s24be
pcm_s24le
pcm_s24le_planar
pcm_s32be
pcm_s32le
pcm_s32le_planar
pcm_s8
pcm_s8_planar
pcm_u16be
pcm_u16le
pcm_u24be
pcm_u24le
pcm_u32be
pcm_u32le
pcm_u8
pcx
pgm
pgmyuv
png
ppm
sgi
srt
ssa
sunrast
targa
text
tiff
v210
v308
v408
v410
vorbis
xbm
xwd
y41p
yuv4
zlib

3
ffmpeg-4.0.1.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:605f5c01c60db35d3b617a79cabb2c7032412be243554602eeed1b628125c0ee
size 8663660

11
ffmpeg-4.0.1.tar.xz.asc Normal file
View File

@ -0,0 +1,11 @@
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQEcBAABAgAGBQJbJGabAAoJELQyLwTWdljYYtUH/1zw4/Fm1O7MfNGZjnpgA5b2
+1QxLIKPuZMNG6PjNwkqO1U7LxIB9KD3VXf3I43YqF6cJK8S8fasSWk4fQLaFAem
kcDN0dGw3l4YdnfM14pnz/OzovqeatpdlBKmMkkWZBHk9jYQThY+5+QajwzHGq/Q
fdRhbgrPFCjk7GnF4+/e5CBiB3p9qWhDcsUf9pqKeq5GCqAcK4Oqi2ko0/RRFw1p
NF9OaWqygZ/C/Si4E+x4b2v5KEreh1HOAtmMRsZ6grPvQ2nPoO+KFt5fZQM18ILZ
ulAcDOj5N5n8wP+hGKzKq9ZKDayfg9OIgTfsPlxH1i0To0+p+2q2mDVugm1LWBA=
=bhrG
-----END PGP SIGNATURE-----

1211
ffmpeg-4.changes Normal file

File diff suppressed because it is too large Load Diff

789
ffmpeg-4.spec Normal file
View File

@ -0,0 +1,789 @@
#
# spec file for package ffmpeg-4
#
# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
# 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} libavresample-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} \
%{preamble_string} ffmpeg-private-devel %{comparator} %{conflicts_version} \
%{nil}
%if 0%{?BUILD_ORIG}
%bcond_without nvidia
%else
%bcond_with nvidia
%endif
%bcond_with fdk_aac
%bcond_with librtmp
%bcond_with opencore
%bcond_with x264
%bcond_with x265
%bcond_with xvid
# Full build or just support package on older codestream
%bcond_without full_build
%if 0%{?suse_version} > 1500
%bcond_without mysofa
%bcond_without vidstab
%bcond_without srt
%else
%bcond_with mysofa
%bcond_with vidstab
%bcond_with srt
%endif
%if 0%{?suse_version} >= 1500
%bcond_without zimg
%bcond_without openmpt
%else
%bcond_with zimg
%bcond_with openmpt
%endif
%define _name ffmpeg
%define _major_version 4
%define _major_expected 5
Name: ffmpeg-4
Version: 4.0.1
Release: 0
Summary: Library for working with various multimedia formats
License: LGPL-2.1-or-later AND GPL-2.0-or-later
Group: Productivity/Multimedia/Video/Editors and Convertors
Url: https://ffmpeg.org/
#Freshcode-URL: http://freshcode.club/projects/ffmpeg
#Git-Clone: git://source.ffmpeg.org/ffmpeg
Source: https://www.ffmpeg.org/releases/%_name-%version.tar.xz
Source2: https://www.ffmpeg.org/releases/%_name-%version.tar.xz.asc
Source3: ffmpeg-rpmlintrc
Source4: enable_decoders
Source5: enable_encoders
Source99: baselibs.conf
Patch1: ffmpeg-libcdio_cdda-pkgconfig.patch
Patch2: ffmpeg-arm6l.diff
Patch3: ffmpeg-new-coder-errors.diff
Patch4: ffmpeg-codec-choice.diff
Patch5: cve-2017-17555.diff
BuildRequires: ladspa-devel
BuildRequires: libgsm-devel
BuildRequires: libmp3lame-devel
%if %{with mysofa}
BuildRequires: libmysofa-devel
%endif
BuildRequires: nasm
BuildRequires: pkg-config
BuildRequires: pkgconfig(alsa)
BuildRequires: pkgconfig(bzip2)
BuildRequires: pkgconfig(celt) >= 0.11.0
BuildRequires: pkgconfig(codec2)
BuildRequires: pkgconfig(enca)
BuildRequires: pkgconfig(fontconfig) >= 2.4.2
BuildRequires: pkgconfig(freetype2)
BuildRequires: pkgconfig(fribidi) >= 0.19.0
BuildRequires: pkgconfig(gnutls)
BuildRequires: pkgconfig(jack)
BuildRequires: pkgconfig(libass)
BuildRequires: pkgconfig(libbluray)
BuildRequires: pkgconfig(libbs2b)
BuildRequires: pkgconfig(libcdio)
BuildRequires: pkgconfig(libcdio_paranoia)
BuildRequires: pkgconfig(libdc1394-2)
BuildRequires: pkgconfig(libgme)
BuildRequires: pkgconfig(liboil-0.3) >= 0.3.15
BuildRequires: pkgconfig(libopenjp2) >= 2.1.0
BuildRequires: pkgconfig(libopenjpeg)
%if %{with openmpt}
BuildRequires: pkgconfig(libopenmpt)
%endif
BuildRequires: pkgconfig(libpng)
BuildRequires: pkgconfig(libpulse)
BuildRequires: pkgconfig(libraw1394)
BuildRequires: pkgconfig(libssh)
BuildRequires: pkgconfig(libv4l2)
BuildRequires: pkgconfig(libva) >= 0.35.0
BuildRequires: pkgconfig(libwebp) >= 0.4
BuildRequires: pkgconfig(libxml-2.0)
BuildRequires: pkgconfig(libzmq)
BuildRequires: pkgconfig(lilv-0)
BuildRequires: pkgconfig(ogg)
BuildRequires: pkgconfig(opus)
BuildRequires: pkgconfig(rubberband)
BuildRequires: pkgconfig(sdl2)
BuildRequires: pkgconfig(soxr)
BuildRequires: pkgconfig(speex)
%if %{with srt}
BuildRequires: pkgconfig(srt)
%endif
BuildRequires: pkgconfig(theora) >= 1.1
BuildRequires: pkgconfig(twolame)
BuildRequires: pkgconfig(vdpau)
%if %{with vidstab}
BuildRequires: pkgconfig(vidstab) >= 0.98
%endif
BuildRequires: pkgconfig(vorbis)
BuildRequires: pkgconfig(vpx) >= 1.4.0
BuildRequires: pkgconfig(x11)
BuildRequires: pkgconfig(xcb)
BuildRequires: pkgconfig(xcb-render)
BuildRequires: pkgconfig(xcb-shape)
BuildRequires: pkgconfig(xcb-shm)
BuildRequires: pkgconfig(xcb-xfixes)
BuildRequires: pkgconfig(xext)
BuildRequires: pkgconfig(xfixes)
%if %{with zimg}
BuildRequires: pkgconfig(zimg)
%endif
BuildRequires: pkgconfig(zlib)
BuildRequires: pkgconfig(zvbi-0.2) >= 0.2.28
%if %{with fdk_aac}
BuildRequires: pkgconfig(fdk-aac)
%endif
%if %{with librtmp}
BuildRequires: pkgconfig(librtmp)
%endif
%if %{with nvidia}
BuildRequires: pkgconfig(ffnvcodec)
%endif
%if %{with xvid}
BuildRequires: libxvidcore-devel
%endif
%if %{with opencore}
BuildRequires: pkgconfig(opencore-amrnb)
%endif
%if %{with x264}
BuildRequires: pkgconfig(x264)
%endif
%if %{with x265}
BuildRequires: pkgconfig(x265)
%endif
Provides: ffmpeg-tools = %{version}
Obsoletes: ffmpeg-tools < %{version}
Provides: ffmpeg = %version
Obsoletes: ffmpeg < %version
Requires: libavcodec58 = %version-%release
Requires: libavdevice58 = %version-%release
Requires: libavfilter7 = %version-%release
Requires: libavformat58 = %version-%release
Requires: libavresample4 = %version-%release
Requires: libavutil56 = %version-%release
Requires: libpostproc55 = %version-%release
Requires: libswresample3 = %version-%release
Requires: libswscale5 = %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
%package -n libavcodec58
Summary: FFmpeg codec library
# For mozillas
Group: System/Libraries
Requires: libavutil56 = %version-%release
Requires: libswresample3 = %version-%release
Provides: libavcodec = %version-%release
%if 0%{?BUILD_ORIG}
Provides: libavcodec-full = %version-%release
# This can be required by packages likes vlc-codecs - following the shlib name to not get random lib providers
Provides: libavcodec58(unrestricted)
%endif
%description -n libavcodec58
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
%package libavcodec-devel
Summary: Development files for FFmpeg's codec library
Group: Development/Libraries/C and C++
Provides: libavcodec-devel = %version-%release
Conflicts: libavcodec-devel
Requires: %{name}-libavresample-devel = %version-%release
Requires: %{name}-libavutil-devel = %version-%release
Requires: libavcodec58 = %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 libavdevice58
Summary: FFmpeg device library
Group: System/Libraries
Requires: libavcodec58 = %version-%release
Requires: libavfilter7 = %version-%release
Requires: libavformat58 = %version-%release
Requires: libavutil56 = %version-%release
%description -n libavdevice58
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
Conflicts: libavdevice-devel
Requires: %{name}-libavcodec-devel = %version-%release
Requires: %{name}-libavfilter-devel = %version-%release
Requires: %{name}-libavformat-devel = %version-%release
Requires: %{name}-libavresample-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: libavdevice58 = %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 libavfilter7
Summary: FFmpeg audio and video filtering library
Group: System/Libraries
Requires: libavcodec58 = %version-%release
Requires: libavformat58 = %version-%release
Requires: libavresample4 = %version-%release
Requires: libavutil56 = %version-%release
Requires: libpostproc55 = %version-%release
Requires: libswresample3 = %version-%release
Requires: libswscale5 = %version-%release
%description -n libavfilter7
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
Conflicts: libavfilter-devel
Requires: %{name}-libavcodec-devel = %version-%release
Requires: %{name}-libavformat-devel = %version-%release
Requires: %{name}-libavresample-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: libavfilter7 = %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 libavformat58
Summary: FFmpeg's stream format library
Group: System/Libraries
Requires: libavcodec58 = %version-%release
Requires: libavutil56 = %version-%release
%description -n libavformat58
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
Conflicts: libavformat-devel
Requires: %{name}-libavcodec-devel = %version-%release
Requires: %{name}-libavutil-devel = %version-%release
Requires: %{name}-libswresample-devel = %version-%release
Requires: libavformat58 = %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 libavresample4
Summary: FFmpeg alternate audio resampling library
Group: System/Libraries
Requires: libavutil56 = %version-%release
%description -n libavresample4
An audio resampling library that is being provided for drop-in
compatibility with libav.
It is advised to use libswresample for new code.
%package libavresample-devel
Summary: Development files for libavresample as present in FFmpeg
Group: Development/Libraries/C and C++
Provides: libavresample-devel = %version-%release
Conflicts: libavresample-devel
Requires: %{name}-libavutil-devel = %version-%release
Requires: libavresample4 = %version-%release
%devel_conflicts -c < -v %{_major_version}
%devel_conflicts -c >= -v %{_major_expected}
%description libavresample-devel
An audio resampling library that is being provided for drop-in
compatibility with libav.
It is advised to use libswresample for new code.
This subpackage contains the headers for FFmpeg's copy of libavresample.
%package -n libavutil56
Summary: FFmpeg's utility library
Group: System/Libraries
%description -n libavutil56
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
Conflicts: libavutil-devel
Requires: libavutil56 = %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 libpostproc55
Summary: FFmpeg post-processing library
Group: System/Libraries
Requires: libavutil56 = %version-%release
%description -n libpostproc55
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
Conflicts: libpostproc-devel
Requires: %{name}-libavutil-devel = %version-%release
Requires: libpostproc55 = %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 libswresample3
Summary: FFmpeg software resampling library
Group: System/Libraries
Requires: libavutil56 = %version-%release
%description -n libswresample3
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: libsvresample-devel = %version-%release
Conflicts: libswresample-devel
Requires: %{name}-libavutil-devel = %version-%release
Requires: libswresample3 = %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 libswscale5
Summary: FFmpeg image scaling and colorspace/pixel conversion library
Group: System/Libraries
Requires: libavutil56 = %version-%release
%description -n libswscale5
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++
Provides: libswscale-devel = %version-%release
Conflicts: libswscale-devel
Requires: %{name}-libavutil-devel = %version-%release
Requires: libswscale5 = %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.
%package private-devel
Summary: Some FFmpeg private headers
Group: Development/Libraries/C and C++
Requires: %{name}-libavcodec-devel = %version-%release
Requires: %{name}-libavformat-devel = %version-%release
Requires: %{name}-libavutil-devel = %version-%release
Provides: ffmpeg-private-devel = %version
Conflicts: ffmpeg-private-devel
%devel_conflicts -c < -v %{_major_version}
%devel_conflicts -c >= -v %{_major_expected}
%description private-devel
FFmpeg is a multimedia framework, able to decode, encode,
transcode, mux, demux, stream, filter and play several formats
that humans and machines have created.
This package contains some private headers for libavformat, libavcodec and
libavutil which are needed by libav-tools to build. No other package apart
from libav should depend on these private headers which are expected to
break compatibility without any notice.
%prep
%setup -q -n %_name-%version
%autopatch -p1
%build
CFLAGS="%optflags" \
./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 \
--disable-openssl \
--enable-avresample \
--enable-gnutls \
--enable-ladspa \
%if ! %{with nvidia}
--disable-cuda \
--disable-cuvid \
%endif
--enable-libass \
--enable-libbluray \
--enable-libcelt \
--enable-libcdio \
--enable-libcodec2 \
--enable-libdc1394 \
--enable-libfontconfig \
--enable-libfreetype \
--enable-libfribidi \
--enable-libgsm \
--enable-libjack \
--enable-libmp3lame \
%if %{with mysofa}
--enable-libmysofa \
%endif
--enable-libopenjpeg \
%if %{with openmpt}
--enable-libopenmpt \
%endif
--enable-libopus \
--enable-libpulse \
--enable-librubberband \
--enable-libsoxr \
--enable-libspeex \
--enable-libssh \
%if %{with srt}
--enable-libsrt \
%endif
--enable-libtheora \
--enable-libtwolame \
%if %{with vidstab}
--enable-libvidstab \
%endif
--enable-libvorbis \
--enable-libv4l2 \
--enable-libvpx \
--enable-libwebp \
--enable-libxml2 \
%if %{with zimg}
--enable-libzimg \
%endif
--enable-libzmq \
--enable-libzvbi \
--enable-lv2 \
--enable-vaapi \
--enable-vdpau \
%if %{with fdk_aac}
--enable-libfdk_aac \
--enable-nonfree \
%endif
%if %{with opencore}
--enable-libopencore-amrnb \
--enable-libopencore-amrwb \
--enable-version3 \
%endif
%if %{with x264}
--enable-libx264 \
%endif
%if %{with x265}
--enable-libx265 \
%endif
%if %{with librtmp}
--enable-librtmp \
%endif
%if %{with xvid}
--enable-libxvid \
%endif
%if !0%{?BUILD_ORIG}
--enable-muxers \
--enable-demuxers \
--disable-encoders \
--disable-decoders \
--disable-decoder=mpeg4,h263,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 MPEG4 H263 H264 HEVC VC1; do
grep -q "#define CONFIG_${i}_DECODER 0" config.h
done
%endif
cat config.h
make %{?_smp_mflags} V=1
%global extratools aviocat cws2fws ffescape ffeval ffhash fourcc2pixfmt graph2dot ismindex pktdumper probetest qt-faststart seek_print sidxindex trasher
for i in %extratools; do
make "tools/$i"
done
%install
b="%buildroot"
%make_install install-man
%if %{with full_build}
rm -Rf "$b/%_datadir/ffmpeg/examples"
for i in %extratools; do
cp -a "tools/$i" "$b/%_bindir/"
done
%else
rm -Rf "$b/%_bindir" "$b/%_mandir" "$b/%_datadir"
%endif
# Install private headers required by libav-tools
for i in libavformat/options_table.h libavformat/os_support.h \
libavformat/internal.h libavcodec/options_table.h libavutil/libm.h \
libavutil/internal.h libavutil/colorspace.h libavutil/timer.h \
libavutil/x86/emms.h libavutil/aarch64/timer.h libavutil/arm/timer.h \
libavutil/bfin/timer.h libavutil/ppc/timer.h libavutil/x86/timer.h; do
mkdir -p "$b/%_includedir/ffmpeg/private/"`dirname $i`
cp -a $i "$b/%_includedir/ffmpeg/private/$i"
done
%post -n libavcodec58 -p /sbin/ldconfig
%postun -n libavcodec58 -p /sbin/ldconfig
%post -n libavdevice58 -p /sbin/ldconfig
%postun -n libavdevice58 -p /sbin/ldconfig
%post -n libavfilter7 -p /sbin/ldconfig
%postun -n libavfilter7 -p /sbin/ldconfig
%post -n libavformat58 -p /sbin/ldconfig
%postun -n libavformat58 -p /sbin/ldconfig
%post -n libavresample4 -p /sbin/ldconfig
%postun -n libavresample4 -p /sbin/ldconfig
%post -n libavutil56 -p /sbin/ldconfig
%postun -n libavutil56 -p /sbin/ldconfig
%post -n libpostproc55 -p /sbin/ldconfig
%postun -n libpostproc55 -p /sbin/ldconfig
%post -n libswresample3 -p /sbin/ldconfig
%postun -n libswresample3 -p /sbin/ldconfig
%post -n libswscale5 -p /sbin/ldconfig
%postun -n libswscale5 -p /sbin/ldconfig
%if %{with full_build}
%files
%doc Changelog CREDITS README.md
%_bindir/*
%_mandir/man1/ff*.1*
%_datadir/ffmpeg/
%endif
%files -n libavcodec58
%license COPYING.GPLv2 LICENSE.md
%_libdir/libavcodec.so.*
%files -n libavdevice58
%license COPYING.GPLv2 LICENSE.md
%_libdir/libavdevice.so.*
%files -n libavfilter7
%license COPYING.GPLv2 LICENSE.md
%_libdir/libavfilter.so.*
%files -n libavformat58
%license COPYING.GPLv2 LICENSE.md
%_libdir/libavformat.so.*
%files -n libavresample4
%license COPYING.GPLv2 LICENSE.md
%_libdir/libavresample.so.*
%files -n libavutil56
%license COPYING.GPLv2 LICENSE.md
%_libdir/libavutil.so.*
%files -n libpostproc55
%license COPYING.GPLv2 LICENSE.md
%_libdir/libpostproc.so.*
%files -n libswresample3
%license COPYING.GPLv2 LICENSE.md
%_libdir/libswresample.so.*
%files -n libswscale5
%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 libavresample-devel
%dir %_includedir/ffmpeg/
%_includedir/ffmpeg/libavresample/
%_libdir/libavresample.so
%_libdir/pkgconfig/libavresample.pc
%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*
%files private-devel
%_includedir/ffmpeg/private/
%changelog

17
ffmpeg-arm6l.diff Normal file
View File

@ -0,0 +1,17 @@
---
libavutil/arm/timer.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Index: ffmpeg-3.0.1/libavutil/arm/timer.h
===================================================================
--- ffmpeg-3.0.1.orig/libavutil/arm/timer.h
+++ ffmpeg-3.0.1/libavutil/arm/timer.h
@@ -24,7 +24,7 @@
#include <stdint.h>
#include "config.h"
-#if HAVE_INLINE_ASM && defined(__ARM_ARCH_7A__)
+#if HAVE_INLINE_ASM && defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_6ZK__)
#define AV_READ_TIME read_time

56
ffmpeg-codec-choice.diff Normal file
View File

@ -0,0 +1,56 @@
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 | 19 +++++++++++++------
1 file changed, 13 insertions(+), 6 deletions(-)
Index: ffmpeg-4.0.1/libavformat/matroskaenc.c
===================================================================
--- ffmpeg-4.0.1.orig/libavformat/matroskaenc.c 2018-04-20 12:02:57.000000000 +0200
+++ ffmpeg-4.0.1/libavformat/matroskaenc.c 2018-06-30 00:17:17.773924594 +0200
@@ -2747,16 +2747,24 @@ static const AVClass matroska_class = {
.version = LIBAVUTIL_VERSION_INT,
};
+#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
AVOutputFormat ff_matroska_muxer = {
.name = "matroska",
.long_name = NULL_IF_CONFIG_SMALL("Matroska"),
.mime_type = "video/x-matroska",
.extensions = "mkv",
.priv_data_size = sizeof(MatroskaMuxContext),
- .audio_codec = CONFIG_LIBVORBIS_ENCODER ?
- AV_CODEC_ID_VORBIS : AV_CODEC_ID_AC3,
- .video_codec = CONFIG_LIBX264_ENCODER ?
- AV_CODEC_ID_H264 : AV_CODEC_ID_MPEG4,
+ .audio_codec = PREFAUDIO,
+ .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,
.write_header = mkv_write_header,
.write_packet = mkv_write_flush_packet,
@@ -2815,8 +2823,7 @@ AVOutputFormat ff_matroska_audio_muxer =
.mime_type = "audio/x-matroska",
.extensions = "mka",
.priv_data_size = sizeof(MatroskaMuxContext),
- .audio_codec = CONFIG_LIBVORBIS_ENCODER ?
- AV_CODEC_ID_VORBIS : AV_CODEC_ID_AC3,
+ .audio_codec = PREFAUDIO,
.video_codec = AV_CODEC_ID_NONE,
.init = mkv_init,
.write_header = mkv_write_header,

View File

@ -0,0 +1,17 @@
---
configure | 2 ++
1 file changed, 2 insertions(+)
Index: ffmpeg-4.0.1/configure
===================================================================
--- ffmpeg-4.0.1.orig/configure 2018-06-16 03:12:16.000000000 +0200
+++ ffmpeg-4.0.1/configure 2018-06-30 00:17:17.733924139 +0200
@@ -6243,6 +6243,8 @@ enabled libjack &&
enabled sndio && check_lib sndio sndio.h sio_open -lsndio
if enabled libcdio; then
+ # cdio_cdda needs -lrt, get it from pkg-config from the external pkg
+ #l=$(pkg-config --libs libcdio_paranoia libcdio_cdda libcdio)
check_pkg_config libcdio libcdio_paranoia "cdio/cdda.h cdio/paranoia.h" cdio_cddap_open ||
check_pkg_config libcdio libcdio_paranoia "cdio/paranoia/cdda.h cdio/paranoia/paranoia.h" cdio_cddap_open ||
check_lib libcdio "cdio/cdda.h cdio/paranoia.h" cdio_cddap_open -lcdio_paranoia -lcdio_cdda -lcdio ||

View File

@ -0,0 +1,60 @@
From: Jan Engelhardt <jengelh@inai.de>
Date: 2016-04-10 23:23:53.138440254 +0200
Improve the error messages a bit to say what's really going on
(in light of openSUSE's reduced build).
---
fftools/ffmpeg.c | 2 +-
fftools/ffmpeg_filter.c | 4 ++--
fftools/ffmpeg_opt.c | 2 +-
3 files changed, 4 insertions(+), 4 deletions(-)
Index: ffmpeg-4.0.1/fftools/ffmpeg.c
===================================================================
--- ffmpeg-4.0.1.orig/fftools/ffmpeg.c 2018-06-16 03:12:16.000000000 +0200
+++ ffmpeg-4.0.1/fftools/ffmpeg.c 2018-06-30 00:17:17.757924412 +0200
@@ -2883,7 +2883,7 @@ static int init_input_stream(int ist_ind
if (ist->decoding_needed) {
AVCodec *codec = ist->dec;
if (!codec) {
- snprintf(error, error_len, "Decoder (codec %s) not found for input stream #%d:%d",
+ snprintf(error, error_len, "This build of ffmpeg does not include a \"%s\" decoder needed for input stream #%d:%d.",
avcodec_get_name(ist->dec_ctx->codec_id), ist->file_index, ist->st->index);
return AVERROR(EINVAL);
}
Index: ffmpeg-4.0.1/fftools/ffmpeg_filter.c
===================================================================
--- ffmpeg-4.0.1.orig/fftools/ffmpeg_filter.c 2018-04-20 12:02:55.000000000 +0200
+++ ffmpeg-4.0.1/fftools/ffmpeg_filter.c 2018-06-30 00:17:17.757924412 +0200
@@ -972,7 +972,7 @@ static int configure_input_filter(Filter
{
if (!ifilter->ist->dec) {
av_log(NULL, AV_LOG_ERROR,
- "No decoder for stream #%d:%d, filtering impossible\n",
+ "This build of ffmpeg does not have a suitable decoder for stream #%d:%d enabled, filtering impossible\n",
ifilter->ist->file_index, ifilter->ist->st->index);
return AVERROR_DECODER_NOT_FOUND;
}
@@ -1122,7 +1122,7 @@ int configure_filtergraph(FilterGraph *f
if (!ost->enc) {
/* identical to the same check in ffmpeg.c, needed because
complex filter graphs are initialized earlier */
- av_log(NULL, AV_LOG_ERROR, "Encoder (codec %s) not found for output stream #%d:%d\n",
+ av_log(NULL, AV_LOG_ERROR, "This build of ffmpeg does not include a \"%s\" encoder needed for output stream #%d:%d.\n",
avcodec_get_name(ost->st->codecpar->codec_id), ost->file_index, ost->index);
ret = AVERROR(EINVAL);
goto fail;
Index: ffmpeg-4.0.1/fftools/ffmpeg_opt.c
===================================================================
--- ffmpeg-4.0.1.orig/fftools/ffmpeg_opt.c 2018-04-20 12:02:55.000000000 +0200
+++ ffmpeg-4.0.1/fftools/ffmpeg_opt.c 2018-06-30 00:17:17.757924412 +0200
@@ -1277,7 +1277,7 @@ static int choose_encoder(OptionsContext
if (!ost->enc) {
av_log(NULL, AV_LOG_FATAL, "Automatic encoder selection failed for "
"output stream #%d:%d. Default encoder for format %s (codec %s) is "
- "probably disabled. Please choose an encoder manually.\n",
+ "probably disabled or this build of ffmpeg does not include that codec. Please choose an encoder manually.\n",
ost->file_index, ost->index, s->oformat->name,
avcodec_get_name(ost->st->codecpar->codec_id));
return AVERROR_ENCODER_NOT_FOUND;

6
ffmpeg-rpmlintrc Normal file
View File

@ -0,0 +1,6 @@
# manpages for such executables aren't supplied
addFilter("no-manual-page-for-binary")
# our libraries really have those names and versions
addFilter("shlib-fixed-dependency")
addFilter("no-dependency-on libffmpeg.*")