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
