buildroot/package/ffmpeg/Config.in
Thomas Petazzoni 2d9f199061 ffmpeg: do not build on m68k coldfire
m68k coldfire causes ffmpeg to think atomic intrinsics are available,
so ffmpeg doesn't use its fallback on pthreads based atomic
operations. However, m68k coldfire doesn't provide properly working
sync 4 atomics, causing a build failure.

Since fixing ffmpeg on m68k coldfire is not really important (who
wants to use ffmpeg on such platform?), we simply disallow the
selection of ffmpeg on this platform.

Alternate approaches have been proposed in the past:

 - Bernd Kuhls proposed in http://patchwork.ozlabs.org/patch/766909/
   to add a dependency on BR2_TOOLCHAIN_HAS_SYNC_4, but this is wrong
   because other architectures that lack sync 4 atomics, such as
   Sparc, can build ffmpeg perfectly fine thanks to the pthreads based
   fallback code.

 - Waldemar Brodkorb proposed in
   https://patchwork.ozlabs.org/patch/756664/ to add an explicit
   option in ffmpeg configure to force the use of pthreads based
   atomics. However, we believe that running ffmpeg on m68k coldfire
   is such an unlikely use case that it isn't worth carrying a patch
   for this.

Fixes:

  http://autobuild.buildroot.net/results/b3e/b3eaaf6d73cd49f5919143aeaa5cbb4d15a7ccc3/

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-05-29 23:31:51 +02:00

184 lines
5 KiB
Plaintext

config BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS
bool
# fenv.h lacks FE_INVALID, FE_OVERFLOW & FE_UNDERFLOW on nios2
# No support for ARMv7-M in the ARM assembly logic
# Microblaze build affected by gcc PR71124 (infinite loop)
# m68k coldfire causes a build failure, because the check for
# atomics (atomic_store) succeeds, which causes ffmpeg to
# think atomic intrinsics are available, while they are
# not. See https://patchwork.ozlabs.org/patch/756664/ and
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68467 for more
# details.
default y if !BR2_nios2 && !BR2_ARM_CPU_ARMV7M && !BR2_microblaze && !BR2_m68k_cf
menuconfig BR2_PACKAGE_FFMPEG
bool "ffmpeg"
depends on BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS
help
FFmpeg is a complete, cross-platform solution to record, convert
and stream audio and video.
http://www.ffmpeg.org
if BR2_PACKAGE_FFMPEG
config BR2_PACKAGE_FFMPEG_GPL
bool "Enable GPL code"
help
allow use of GPL code, the resulting libs and binaries will
be under GPL
config BR2_PACKAGE_FFMPEG_NONFREE
bool "Enable nonfree code"
help
allow use of nonfree code, the resulting libs and binaries
will be unredistributable
config BR2_PACKAGE_FFMPEG_FFMPEG
bool "Build ffmpeg (the command line application)"
default y
help
FFmpeg is a very fast video and audio converter.
It can also grab from a live audio/video source.
It is not needed if you want to link the FFmpeg libraries
to your application.
config BR2_PACKAGE_FFMPEG_FFPLAY
bool "Build ffplay"
depends on !BR2_STATIC_LIBS # sdl2
select BR2_PACKAGE_FFMPEG_SWSCALE
select BR2_PACKAGE_SDL2
help
FFplay is a very simple and portable media player using the
FFmpeg libraries and the SDL library.
It is mostly used as a testbed for the various FFmpeg APIs.
comment "ffplay needs a toolchain w/ dynamic library"
depends on BR2_STATIC_LIBS
config BR2_PACKAGE_FFMPEG_FFSERVER
bool "Build ffserver"
depends on BR2_USE_MMU # fork()
help
FFserver is a streaming server for both audio and video.
config BR2_PACKAGE_FFMPEG_FFPROBE
bool "Build ffprobe"
help
FFprobe is a utility to determine the audio and video
characteristics of a container file.
config BR2_PACKAGE_FFMPEG_AVRESAMPLE
bool "Build libavresample"
help
Avresample is a audio conversion library for compatibility.
config BR2_PACKAGE_FFMPEG_POSTPROC
bool "Build libpostproc"
depends on BR2_PACKAGE_FFMPEG_GPL
help
Postproc is a library of video postprocessing routines.
config BR2_PACKAGE_FFMPEG_SWSCALE
bool "Build libswscale"
help
Swscale is a library of video scaling routines.
config BR2_PACKAGE_FFMPEG_ENCODERS
string "Enabled encoders"
default "all"
help
Space-separated list of encoders to build in FFmpeg,
or "all" to build all of them.
Run ./configure --list-encoders in the ffmpeg sources
directory to know the available options.
config BR2_PACKAGE_FFMPEG_DECODERS
string "Enabled decoders"
default "all"
help
Space-separated list of decoders to build in FFmpeg,
or "all" to build all of them.
Run ./configure --list-decoders in the ffmpeg sources
directory to know the available options.
config BR2_PACKAGE_FFMPEG_MUXERS
string "Enabled muxers"
default "all"
help
Space-separated list of muxers to build in FFmpeg,
or "all" to build all of them.
Run ./configure --list-muxers in the ffmpeg sources
directory to know the available options.
config BR2_PACKAGE_FFMPEG_DEMUXERS
string "Enabled demuxers"
default "all"
help
Space-separated list of demuxers to build in FFmpeg,
or "all" to build all of them.
Run ./configure --list-demuxers in the ffmpeg sources
directory to know the available options.
config BR2_PACKAGE_FFMPEG_PARSERS
string "Enabled parsers"
default "all"
help
Space-separated list of parsers to build in FFmpeg,
or "all" to build all of them.
Run ./configure --list-parsers in the ffmpeg sources
directory to know the available options.
config BR2_PACKAGE_FFMPEG_BSFS
string "Enabled bitstreams"
default "all"
help
Space-separated list of bitstream filters to build in FFmpeg,
or "all" to build all of them.
Run ./configure --list-bsfs in the ffmpeg sources
directory to know the available options.
config BR2_PACKAGE_FFMPEG_PROTOCOLS
string "Enabled protocols"
default "all"
help
Space-separated list of protocols to build in FFmpeg,
or "all" to build all of them.
Run ./configure --list-protocols in the ffmpeg sources
directory to know the available options.
config BR2_PACKAGE_FFMPEG_FILTERS
string "Enabled filters"
default "all"
help
Space-separated list of filters to build in FFmpeg,
or "all" to build all of them.
Run ./configure --list-filters in the ffmpeg sources
directory to know the available options.
config BR2_PACKAGE_FFMPEG_INDEVS
bool "Enable input devices"
default y
config BR2_PACKAGE_FFMPEG_OUTDEVS
bool "Enable output devices"
default y
config BR2_PACKAGE_FFMPEG_EXTRACONF
string "Additional parameters for ./configure"
default ""
help
Extra parameters that will be appended to FFmpeg's
./configure commandline.
endif