config BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS
	bool
	# fenv.h lacks FE_INVALID, FE_OVERFLOW & FE_UNDERFLOW on nios2
	# ffmpeg's configure script only supports mips64 (r1) variant
	default y if !BR2_nios2 && !BR2_mips_64r2 && !BR2_mips_64r6

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"
	select BR2_PACKAGE_FFMPEG_SWSCALE
	select BR2_PACKAGE_SDL
	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.

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
