|  |  | @@ -732,12 +732,11 @@ is_in(){ | 
		
	
		
			
			|  |  |  | return 1 | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | do_check_deps(){ | 
		
	
		
			
			|  |  |  | check_deps(){ | 
		
	
		
			
			|  |  |  | for cfg; do | 
		
	
		
			
			|  |  |  | enabled ${cfg}_checking && die "Circular dependency for $cfg." | 
		
	
		
			
			|  |  |  | disabled ${cfg}_checking && continue | 
		
	
		
			
			|  |  |  | enable ${cfg}_checking | 
		
	
		
			
			|  |  |  | append allopts $cfg | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | eval dep_all="\$${cfg}_deps" | 
		
	
		
			
			|  |  |  | eval dep_any="\$${cfg}_deps_any" | 
		
	
	
		
			
				|  |  | @@ -748,7 +747,7 @@ do_check_deps(){ | 
		
	
		
			
			|  |  |  | eval dep_ifn="\$${cfg}_if_any" | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | pushvar cfg dep_all dep_any dep_con dep_sel dep_sgs dep_ifa dep_ifn | 
		
	
		
			
			|  |  |  | do_check_deps $dep_all $dep_any $dep_con $dep_sel $dep_sgs $dep_ifa $dep_ifn | 
		
	
		
			
			|  |  |  | check_deps $dep_all $dep_any $dep_con $dep_sel $dep_sgs $dep_ifa $dep_ifn | 
		
	
		
			
			|  |  |  | popvar cfg dep_all dep_any dep_con dep_sel dep_sgs dep_ifa dep_ifn | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | [ -n "$dep_ifa" ] && { enabled_all $dep_ifa && enable_weak $cfg; } | 
		
	
	
		
			
				|  |  | @@ -758,24 +757,15 @@ do_check_deps(){ | 
		
	
		
			
			|  |  |  | disabled_all $dep_con || { disable $cfg && requested $cfg && die "ERROR: $cfg requested, but some conflicting dependencies are unsatisfied: $dep_con"; } | 
		
	
		
			
			|  |  |  | disabled_any $dep_sel && { disable $cfg && requested $cfg && die "ERROR: $cfg requested, but some selected dependency is unsatisfied: $dep_sel"; } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | if enabled $cfg; then | 
		
	
		
			
			|  |  |  | enable_deep $dep_sel | 
		
	
		
			
			|  |  |  | enable_deep_weak $dep_sgs | 
		
	
		
			
			|  |  |  | fi | 
		
	
		
			
			|  |  |  | enabled $cfg && enable_deep_weak $dep_sel $dep_sgs | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | disable ${cfg}_checking | 
		
	
		
			
			|  |  |  | done | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | check_deps(){ | 
		
	
		
			
			|  |  |  | unset allopts | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | do_check_deps "$@" | 
		
	
		
			
			|  |  |  | for dep in $dep_all $dep_any $dep_sel $dep_sgs; do | 
		
	
		
			
			|  |  |  | # filter out library deps, these do not belong in extralibs | 
		
	
		
			
			|  |  |  | is_in $dep $LIBRARY_LIST && continue | 
		
	
		
			
			|  |  |  | enabled $dep && eval append ${cfg}_extralibs ${dep}_extralibs | 
		
	
		
			
			|  |  |  | done | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | for cfg in $allopts; do | 
		
	
		
			
			|  |  |  | enabled $cfg || continue | 
		
	
		
			
			|  |  |  | eval dep_extralibs="\$${cfg}_extralibs" | 
		
	
		
			
			|  |  |  | test -n "$dep_extralibs" && add_extralibs $dep_extralibs | 
		
	
		
			
			|  |  |  | disable ${cfg}_checking | 
		
	
		
			
			|  |  |  | done | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
	
		
			
				|  |  | @@ -839,6 +829,15 @@ unique(){ | 
		
	
		
			
			|  |  |  | eval "$var=\"${uniq_list}\"" | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | resolve(){ | 
		
	
		
			
			|  |  |  | var=$1 | 
		
	
		
			
			|  |  |  | tmpvar= | 
		
	
		
			
			|  |  |  | for entry in $(eval echo \$$var); do | 
		
	
		
			
			|  |  |  | tmpvar="$tmpvar $(eval echo \$${entry})" | 
		
	
		
			
			|  |  |  | done | 
		
	
		
			
			|  |  |  | eval "$var=\"${tmpvar}\"" | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | add_cppflags(){ | 
		
	
		
			
			|  |  |  | append CPPFLAGS "$@" | 
		
	
		
			
			|  |  |  | } | 
		
	
	
		
			
				|  |  | @@ -1135,7 +1134,8 @@ check_apple_framework(){ | 
		
	
		
			
			|  |  |  | name="$(tolower $framework)" | 
		
	
		
			
			|  |  |  | header="${framework}/${framework}.h" | 
		
	
		
			
			|  |  |  | disable $name | 
		
	
		
			
			|  |  |  | check_header_objcc $header && enable $name && add_extralibs "-framework $framework" | 
		
	
		
			
			|  |  |  | check_header_objcc $header && | 
		
	
		
			
			|  |  |  | enable $name && eval ${name}_extralibs='"-framework $framework"' | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | check_func(){ | 
		
	
	
		
			
				|  |  | @@ -1255,15 +1255,18 @@ check_lib(){ | 
		
	
		
			
			|  |  |  | shift 3 | 
		
	
		
			
			|  |  |  | disable $name | 
		
	
		
			
			|  |  |  | check_func_headers "$headers" "$funcs" "$@" && | 
		
	
		
			
			|  |  |  | enable $name && add_extralibs "$@" | 
		
	
		
			
			|  |  |  | enable $name && eval ${name}_extralibs="\$@" | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | check_lib_cpp(){ | 
		
	
		
			
			|  |  |  | log check_lib_cpp "$@" | 
		
	
		
			
			|  |  |  | headers="$1" | 
		
	
		
			
			|  |  |  | classes="$2" | 
		
	
		
			
			|  |  |  | shift 2 | 
		
	
		
			
			|  |  |  | check_class_headers_cpp "$headers" "$classes" "$@" && add_extralibs "$@" | 
		
	
		
			
			|  |  |  | name="$1" | 
		
	
		
			
			|  |  |  | headers="$2" | 
		
	
		
			
			|  |  |  | classes="$3" | 
		
	
		
			
			|  |  |  | shift 3 | 
		
	
		
			
			|  |  |  | disable $name | 
		
	
		
			
			|  |  |  | check_class_headers_cpp "$headers" "$classes" "$@" && | 
		
	
		
			
			|  |  |  | enable $name && eval ${name}_extralibs="\$@" | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | check_pkg_config(){ | 
		
	
	
		
			
				|  |  | @@ -1280,8 +1283,8 @@ check_pkg_config(){ | 
		
	
		
			
			|  |  |  | pkg_libs=$($pkg_config --libs $pkg_config_flags $pkg) | 
		
	
		
			
			|  |  |  | check_func_headers "$headers" "$funcs" $pkg_cflags $pkg_libs "$@" && | 
		
	
		
			
			|  |  |  | enable $name && | 
		
	
		
			
			|  |  |  | set_safe "${pkg}_cflags"    $pkg_cflags && | 
		
	
		
			
			|  |  |  | set_safe "${pkg}_extralibs" $pkg_libs | 
		
	
		
			
			|  |  |  | set_safe "${name}_cflags"    $pkg_cflags && | 
		
	
		
			
			|  |  |  | set_safe "${name}_extralibs" $pkg_libs | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | check_exec(){ | 
		
	
	
		
			
				|  |  | @@ -1394,10 +1397,9 @@ require_cpp_condition(){ | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | use_pkg_config(){ | 
		
	
		
			
			|  |  |  | log use_pkg_config "$@" | 
		
	
		
			
			|  |  |  | pkg="${2%% *}" | 
		
	
		
			
			|  |  |  | name="$1" | 
		
	
		
			
			|  |  |  | check_pkg_config "$@" || return 1 | 
		
	
		
			
			|  |  |  | add_cflags    $(get_safe "${pkg}_cflags") | 
		
	
		
			
			|  |  |  | add_extralibs $(get_safe "${pkg}_extralibs") | 
		
	
		
			
			|  |  |  | add_cflags    $(get_safe "${name}_cflags") | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | require_pkg_config(){ | 
		
	
	
		
			
				|  |  | @@ -1578,7 +1580,6 @@ EXTERNAL_LIBRARY_GPLV3_LIST=" | 
		
	
		
			
			|  |  |  | " | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | EXTERNAL_LIBRARY_LIST=" | 
		
	
		
			
			|  |  |  | $EXTERNAL_AUTODETECT_LIBRARY_LIST | 
		
	
		
			
			|  |  |  | $EXTERNAL_LIBRARY_GPL_LIST | 
		
	
		
			
			|  |  |  | $EXTERNAL_LIBRARY_NONFREE_LIST | 
		
	
		
			
			|  |  |  | $EXTERNAL_LIBRARY_VERSION3_LIST | 
		
	
	
		
			
				|  |  | @@ -1656,13 +1657,18 @@ HWACCEL_AUTODETECT_LIBRARY_LIST=" | 
		
	
		
			
			|  |  |  | xvmc | 
		
	
		
			
			|  |  |  | " | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | # catchall list of things that require external libs to link | 
		
	
		
			
			|  |  |  | EXTRALIBS_LIST=" | 
		
	
		
			
			|  |  |  | cpu_init | 
		
	
		
			
			|  |  |  | cws2fws | 
		
	
		
			
			|  |  |  | " | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | HWACCEL_LIBRARY_NONFREE_LIST=" | 
		
	
		
			
			|  |  |  | cuda_sdk | 
		
	
		
			
			|  |  |  | libnpp | 
		
	
		
			
			|  |  |  | " | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | HWACCEL_LIBRARY_LIST=" | 
		
	
		
			
			|  |  |  | $HWACCEL_AUTODETECT_LIBRARY_LIST | 
		
	
		
			
			|  |  |  | $HWACCEL_LIBRARY_NONFREE_LIST | 
		
	
		
			
			|  |  |  | libmfx | 
		
	
		
			
			|  |  |  | mmal | 
		
	
	
		
			
				|  |  | @@ -1735,7 +1741,9 @@ CONFIG_LIST=" | 
		
	
		
			
			|  |  |  | $DOCUMENT_LIST | 
		
	
		
			
			|  |  |  | $EXAMPLE_LIST | 
		
	
		
			
			|  |  |  | $EXTERNAL_LIBRARY_LIST | 
		
	
		
			
			|  |  |  | $EXTERNAL_AUTODETECT_LIBRARY_LIST | 
		
	
		
			
			|  |  |  | $HWACCEL_LIBRARY_LIST | 
		
	
		
			
			|  |  |  | $HWACCEL_AUTODETECT_LIBRARY_LIST | 
		
	
		
			
			|  |  |  | $FEATURE_LIST | 
		
	
		
			
			|  |  |  | $LICENSE_LIST | 
		
	
		
			
			|  |  |  | $LIBRARY_LIST | 
		
	
	
		
			
				|  |  | @@ -2649,12 +2657,11 @@ crystalhd_deps="libcrystalhd_libcrystalhd_if_h" | 
		
	
		
			
			|  |  |  | cuda_deps_any="libdl LoadLibrary" | 
		
	
		
			
			|  |  |  | cuvid_deps="cuda" | 
		
	
		
			
			|  |  |  | d3d11va_deps="d3d11_h dxva_h ID3D11VideoDecoder ID3D11VideoContext" | 
		
	
		
			
			|  |  |  | dxva2_deps="dxva2api_h DXVA2_ConfigPictureDecode ole32" | 
		
	
		
			
			|  |  |  | dxva2_extralibs="-luser32" | 
		
	
		
			
			|  |  |  | dxva2_deps="dxva2api_h DXVA2_ConfigPictureDecode ole32 user32" | 
		
	
		
			
			|  |  |  | vda_framework_deps="VideoDecodeAcceleration_VDADecoder_h blocks_extension" | 
		
	
		
			
			|  |  |  | vda_framework_extralibs="-framework VideoDecodeAcceleration" | 
		
	
		
			
			|  |  |  | vda_deps="vda_framework pthreads" | 
		
	
		
			
			|  |  |  | vda_extralibs="-framework CoreFoundation -framework QuartzCore" | 
		
	
		
			
			|  |  |  | vda_deps="vda_framework pthreads corefoundation" | 
		
	
		
			
			|  |  |  | vda_extralibs="-framework QuartzCore" | 
		
	
		
			
			|  |  |  | videotoolbox_hwaccel_deps="videotoolbox pthreads" | 
		
	
		
			
			|  |  |  | videotoolbox_hwaccel_extralibs="-framework QuartzCore" | 
		
	
		
			
			|  |  |  | xvmc_deps="X11_extensions_XvMClib_h" | 
		
	
	
		
			
				|  |  | @@ -2976,7 +2983,7 @@ libtheora_encoder_deps="libtheora" | 
		
	
		
			
			|  |  |  | libtwolame_encoder_deps="libtwolame" | 
		
	
		
			
			|  |  |  | libvo_amrwbenc_encoder_deps="libvo_amrwbenc" | 
		
	
		
			
			|  |  |  | libvorbis_decoder_deps="libvorbis" | 
		
	
		
			
			|  |  |  | libvorbis_encoder_deps="libvorbis" | 
		
	
		
			
			|  |  |  | libvorbis_encoder_deps="libvorbis libvorbisenc" | 
		
	
		
			
			|  |  |  | libvorbis_encoder_select="audio_frame_queue" | 
		
	
		
			
			|  |  |  | libvpx_vp8_decoder_deps="libvpx" | 
		
	
		
			
			|  |  |  | libvpx_vp8_encoder_deps="libvpx" | 
		
	
	
		
			
				|  |  | @@ -2994,7 +3001,8 @@ libx265_encoder_deps="libx265" | 
		
	
		
			
			|  |  |  | libxavs_encoder_deps="libxavs" | 
		
	
		
			
			|  |  |  | libxvid_encoder_deps="libxvid" | 
		
	
		
			
			|  |  |  | libzvbi_teletext_decoder_deps="libzvbi" | 
		
	
		
			
			|  |  |  | videotoolbox_extralibs="-framework CoreFoundation -framework VideoToolbox -framework CoreMedia -framework CoreVideo" | 
		
	
		
			
			|  |  |  | videotoolbox_suggest="coreservices" | 
		
	
		
			
			|  |  |  | videotoolbox_deps="corefoundation coremedia corevideo" | 
		
	
		
			
			|  |  |  | videotoolbox_encoder_deps="videotoolbox VTCompressionSessionPrepareToEncodeFrames" | 
		
	
		
			
			|  |  |  | videotoolbox_encoder_suggest="vda_framework" | 
		
	
		
			
			|  |  |  | 
 | 
		
	
	
		
			
				|  |  | @@ -3080,8 +3088,9 @@ xwma_demuxer_select="riffdec" | 
		
	
		
			
			|  |  |  | # indevs / outdevs | 
		
	
		
			
			|  |  |  | alsa_indev_deps="alsa" | 
		
	
		
			
			|  |  |  | alsa_outdev_deps="alsa" | 
		
	
		
			
			|  |  |  | avfoundation_indev_deps="avfoundation pthreads" | 
		
	
		
			
			|  |  |  | avfoundation_indev_extralibs="-framework Foundation -framework CoreVideo -framework CoreMedia" | 
		
	
		
			
			|  |  |  | avfoundation_indev_deps="avfoundation corevideo coremedia pthreads" | 
		
	
		
			
			|  |  |  | avfoundation_indev_suggest="coregraphics applicationservices" | 
		
	
		
			
			|  |  |  | avfoundation_indev_extralibs="-framework Foundation" | 
		
	
		
			
			|  |  |  | bktr_indev_deps_any="dev_bktr_ioctl_bt848_h machine_ioctl_bt848_h dev_video_bktr_ioctl_bt848_h dev_ic_bt8xx_h" | 
		
	
		
			
			|  |  |  | caca_outdev_deps="libcaca" | 
		
	
		
			
			|  |  |  | decklink_deps_any="libdl LoadLibrary" | 
		
	
	
		
			
				|  |  | @@ -3121,6 +3130,7 @@ v4l2_indev_deps_any="linux_videodev2_h sys_videoio_h" | 
		
	
		
			
			|  |  |  | v4l2_outdev_deps_any="linux_videodev2_h sys_videoio_h" | 
		
	
		
			
			|  |  |  | vfwcap_indev_deps="vfw32 vfwcap_defines" | 
		
	
		
			
			|  |  |  | xcbgrab_indev_deps="libxcb" | 
		
	
		
			
			|  |  |  | xcbgrab_indev_suggest="libxcb_shm libxcb_shape libxcb_xfixes" | 
		
	
		
			
			|  |  |  | xv_outdev_deps="X11_extensions_Xvlib_h XvGetPortAttribute" | 
		
	
		
			
			|  |  |  | xv_outdev_extralibs="-lXv -lX11 -lXext" | 
		
	
		
			
			|  |  |  | 
 | 
		
	
	
		
			
				|  |  | @@ -3135,8 +3145,11 @@ ffrtmphttp_protocol_select="http_protocol" | 
		
	
		
			
			|  |  |  | ftp_protocol_select="tcp_protocol" | 
		
	
		
			
			|  |  |  | gopher_protocol_select="network" | 
		
	
		
			
			|  |  |  | http_protocol_select="tcp_protocol" | 
		
	
		
			
			|  |  |  | http_protocol_suggest="zlib" | 
		
	
		
			
			|  |  |  | httpproxy_protocol_select="tcp_protocol" | 
		
	
		
			
			|  |  |  | httpproxy_protocol_suggest="zlib" | 
		
	
		
			
			|  |  |  | https_protocol_select="tls_protocol" | 
		
	
		
			
			|  |  |  | https_protocol_suggest="zlib" | 
		
	
		
			
			|  |  |  | icecast_protocol_select="http_protocol" | 
		
	
		
			
			|  |  |  | librtmp_protocol_deps="librtmp" | 
		
	
		
			
			|  |  |  | librtmpe_protocol_deps="librtmp" | 
		
	
	
		
			
				|  |  | @@ -3149,12 +3162,18 @@ mmsh_protocol_select="http_protocol" | 
		
	
		
			
			|  |  |  | mmst_protocol_select="network" | 
		
	
		
			
			|  |  |  | rtmp_protocol_conflict="librtmp_protocol" | 
		
	
		
			
			|  |  |  | rtmp_protocol_select="tcp_protocol" | 
		
	
		
			
			|  |  |  | rtmp_protocol_suggest="zlib" | 
		
	
		
			
			|  |  |  | rtmpe_protocol_select="ffrtmpcrypt_protocol" | 
		
	
		
			
			|  |  |  | rtmpe_protocol_suggest="zlib" | 
		
	
		
			
			|  |  |  | rtmps_protocol_conflict="librtmp_protocol" | 
		
	
		
			
			|  |  |  | rtmps_protocol_select="tls_protocol" | 
		
	
		
			
			|  |  |  | rtmps_protocol_suggest="zlib" | 
		
	
		
			
			|  |  |  | rtmpt_protocol_select="ffrtmphttp_protocol" | 
		
	
		
			
			|  |  |  | rtmpt_protocol_suggest="zlib" | 
		
	
		
			
			|  |  |  | rtmpte_protocol_select="ffrtmpcrypt_protocol ffrtmphttp_protocol" | 
		
	
		
			
			|  |  |  | rtmpte_protocol_suggest="zlib" | 
		
	
		
			
			|  |  |  | rtmpts_protocol_select="ffrtmphttp_protocol https_protocol" | 
		
	
		
			
			|  |  |  | rtmpts_protocol_suggest="zlib" | 
		
	
		
			
			|  |  |  | rtp_protocol_select="udp_protocol" | 
		
	
		
			
			|  |  |  | sctp_protocol_deps="struct_sctp_event_subscribe struct_msghdr_msg_flags" | 
		
	
		
			
			|  |  |  | sctp_protocol_select="network" | 
		
	
	
		
			
				|  |  | @@ -3201,7 +3220,9 @@ deinterlace_qsv_filter_deps="libmfx" | 
		
	
		
			
			|  |  |  | deinterlace_vaapi_filter_deps="vaapi" | 
		
	
		
			
			|  |  |  | delogo_filter_deps="gpl" | 
		
	
		
			
			|  |  |  | deshake_filter_select="pixelutils" | 
		
	
		
			
			|  |  |  | deshake_filter_suggest="opencl" | 
		
	
		
			
			|  |  |  | drawtext_filter_deps="libfreetype" | 
		
	
		
			
			|  |  |  | drawtext_filter_suggest="libfontconfig" | 
		
	
		
			
			|  |  |  | elbg_filter_deps="avcodec" | 
		
	
		
			
			|  |  |  | eq_filter_deps="gpl" | 
		
	
		
			
			|  |  |  | fftfilt_filter_deps="avcodec" | 
		
	
	
		
			
				|  |  | @@ -3270,6 +3291,7 @@ tinterlace_merge_test_deps="tinterlace_filter" | 
		
	
		
			
			|  |  |  | tinterlace_pad_test_deps="tinterlace_filter" | 
		
	
		
			
			|  |  |  | tonemap_filter_deps="const_nan" | 
		
	
		
			
			|  |  |  | uspp_filter_deps="gpl avcodec" | 
		
	
		
			
			|  |  |  | unsharp_filter_suggest="opencl" | 
		
	
		
			
			|  |  |  | vaguedenoiser_filter_deps="gpl" | 
		
	
		
			
			|  |  |  | vidstabdetect_filter_deps="libvidstab" | 
		
	
		
			
			|  |  |  | vidstabtransform_filter_deps="libvidstab" | 
		
	
	
		
			
				|  |  | @@ -3302,27 +3324,45 @@ scaling_video_example_deps="avutil swscale" | 
		
	
		
			
			|  |  |  | transcode_aac_example_deps="avcodec avformat swresample" | 
		
	
		
			
			|  |  |  | transcoding_example_deps="avfilter avcodec avformat avutil" | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | # EXTRALIBS_LIST | 
		
	
		
			
			|  |  |  | cpu_init_extralibs="pthreads_extralibs" | 
		
	
		
			
			|  |  |  | cws2fws_extralibs="zlib_extralibs" | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | # libraries, in linking order | 
		
	
		
			
			|  |  |  | avcodec_deps="avutil" | 
		
	
		
			
			|  |  |  | avcodec_suggest="libm" | 
		
	
		
			
			|  |  |  | avcodec_select="null_bsf" | 
		
	
		
			
			|  |  |  | avdevice_deps="avformat avcodec avutil" | 
		
	
		
			
			|  |  |  | avdevice_suggest="libm" | 
		
	
		
			
			|  |  |  | avfilter_deps="avutil" | 
		
	
		
			
			|  |  |  | avfilter_suggest="libm" | 
		
	
		
			
			|  |  |  | avformat_deps="avcodec avutil" | 
		
	
		
			
			|  |  |  | avformat_suggest="network" | 
		
	
		
			
			|  |  |  | avformat_suggest="libm network" | 
		
	
		
			
			|  |  |  | avresample_deps="avutil" | 
		
	
		
			
			|  |  |  | avresample_suggest="libm" | 
		
	
		
			
			|  |  |  | avutil_suggest="libm libdrm libmfx user32 vaapi videotoolbox wincrypt" | 
		
	
		
			
			|  |  |  | postproc_deps="avutil gpl" | 
		
	
		
			
			|  |  |  | postproc_suggest="libm" | 
		
	
		
			
			|  |  |  | swresample_deps="avutil" | 
		
	
		
			
			|  |  |  | swresample_suggest="libm libsoxr" | 
		
	
		
			
			|  |  |  | swscale_deps="avutil" | 
		
	
		
			
			|  |  |  | swscale_suggest="libm" | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | avcodec_extralibs="pthreads_extralibs iconv_extralibs" | 
		
	
		
			
			|  |  |  | avfilter_extralibs="pthreads_extralibs" | 
		
	
		
			
			|  |  |  | avutil_extralibs="clock_gettime_extralibs nanosleep_extralibs pthreads_extralibs vaapi_drm_extralibs vaapi_x11_extralibs vdpau_x11_extralibs" | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | # programs | 
		
	
		
			
			|  |  |  | ffmpeg_deps="avcodec avfilter avformat swresample" | 
		
	
		
			
			|  |  |  | ffmpeg_select="aformat_filter anull_filter atrim_filter format_filter | 
		
	
		
			
			|  |  |  | null_filter | 
		
	
		
			
			|  |  |  | trim_filter" | 
		
	
		
			
			|  |  |  | ffmpeg_suggest="ole32 psapi shell32" | 
		
	
		
			
			|  |  |  | ffplay_deps="avcodec avformat swscale swresample sdl2" | 
		
	
		
			
			|  |  |  | ffplay_extralibs='$sdl2_extralibs' | 
		
	
		
			
			|  |  |  | ffplay_select="rdft crop_filter transpose_filter hflip_filter vflip_filter rotate_filter" | 
		
	
		
			
			|  |  |  | ffplay_suggest="shell32" | 
		
	
		
			
			|  |  |  | ffprobe_deps="avcodec avformat" | 
		
	
		
			
			|  |  |  | ffprobe_suggest="shell32" | 
		
	
		
			
			|  |  |  | ffserver_deps="avformat fork sarestart" | 
		
	
		
			
			|  |  |  | ffserver_select="ffm_muxer rtp_protocol rtsp_demuxer" | 
		
	
		
			
			|  |  |  | 
 | 
		
	
	
		
			
				|  |  | @@ -3401,6 +3441,12 @@ enable valgrind_backtrace | 
		
	
		
			
			|  |  |  | sws_max_filter_size_default=256 | 
		
	
		
			
			|  |  |  | set_default sws_max_filter_size | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | # internal components are enabled by default | 
		
	
		
			
			|  |  |  | enable $EXTRALIBS_LIST | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | # Avoid external, non-system, libraries getting enabled by dependency resolution | 
		
	
		
			
			|  |  |  | disable $EXTERNAL_LIBRARY_LIST $HWACCEL_LIBRARY_LIST | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | # build settings | 
		
	
		
			
			|  |  |  | SHFLAGS='-shared -Wl,-soname,$$(@F)' | 
		
	
		
			
			|  |  |  | LIBPREF="lib" | 
		
	
	
		
			
				|  |  | @@ -3501,20 +3547,36 @@ find_things_extern(){ | 
		
	
		
			
			|  |  |  | BSF_LIST=$(find_things_extern bsf AVBitStreamFilter libavcodec/bitstream_filters.c) | 
		
	
		
			
			|  |  |  | PROTOCOL_LIST=$(find_things_extern protocol URLProtocol libavformat/protocols.c) | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | ALL_COMPONENTS=" | 
		
	
		
			
			|  |  |  | AVCODEC_COMPONENTS_LIST=" | 
		
	
		
			
			|  |  |  | $BSF_LIST | 
		
	
		
			
			|  |  |  | $DECODER_LIST | 
		
	
		
			
			|  |  |  | $DEMUXER_LIST | 
		
	
		
			
			|  |  |  | $ENCODER_LIST | 
		
	
		
			
			|  |  |  | $FILTER_LIST | 
		
	
		
			
			|  |  |  | $HWACCEL_LIST | 
		
	
		
			
			|  |  |  | $PARSER_LIST | 
		
	
		
			
			|  |  |  | " | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | AVDEVICE_COMPONENTS_LIST=" | 
		
	
		
			
			|  |  |  | $INDEV_LIST | 
		
	
		
			
			|  |  |  | $MUXER_LIST | 
		
	
		
			
			|  |  |  | $OUTDEV_LIST | 
		
	
		
			
			|  |  |  | $PARSER_LIST | 
		
	
		
			
			|  |  |  | " | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | AVFILTER_COMPONENTS_LIST=" | 
		
	
		
			
			|  |  |  | $FILTER_LIST | 
		
	
		
			
			|  |  |  | " | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | AVFORMAT_COMPONENTS_LIST=" | 
		
	
		
			
			|  |  |  | $DEMUXER_LIST | 
		
	
		
			
			|  |  |  | $MUXER_LIST | 
		
	
		
			
			|  |  |  | $PROTOCOL_LIST | 
		
	
		
			
			|  |  |  | " | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | ALL_COMPONENTS=" | 
		
	
		
			
			|  |  |  | $AVCODEC_COMPONENTS_LIST | 
		
	
		
			
			|  |  |  | $AVDEVICE_COMPONENTS_LIST | 
		
	
		
			
			|  |  |  | $AVFILTER_COMPONENTS_LIST | 
		
	
		
			
			|  |  |  | $AVFORMAT_COMPONENTS_LIST | 
		
	
		
			
			|  |  |  | " | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | for n in $COMPONENT_LIST; do | 
		
	
		
			
			|  |  |  | v=$(toupper ${n%s})_LIST | 
		
	
		
			
			|  |  |  | eval enable \$$v | 
		
	
	
		
			
				|  |  | @@ -5711,8 +5773,7 @@ check_func  ${malloc_prefix}posix_memalign      && enable posix_memalign | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | check_func  access | 
		
	
		
			
			|  |  |  | check_func_headers stdlib.h arc4random | 
		
	
		
			
			|  |  |  | check_func_headers time.h clock_gettime || | 
		
	
		
			
			|  |  |  | { check_lib clock_gettime time.h clock_gettime -lrt && LIBRT="-lrt"; } | 
		
	
		
			
			|  |  |  | check_func_headers time.h clock_gettime || check_lib clock_gettime time.h clock_gettime -lrt | 
		
	
		
			
			|  |  |  | check_func  fcntl | 
		
	
		
			
			|  |  |  | check_func  fork | 
		
	
		
			
			|  |  |  | check_func  gethrtime | 
		
	
	
		
			
				|  |  | @@ -5725,8 +5786,7 @@ check_func  mkstemp | 
		
	
		
			
			|  |  |  | check_func  mmap | 
		
	
		
			
			|  |  |  | check_func  mprotect | 
		
	
		
			
			|  |  |  | # Solaris has nanosleep in -lrt, OpenSolaris no longer needs that | 
		
	
		
			
			|  |  |  | check_func_headers time.h nanosleep || | 
		
	
		
			
			|  |  |  | { check_lib nanosleep time.h nanosleep -lrt && LIBRT="-lrt"; } | 
		
	
		
			
			|  |  |  | check_func_headers time.h nanosleep || check_lib nanosleep time.h nanosleep -lrt | 
		
	
		
			
			|  |  |  | check_func  sched_getaffinity | 
		
	
		
			
			|  |  |  | check_func  setrlimit | 
		
	
		
			
			|  |  |  | check_struct "sys/stat.h" "struct stat" st_mtim.tv_nsec -D_BSD_SOURCE | 
		
	
	
		
			
				|  |  | @@ -5800,9 +5860,14 @@ enabled avfoundation && check_apple_framework AVFoundation | 
		
	
		
			
			|  |  |  | enabled coreimage    && check_apple_framework CoreImage | 
		
	
		
			
			|  |  |  | enabled videotoolbox && check_apple_framework VideoToolbox | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | check_apple_framework CoreFoundation | 
		
	
		
			
			|  |  |  | check_apple_framework CoreMedia | 
		
	
		
			
			|  |  |  | check_apple_framework CoreVideo | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | enabled avfoundation && { | 
		
	
		
			
			|  |  |  | check_lib avfoundation CoreGraphics/CoreGraphics.h               CGGetActiveDisplayList "-framework CoreGraphics" || | 
		
	
		
			
			|  |  |  | check_lib avfoundation ApplicationServices/ApplicationServices.h CGGetActiveDisplayList "-framework ApplicationServices"; } | 
		
	
		
			
			|  |  |  | disable coregraphics applicationservices | 
		
	
		
			
			|  |  |  | check_lib CoreGraphics        CoreGraphics/CoreGraphics.h               CGGetActiveDisplayList "-framework CoreGraphics" || | 
		
	
		
			
			|  |  |  | check_lib applicationservices ApplicationServices/ApplicationServices.h CGGetActiveDisplayList "-framework ApplicationServices"; } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | enabled videotoolbox && { | 
		
	
		
			
			|  |  |  | check_lib coreservices CoreServices/CoreServices.h UTGetOSTypeFromString "-framework CoreServices" | 
		
	
	
		
			
				|  |  | @@ -5879,7 +5944,7 @@ enabled  lzma && check_lib lzma   lzma.h lzma_version_number -llzma | 
		
	
		
			
			|  |  |  | # On some systems dynamic loading requires no extra linker flags | 
		
	
		
			
			|  |  |  | check_lib libdl dlfcn.h "dlopen dlsym" || check_lib libdl dlfcn.h "dlopen dlsym" -ldl | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | check_lib libm math.h sin -lm && LIBM="-lm" | 
		
	
		
			
			|  |  |  | check_lib libm math.h sin -lm | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | atan2f_args=2 | 
		
	
		
			
			|  |  |  | copysign_args=2 | 
		
	
	
		
			
				|  |  | @@ -5888,7 +5953,7 @@ ldexpf_args=2 | 
		
	
		
			
			|  |  |  | powf_args=2 | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | for func in $MATH_FUNCS; do | 
		
	
		
			
			|  |  |  | eval check_mathfunc $func \${${func}_args:-1} $LIBM | 
		
	
		
			
			|  |  |  | eval check_mathfunc $func \${${func}_args:-1} $libm_extralibs | 
		
	
		
			
			|  |  |  | done | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | for func in $COMPLEX_FUNCS; do | 
		
	
	
		
			
				|  |  | @@ -5925,7 +5990,7 @@ flite_extralibs="-lflite_cmu_time_awb -lflite_cmu_us_awb -lflite_cmu_us_kal -lfl | 
		
	
		
			
			|  |  |  | enabled libflite          && require libflite "flite/flite.h" flite_init $flite_extralibs | 
		
	
		
			
			|  |  |  | enabled fontconfig        && enable libfontconfig | 
		
	
		
			
			|  |  |  | enabled libfontconfig     && require_pkg_config libfontconfig fontconfig "fontconfig/fontconfig.h" FcInit | 
		
	
		
			
			|  |  |  | enabled libfreetype       && require_pkg_config libfreetype2 freetype2 "ft2build.h FT_FREETYPE_H" FT_Init_FreeType | 
		
	
		
			
			|  |  |  | enabled libfreetype       && require_pkg_config libfreetype freetype2 "ft2build.h FT_FREETYPE_H" FT_Init_FreeType | 
		
	
		
			
			|  |  |  | enabled libfribidi        && require_pkg_config libfribidi fribidi fribidi.h fribidi_version_info | 
		
	
		
			
			|  |  |  | enabled libgme            && { use_pkg_config libgme libgme gme/gme.h gme_new_emu || | 
		
	
		
			
			|  |  |  | require libgme gme/gme.h gme_new_emu -lgme -lstdc++; } | 
		
	
	
		
			
				|  |  | @@ -5952,7 +6017,7 @@ enabled libopencore_amrnb && require libopencore_amrnb opencore-amrnb/interf_dec | 
		
	
		
			
			|  |  |  | enabled libopencore_amrwb && require libopencore_amrwb opencore-amrwb/dec_if.h D_IF_init -lopencore-amrwb | 
		
	
		
			
			|  |  |  | enabled libopencv         && { check_header opencv2/core/core_c.h && | 
		
	
		
			
			|  |  |  | { use_pkg_config libopencv opencv opencv2/core/core_c.h cvCreateImageHeader || | 
		
	
		
			
			|  |  |  | require opencv opencv2/core/core_c.h cvCreateImageHeader -lopencv_core -lopencv_imgproc; } || | 
		
	
		
			
			|  |  |  | require libopencv opencv2/core/core_c.h cvCreateImageHeader -lopencv_core -lopencv_imgproc; } || | 
		
	
		
			
			|  |  |  | require_pkg_config libopencv opencv opencv/cxcore.h cvCreateImageHeader; } | 
		
	
		
			
			|  |  |  | enabled libopenh264       && require_pkg_config libopenh264 openh264 wels/codec_api.h WelsGetCodecVersion | 
		
	
		
			
			|  |  |  | enabled libopenjpeg       && { { check_lib libopenjpeg openjpeg-2.3/openjpeg.h opj_version -lopenjp2 -DOPJ_STATIC && add_cppflags -DOPJ_STATIC; } || | 
		
	
	
		
			
				|  |  | @@ -5980,9 +6045,9 @@ enabled librtmp           && require_pkg_config librtmp librtmp librtmp/rtmp.h R | 
		
	
		
			
			|  |  |  | enabled librubberband     && require_pkg_config librubberband "rubberband >= 1.8.1" rubberband/rubberband-c.h rubberband_new | 
		
	
		
			
			|  |  |  | enabled libshine          && require_pkg_config libshine shine shine/layer3.h shine_encode_buffer | 
		
	
		
			
			|  |  |  | enabled libsmbclient      && { use_pkg_config libsmbclient smbclient libsmbclient.h smbc_init || | 
		
	
		
			
			|  |  |  | require smbclient libsmbclient.h smbc_init -lsmbclient; } | 
		
	
		
			
			|  |  |  | require libsmbclient libsmbclient.h smbc_init -lsmbclient; } | 
		
	
		
			
			|  |  |  | enabled libsnappy         && require libsnappy snappy-c.h snappy_compress -lsnappy | 
		
	
		
			
			|  |  |  | enabled libsoxr           && require libsoxr soxr.h soxr_create -lsoxr && LIBSOXR="-lsoxr" | 
		
	
		
			
			|  |  |  | enabled libsoxr           && require libsoxr soxr.h soxr_create -lsoxr | 
		
	
		
			
			|  |  |  | enabled libssh            && require_pkg_config libssh libssh libssh/sftp.h sftp_init | 
		
	
		
			
			|  |  |  | enabled libspeex          && require_pkg_config libspeex speex speex/speex.h speex_decoder_init -lspeex | 
		
	
		
			
			|  |  |  | enabled libtesseract      && require_pkg_config libtesseract tesseract tesseract/capi.h TessBaseAPICreate | 
		
	
	
		
			
				|  |  | @@ -6066,17 +6131,17 @@ enabled opengl            && { check_lib opengl GL/glx.h glXGetProcAddress "-lGL | 
		
	
		
			
			|  |  |  | check_lib opengl ES2/gl.h glGetError "-isysroot=${sysroot} -Wl,-framework,OpenGLES" || | 
		
	
		
			
			|  |  |  | die "ERROR: opengl not found." | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | enabled omx               && require_header OMX_Core.h | 
		
	
		
			
			|  |  |  | enabled omx_rpi           && { check_header OMX_Core.h || | 
		
	
		
			
			|  |  |  | { ! enabled cross_compile && add_cflags -isystem/opt/vc/include/IL && check_header OMX_Core.h ; } || | 
		
	
		
			
			|  |  |  | die "ERROR: OpenMAX IL headers not found"; } | 
		
	
		
			
			|  |  |  | enabled omx               && require_header OMX_Core.h | 
		
	
		
			
			|  |  |  | die "ERROR: OpenMAX IL headers not found"; } && enable omx | 
		
	
		
			
			|  |  |  | enabled openssl           && { use_pkg_config openssl openssl openssl/ssl.h OPENSSL_init_ssl || | 
		
	
		
			
			|  |  |  | use_pkg_config openssl openssl openssl/ssl.h SSL_library_init || | 
		
	
		
			
			|  |  |  | check_lib openssl openssl/ssl.h SSL_library_init -lssl -lcrypto || | 
		
	
		
			
			|  |  |  | check_lib openssl openssl/ssl.h SSL_library_init -lssl32 -leay32 || | 
		
	
		
			
			|  |  |  | check_lib openssl openssl/ssl.h SSL_library_init -lssl -lcrypto -lws2_32 -lgdi32 || | 
		
	
		
			
			|  |  |  | die "ERROR: openssl not found"; } | 
		
	
		
			
			|  |  |  | enabled rkmpp             && { { require_pkg_config rockchip_mpp rockchip_mpp rockchip/rk_mpi.h mpp_create || | 
		
	
		
			
			|  |  |  | enabled rkmpp             && { { require_pkg_config rkmpp rockchip_mpp rockchip/rk_mpi.h mpp_create || | 
		
	
		
			
			|  |  |  | die "ERROR : Rockchip MPP was not found."; } && | 
		
	
		
			
			|  |  |  | { check_func_headers rockchip/rk_mpi_cmd.h "MPP_DEC_GET_FREE_PACKET_SLOT_COUNT" || | 
		
	
		
			
			|  |  |  | die "ERROR: Rockchip MPP is outdated, please get a more recent one."; } && | 
		
	
	
		
			
				|  |  | @@ -6091,7 +6156,7 @@ if enabled gcrypt; then | 
		
	
		
			
			|  |  |  | gcrypt_extralibs=$("${GCRYPT_CONFIG}" --libs) | 
		
	
		
			
			|  |  |  | check_func_headers gcrypt.h gcry_mpi_new $gcrypt_cflags $gcrypt_extralibs || | 
		
	
		
			
			|  |  |  | die "ERROR: gcrypt not found" | 
		
	
		
			
			|  |  |  | add_cflags $gcrypt_cflags && add_extralibs $gcrypt_extralibs | 
		
	
		
			
			|  |  |  | add_cflags $gcrypt_cflags | 
		
	
		
			
			|  |  |  | else | 
		
	
		
			
			|  |  |  | require gcrypt gcrypt.h gcry_mpi_new -lgcrypt | 
		
	
		
			
			|  |  |  | fi | 
		
	
	
		
			
				|  |  | @@ -6114,7 +6179,6 @@ if enabled sdl2; then | 
		
	
		
			
			|  |  |  | sdl2_extralibs=$(filter_out '-mwindows' $sdl2_extralibs) | 
		
	
		
			
			|  |  |  | fi | 
		
	
		
			
			|  |  |  | fi | 
		
	
		
			
			|  |  |  | enabled sdl2 && add_cflags $(filter_out '-Dmain=SDL_main' $sdl2_cflags) && add_extralibs $sdl2_extralibs | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | if enabled decklink; then | 
		
	
		
			
			|  |  |  | case $target_os in | 
		
	
	
		
			
				|  |  | @@ -6133,7 +6197,7 @@ enabled securetransport && | 
		
	
		
			
			|  |  |  | enabled schannel && | 
		
	
		
			
			|  |  |  | check_func_headers "windows.h security.h" InitializeSecurityContext -DSECURITY_WIN32 -lsecur32 && | 
		
	
		
			
			|  |  |  | check_cpp_condition winerror.h "defined(SEC_I_CONTEXT_EXPIRED)" && | 
		
	
		
			
			|  |  |  | add_extralibs -lsecur32 || | 
		
	
		
			
			|  |  |  | schannel_extralibs="-lsecur32" || | 
		
	
		
			
			|  |  |  | disable schannel | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | makeinfo --version > /dev/null 2>&1 && enable makeinfo  || disable makeinfo | 
		
	
	
		
			
				|  |  | @@ -6203,16 +6267,13 @@ if enabled libcdio; then | 
		
	
		
			
			|  |  |  | die "ERROR: No usable libcdio/cdparanoia found" | 
		
	
		
			
			|  |  |  | fi | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | enabled libxcb && check_pkg_config libxcb "xcb >= 1.4" xcb/xcb.h xcb_connect || | 
		
	
		
			
			|  |  |  | enabled libxcb && use_pkg_config libxcb "xcb >= 1.4" xcb/xcb.h xcb_connect || | 
		
	
		
			
			|  |  |  | disable libxcb_shm libxcb_shape libxcb_xfixes | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | if enabled libxcb; then | 
		
	
		
			
			|  |  |  | enabled libxcb_shm    && check_pkg_config libxcb_shm    xcb-shm    xcb/shm.h    xcb_shm_attach | 
		
	
		
			
			|  |  |  | enabled libxcb_shape  && check_pkg_config libxcb_shape  xcb-shape  xcb/shape.h  xcb_shape_get_rectangles | 
		
	
		
			
			|  |  |  | enabled libxcb_xfixes && check_pkg_config libxcb_xfixes xcb-xfixes xcb/xfixes.h xcb_xfixes_get_cursor_image | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | add_cflags $xcb_cflags $xcb_shm_cflags $xcb_xfixes_cflags $xcb_shape_cflags | 
		
	
		
			
			|  |  |  | add_extralibs $xcb_extralibs $xcb_shm_extralibs $xcb_xfixes_extralibs $xcb_shape_extralibs | 
		
	
		
			
			|  |  |  | enabled libxcb_shm    && use_pkg_config libxcb_shm    xcb-shm    xcb/shm.h    xcb_shm_attach | 
		
	
		
			
			|  |  |  | enabled libxcb_shape  && use_pkg_config libxcb_shape  xcb-shape  xcb/shape.h  xcb_shape_get_rectangles | 
		
	
		
			
			|  |  |  | enabled libxcb_xfixes && use_pkg_config libxcb_xfixes xcb-xfixes xcb/xfixes.h xcb_xfixes_get_cursor_image | 
		
	
		
			
			|  |  |  | fi | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | check_func_headers "windows.h" CreateDIBSection "$gdigrab_indev_extralibs" | 
		
	
	
		
			
				|  |  | @@ -6591,32 +6652,42 @@ if test $target_os = "haiku"; then | 
		
	
		
			
			|  |  |  | disable posix_memalign | 
		
	
		
			
			|  |  |  | fi | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | # add_dep lib dep | 
		
	
		
			
			|  |  |  | # -> enable ${lib}_deps_${dep} | 
		
	
		
			
			|  |  |  | # -> add $dep to ${lib}_deps only once | 
		
	
		
			
			|  |  |  | add_dep() { | 
		
	
		
			
			|  |  |  | lib=$1 | 
		
	
		
			
			|  |  |  | dep=$2 | 
		
	
		
			
			|  |  |  | enabled "${lib}_deps_${dep}" && return 0 | 
		
	
		
			
			|  |  |  | enable  "${lib}_deps_${dep}" | 
		
	
		
			
			|  |  |  | prepend "${lib}_deps" $dep | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | # merge deps lib components | 
		
	
		
			
			|  |  |  | # merge all ${component}_deps into ${lib}_deps and ${lib}_deps_* | 
		
	
		
			
			|  |  |  | merge_deps() { | 
		
	
		
			
			|  |  |  | lib=$1 | 
		
	
		
			
			|  |  |  | shift | 
		
	
		
			
			|  |  |  | for comp in $*; do | 
		
	
		
			
			|  |  |  | enabled $comp || continue | 
		
	
		
			
			|  |  |  | eval "dep=\"\$${comp}_deps\"" | 
		
	
		
			
			|  |  |  | for d in $dep; do | 
		
	
		
			
			|  |  |  | add_dep $lib $d | 
		
	
		
			
			|  |  |  | done | 
		
	
		
			
			|  |  |  | flatten_extralibs(){ | 
		
	
		
			
			|  |  |  | unset nested_entries | 
		
	
		
			
			|  |  |  | list_name=$1 | 
		
	
		
			
			|  |  |  | eval list=\$${1} | 
		
	
		
			
			|  |  |  | for entry in $list; do | 
		
	
		
			
			|  |  |  | entry_copy=$entry | 
		
	
		
			
			|  |  |  | resolve entry_copy | 
		
	
		
			
			|  |  |  | append nested_entries $(filter '*_extralibs' $entry_copy) | 
		
	
		
			
			|  |  |  | flat_entries=$(filter_out '*_extralibs' $entry_copy) | 
		
	
		
			
			|  |  |  | eval $entry="\$flat_entries" | 
		
	
		
			
			|  |  |  | done | 
		
	
		
			
			|  |  |  | append $list_name "$nested_entries" | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | resolve nested_entries | 
		
	
		
			
			|  |  |  | if test -n "$(filter '*_extralibs' $nested_entries)"; then | 
		
	
		
			
			|  |  |  | flatten_extralibs $list_name | 
		
	
		
			
			|  |  |  | fi | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | merge_deps libavfilter $FILTER_LIST | 
		
	
		
			
			|  |  |  | for linkunit in $LIBRARY_LIST; do | 
		
	
		
			
			|  |  |  | unset current_extralibs | 
		
	
		
			
			|  |  |  | eval components=\$$(toupper ${linkunit})_COMPONENTS_LIST | 
		
	
		
			
			|  |  |  | for comp in ${components}; do | 
		
	
		
			
			|  |  |  | enabled $comp || continue | 
		
	
		
			
			|  |  |  | comp_extralibs="${comp}_extralibs" | 
		
	
		
			
			|  |  |  | append current_extralibs $comp_extralibs | 
		
	
		
			
			|  |  |  | done | 
		
	
		
			
			|  |  |  | eval prepend ${linkunit}_extralibs $current_extralibs | 
		
	
		
			
			|  |  |  | done | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | for linkunit in $LIBRARY_LIST $PROGRAM_LIST $EXTRALIBS_LIST; do | 
		
	
		
			
			|  |  |  | flatten_extralibs ${linkunit}_extralibs | 
		
	
		
			
			|  |  |  | unique  ${linkunit}_extralibs | 
		
	
		
			
			|  |  |  | resolve ${linkunit}_extralibs | 
		
	
		
			
			|  |  |  | eval ${linkunit}_extralibs=\$\(\$ldflags_filter \$${linkunit}_extralibs\) | 
		
	
		
			
			|  |  |  | done | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | map 'enabled $v && intrinsics=${v#intrinsics_}' $INTRINSICS_LIST | 
		
	
		
			
			|  |  |  | 
 | 
		
	
	
		
			
				|  |  | @@ -6686,6 +6757,9 @@ enabled zoompan_filter      && prepend avfilter_deps "swscale" | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | enabled lavfi_indev         && prepend avdevice_deps "avfilter" | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | #FIXME | 
		
	
		
			
			|  |  |  | enabled sdl2_outdev     && add_cflags $(filter_out '-Dmain=SDL_main' $sdl2_cflags) | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | enabled opus_decoder    && prepend avcodec_deps "swresample" | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | expand_deps(){ | 
		
	
	
		
			
				|  |  | @@ -6799,11 +6873,11 @@ test -n "$random_seed" && | 
		
	
		
			
			|  |  |  | echo | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | echo "External libraries:" | 
		
	
		
			
			|  |  |  | print_enabled '' $EXTERNAL_LIBRARY_LIST | print_in_columns | 
		
	
		
			
			|  |  |  | print_enabled '' $EXTERNAL_LIBRARY_LIST $EXTERNAL_AUTODETECT_LIBRARY_LIST | print_in_columns | 
		
	
		
			
			|  |  |  | echo | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | echo "External libraries providing hardware acceleration:" | 
		
	
		
			
			|  |  |  | print_enabled '' $HWACCEL_LIBRARY_LIST | print_in_columns | 
		
	
		
			
			|  |  |  | print_enabled '' $HWACCEL_LIBRARY_LIST $HWACCEL_AUTODETECT_LIBRARY_LIST | print_in_columns | 
		
	
		
			
			|  |  |  | echo | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | echo "Libraries:" | 
		
	
	
		
			
				|  |  | @@ -6957,7 +7031,6 @@ TARGET_PATH=$target_path | 
		
	
		
			
			|  |  |  | TARGET_SAMPLES=${target_samples:-\$(SAMPLES)} | 
		
	
		
			
			|  |  |  | CFLAGS-ffplay=${sdl2_cflags} | 
		
	
		
			
			|  |  |  | CFLAGS_HEADERS=$CFLAGS_HEADERS | 
		
	
		
			
			|  |  |  | ZLIB=$($ldflags_filter -lz) | 
		
	
		
			
			|  |  |  | LIB_INSTALL_EXTRA_CMD=$LIB_INSTALL_EXTRA_CMD | 
		
	
		
			
			|  |  |  | EXTRALIBS=$extralibs | 
		
	
		
			
			|  |  |  | COMPAT_OBJS=$compat_objs | 
		
	
	
		
			
				|  |  | @@ -6981,12 +7054,9 @@ EOF | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | map 'eval echo "${v}_FFLIBS=\$${v}_deps" >> ffbuild/config.mak' $LIBRARY_LIST | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | print_program_extralibs(){ | 
		
	
		
			
			|  |  |  | eval "program_extralibs=\$${1}_extralibs" | 
		
	
		
			
			|  |  |  | eval echo "EXTRALIBS-${1}=${program_extralibs}" >> ffbuild/config.mak | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | map 'print_program_extralibs $v' $PROGRAM_LIST | 
		
	
		
			
			|  |  |  | for entry in $LIBRARY_LIST $PROGRAM_LIST $EXTRALIBS_LIST; do | 
		
	
		
			
			|  |  |  | eval echo "EXTRALIBS-${entry}=\$${entry}_extralibs" >> ffbuild/config.mak | 
		
	
		
			
			|  |  |  | done | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | cat > $TMPH <<EOF | 
		
	
		
			
			|  |  |  | /* Automatically generated by configure - do not modify! */ | 
		
	
	
		
			
				|  |  | @@ -7088,16 +7158,15 @@ rpath=$(enabled rpath && echo "-Wl,-rpath,\${libdir}") | 
		
	
		
			
			|  |  |  | source_path=${source_path} | 
		
	
		
			
			|  |  |  | LIBPREF=${LIBPREF} | 
		
	
		
			
			|  |  |  | LIBSUF=${LIBSUF} | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | extralibs_avutil="$LIBRT $LIBM" | 
		
	
		
			
			|  |  |  | extralibs_avcodec="$extralibs" | 
		
	
		
			
			|  |  |  | extralibs_avformat="$extralibs" | 
		
	
		
			
			|  |  |  | extralibs_avdevice="$extralibs" | 
		
	
		
			
			|  |  |  | extralibs_avfilter="$extralibs" | 
		
	
		
			
			|  |  |  | extralibs_avresample="$LIBM" | 
		
	
		
			
			|  |  |  | extralibs_postproc="" | 
		
	
		
			
			|  |  |  | extralibs_swscale="$LIBM" | 
		
	
		
			
			|  |  |  | extralibs_swresample="$LIBM $LIBSOXR" | 
		
	
		
			
			|  |  |  | extralibs_avutil="$avutil_extralibs" | 
		
	
		
			
			|  |  |  | extralibs_avcodec="$avcodec_extralibs" | 
		
	
		
			
			|  |  |  | extralibs_avformat="$avformat_extralibs" | 
		
	
		
			
			|  |  |  | extralibs_avdevice="$avdevice_extralibs" | 
		
	
		
			
			|  |  |  | extralibs_avfilter="$avfilter_extralibs" | 
		
	
		
			
			|  |  |  | extralibs_avresample="$avresample_extralibs" | 
		
	
		
			
			|  |  |  | extralibs_postproc="$postproc_extralibs" | 
		
	
		
			
			|  |  |  | extralibs_swscale="$swscale_extralibs" | 
		
	
		
			
			|  |  |  | extralibs_swresample="$swresample_extralibs" | 
		
	
		
			
			|  |  |  | EOF | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | for lib in $LIBRARY_LIST; do | 
		
	
	
		
			
				|  |  | 
 |