config BR2_PACKAGE_VLC
	bool "vlc"
	depends on BR2_USE_MMU # fork()
	depends on BR2_INSTALL_LIBSTDCPP
	depends on !BR2_STATIC_LIBS
	depends on BR2_USE_WCHAR
	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # C++11
	depends on BR2_TOOLCHAIN_HAS_THREADS
	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7
	select BR2_PACKAGE_LIBVORBIS if BR2_PACKAGE_OPUS
	select BR2_PACKAGE_VLC_OPENCV_BACKEND if BR2_PACKAGE_OPENCV
	select BR2_PACKAGE_VLC_OPENCV3_BACKEND if BR2_PACKAGE_OPENCV3
	select BR2_PACKAGE_ZLIB if BR2_PACKAGE_TAGLIB
	help
	  VLC is a free and open source cross-platform multimedia player
	  and framework that plays most multimedia files as well as DVD,
	  Audio CD, VCD, and various streaming protocols.

	  http://www.videolan.org/vlc/

config BR2_PACKAGE_VLC_OPENCV_BACKEND
	bool
	select BR2_PACKAGE_OPENCV_LIB_IMGPROC
	select BR2_PACKAGE_OPENCV_LIB_OBJDETECT

config BR2_PACKAGE_VLC_OPENCV3_BACKEND
	bool
	select BR2_PACKAGE_OPENCV3_LIB_IMGPROC
	select BR2_PACKAGE_OPENCV3_LIB_OBJDETECT

comment "vlc needs a toolchain w/ C++, dynamic library, wchar, threads, gcc >= 4.9, headers >= 3.7"
	depends on BR2_USE_MMU
	depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS \
		|| !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS \
		|| !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 \
		|| !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7
