config BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS
	bool
	default y
	# fenv.h lacks FE_INVALID, FE_OVERFLOW & FE_UNDERFLOW on nios2
	depends on !BR2_nios2
	# No support for ARMv7-M in the ARM assembly logic
	depends on !BR2_ARM_CPU_ARMV7M
	# 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.
	depends on !BR2_m68k_cf
	# assertion fail in binutils
	depends on !(BR2_or1k && !BR2_TOOLCHAIN_GCC_AT_LEAST_9)

menuconfig BR2_PACKAGE_FFMPEG
	bool "ffmpeg"
	depends on BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS
	depends on BR2_TOOLCHAIN_HAS_THREADS
	help
	  FFmpeg is a complete, cross-platform solution to record,
	  convert and stream audio and video.

	  https://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_FFPROBE
	bool "Build ffprobe"
	help
	  FFprobe is a utility to determine the audio and video
	  characteristics of a container file.

config BR2_PACKAGE_FFMPEG_XCBGRAB
	bool "Build X11 screen grabbing"
	depends on BR2_PACKAGE_XORG7
	select BR2_PACKAGE_LIBXCB
	help
	  X11 screen grabbing using libxcb.

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

comment "ffmpeg needs a toolchain w/ threads"
	depends on !BR2_TOOLCHAIN_HAS_THREADS
