📄 configure
字号:
}check_cflags(){ log check_cflags "$@" check_cc "$@" <<EOF && add_cflags "$@"int x;EOF}check_ldflags(){ log check_ldflags "$@" check_ld "$@" <<EOF && add_ldflags "$@"int main(void){ return 0;}EOF}check_header(){ log check_header "$@" header=$1 shift var=`echo $header | sed 's/[^A-Za-z0-9_]/_/g'` disable $var check_cpp "$@" <<EOF && enable $var#include <$header>int x;EOF}check_func(){ log check_func "$@" func=$1 shift disable $func check_ld "$@" <<EOF && enable $funcextern int $func();int main(void){ $func();}EOF}check_func2(){ log check_func2 "$@" headers=$1 func=$2 shift 2 disable $func incs="" for hdr in $headers; do incs="$incs#include <$hdr>" done check_ld "$@" <<EOF && enable $func$incsint main(int argc, char **argv){ (void) $func; return 0;}EOF}check_lib(){ log check_lib "$@" header="$1" func="$2" shift 2 temp_extralibs "$@" check_header $header && check_func $func && add_extralibs "$@" err=$? restore_flags return $err}check_lib2(){ log check_lib2 "$@" headers="$1" func="$2" shift 2 temp_extralibs "$@" check_func2 "$headers" $func && add_extralibs "$@" err=$? restore_flags return $err}check_exec(){ check_ld "$@" && { enabled cross_compile || $TMPE >>$logfile 2>&1; }}check_exec_crash(){ code=`cat` # exit() is not async signal safe. _Exit (C99) and _exit (POSIX) # are safe but may not be available everywhere. Thus we use # raise(SIGTERM) instead. The check is run in a subshell so we # can redirect the "Terminated" message from the shell. SIGBUS # is not defined by standard C so it is used conditionally. (check_exec "$@") >>$logfile 2>&1 <<EOF#include <signal.h>static void sighandler(int sig){ raise(SIGTERM);}int main(void){ signal(SIGILL, sighandler); signal(SIGFPE, sighandler); signal(SIGSEGV, sighandler);#ifdef SIGBUS signal(SIGBUS, sighandler);#endif { $code }}EOF}check_type(){ log check_type "$@" headers=$1 type=$2 shift 2 disable $type incs="" for hdr in $headers; do incs="$incs#include <$hdr>" done check_cc "$@" <<EOF && enable $type$incs$type v;EOF}require(){ name="$1" header="$2" func="$3" shift 3 check_lib $header $func "$@" || die "ERROR: $name not found"}require2(){ name="$1" headers="$2" func="$3" shift 3 check_lib2 "$headers" $func "$@" || die "ERROR: $name not found"}check_foo_config(){ cfg=$1 pkg=$2 header=$3 func=$4 shift 4 disable $cfg check_cmd ${pkg}-config --version err=$? if test "$err" = 0; then temp_cflags `${pkg}-config --cflags` temp_extralibs `${pkg}-config --libs` check_lib "$@" $header $func && enable $cfg fi return $err}apply(){ file=$1 shift "$@" < "$file" > "$file.tmp" && mv "$file.tmp" "$file" || rm "$file.tmp"}COMPONENT_LIST=" bsfs decoders demuxers encoders indevs muxers outdevs parsers protocols"CONFIG_LIST=" $COMPONENT_LIST avisynth beos_netserver ffmpeg ffplay ffserver gpl gprof gray hardcoded_tables ipv6 liba52 liba52bin libamr_nb libamr_wb libdc1394 libfaac libfaad libfaadbin libgsm libmp3lame libnut libtheora libvorbis libx264 libxvid memalign_hack mpegaudio_hp network nonfree powerpc_perf pp small swscaler vhook x11grab zlib"THREADS_LIST=' beosthreads os2threads pthreads w32threads'ARCH_LIST=' alpha armv4l bfin ia64 m68k mips parisc powerpc s390 sh4 sparc sparc64 x86 x86_32 x86_64'ARCH_EXT_LIST=' altivec armv5te armv6 iwmmxt mmi mmx ssse3 vis'HAVE_LIST=" $ARCH_EXT_LIST $THREADS_LIST altivec_h arpa_inet_h byteswap_h closesocket cmov conio_h dcbzl dev_bktr_ioctl_bt848_h dev_bktr_ioctl_meteor_h dev_ic_bt8xx_h dev_video_meteor_ioctl_meteor_h dev_video_bktr_ioctl_bt848_h dlfcn_h dlopen ebp_available ebx_available fast_64bit fast_cmov fast_unaligned fork freetype2 gethrtime GetProcessTimes getrusage imlib2 inet_aton libdc1394_1 libdc1394_2 llrint lrint lrintf machine_ioctl_bt848_h machine_ioctl_meteor_h malloc_h memalign mkstemp mlib ppc64 round roundf sdl sdl_video_size socklen_t soundcard_h sys_poll_h sys_select_h sys_soundcard_h termios_h threads winsock2_h"CMDLINE_SELECT=" $ARCH_EXT_LIST $CONFIG_LIST $THREADS_LIST debug extra_warnings optimizations shared static"# code dependency declarations# architecture extensionsaltivec_deps="powerpc"armv5te_deps="armv4l"armv6_deps="armv4l"iwmmxt_deps="armv4l"mmi_deps="mips"mmx_deps="x86"ssse3_deps="x86"vis_deps="sparc"# decoders / encodersac3_decoder_deps="gpl"dxa_decoder_deps="zlib"flashsv_decoder_deps="zlib"flashsv_encoder_deps="zlib"flv_decoder_deps="h263_decoder"h263_decoder_deps="h263_parser mpeg4video_parser"h263i_decoder_deps="h263_decoder"h264_decoder_deps="h264_parser"mpeg_xvmc_decoder_deps="xvmc"mpeg4_decoder_deps="h263_decoder"msmpeg4v1_decoder_deps="h263_decoder"msmpeg4v2_decoder_deps="h263_decoder"msmpeg4v3_decoder_deps="h263_decoder"png_decoder_deps="zlib"png_encoder_deps="zlib"svq3_decoder_deps="h264_parser"vc1_decoder_deps="h263_decoder"wmv1_decoder_deps="h263_decoder"wmv2_decoder_deps="h263_decoder"wmv3_decoder_deps="h263_decoder"zmbv_decoder_deps="zlib"zmbv_encoder_deps="zlib"# external librariesliba52_decoder_deps="liba52"liba52bin_decoder_extralibs='$ldl'libamr_nb_decoder_deps="libamr_nb"libamr_nb_encoder_deps="libamr_nb"libamr_wb_decoder_deps="libamr_wb"libamr_wb_encoder_deps="libamr_wb"libfaac_encoder_deps="libfaac"libfaad_decoder_deps="libfaad"libfaadbin_decoder_extralibs='$ldl'libgsm_decoder_deps="libgsm"libgsm_encoder_deps="libgsm"libgsm_ms_decoder_deps="libgsm"libgsm_ms_encoder_deps="libgsm"libmp3lame_encoder_deps="libmp3lame"libtheora_encoder_deps="libtheora"libvorbis_encoder_deps="libvorbis"libx264_encoder_deps="libx264"libxvid_encoder_deps="libxvid"mpeg4aac_decoder_deps="libfaad"# demuxers / muxersac3_demuxer_deps="ac3_parser"audio_beos_demuxer_deps="audio_beos"audio_beos_demuxer_extralibs="-lmedia -lbe"audio_beos_muxer_deps="audio_beos"audio_beos_muxer_extralibs="-lmedia -lbe"avisynth_demuxer_deps="avisynth"bktr_demuxer_deps_any="dev_bktr_ioctl_bt848_h machine_ioctl_bt848_h dev_video_bktr_ioctl_bt848_h dev_ic_bt8xx_h"dv1394_demuxer_deps="dv1394 dv_demuxer"libdc1394_demuxer_deps="libdc1394"libnut_demuxer_deps="libnut"libnut_muxer_deps="libnut"mp3_demuxer_deps="mpegaudio_parser"oss_demuxer_deps_any="soundcard_h sys_soundcard_h"oss_muxer_deps_any="soundcard_h sys_soundcard_h"redir_demuxer_deps="network"rtp_muxer_deps="network rtp_protocol"rtsp_demuxer_deps="sdp_demuxer"sdp_demuxer_deps="rtp_protocol mpegts_demuxer"v4l2_demuxer_deps="linux_videodev2_h"v4l_demuxer_deps="linux_videodev_h"x11_grab_device_demuxer_deps="x11grab XShmCreateImage"x11_grab_device_demuxer_extralibs="-lX11 -lXext"# protocolshttp_protocol_deps="network"rtp_protocol_deps="udp_protocol"tcp_protocol_deps="network"udp_protocol_deps="network"# programsffplay_deps="sdl"ffserver_deps="ffm_muxer rtp_protocol rtsp_demuxer"ffserver_extralibs='$ldl'vhook_extralibs='$ldl'# set temporary file nameif test ! -z "$TMPDIR" ; then TMPDIR1="${TMPDIR}"elif test ! -z "$TEMPDIR" ; then TMPDIR1="${TEMPDIR}"else TMPDIR1="/tmp"fiTMPC="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.c"TMPO="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.o"TMPE="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}"TMPS="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.S"TMPH="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.h"# default parametersenable logging
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -