Skip to content
Snippets Groups Projects
configure 202 KiB
Newer Older
  • Learn to ignore specific revisions
  • PATHS_LIST="
    
    Mohamed Naufal's avatar
    Mohamed Naufal committed
        cxx
    
        host_ldflags
        host_libs
    
        pkg_config_flags
    
    Måns Rullgård's avatar
    Måns Rullgård committed
        samples
    
        toolchain
    
    CMDLINE_APPEND="
        extra_cflags
    
    Mohamed Naufal's avatar
    Mohamed Naufal committed
        extra_cxxflags
    
    # code dependency declarations
    
    
    # architecture extensions
    
    armv5te_deps="arm"
    armv6_deps="arm"
    
    armv6t2_deps="arm"
    
    armv8_deps="aarch64"
    
    neon_deps_any="aarch64 arm"
    
    intrinsics_neon_deps="neon"
    
    vfp_deps_any="aarch64 arm"
    
    vfpv3_deps="vfp"
    
    setend_deps="arm"
    
    map 'eval ${v}_inline_deps=inline_asm' $ARCH_EXT_LIST_ARM
    
    
    mipsfpu_deps="mips"
    mipsdspr1_deps="mips"
    mipsdspr2_deps="mips"
    
    dcbzl_deps="ppc"
    ldbrx_deps="ppc"
    
    vsx_deps="altivec"
    power8_deps="vsx"
    
    cpunop_deps="i686"
    x86_64_select="i686"
    x86_64_suggest="fast_cmov"
    
    amd3dnow_deps="mmx"
    amd3dnowext_deps="amd3dnow"
    
    mmx_deps="x86"
    
    mmxext_deps="mmx"
    
    sse_deps="mmxext"
    sse2_deps="sse"
    sse3_deps="sse2"
    ssse3_deps="sse3"
    sse4_deps="ssse3"
    sse42_deps="sse4"
    avx_deps="sse42"
    
    xop_deps="avx"
    
    fma3_deps="avx"
    
    mmx_external_deps="yasm"
    mmx_inline_deps="inline_asm"
    mmx_suggest="mmx_external mmx_inline"
    
    
    for ext in $(filter_out mmx $ARCH_EXT_LIST_X86_SIMD); do
    
        eval dep=\$${ext}_deps
        eval ${ext}_external_deps='"${dep}_external"'
        eval ${ext}_inline_deps='"${dep}_inline"'
        eval ${ext}_suggest='"${ext}_external ${ext}_inline"'
    done
    
    
    aligned_stack_if_any="aarch64 ppc x86"
    fast_64bit_if_any="aarch64 alpha ia64 mips64 parisc64 ppc64 sparc64 x86_64"
    fast_clz_if_any="aarch64 alpha avr32 mips ppc x86"
    fast_unaligned_if_any="aarch64 ppc x86"
    
    simd_align_16_if_any="altivec neon sse"
    
    symver_if_any="symver_asm_label symver_gnu_asm"
    
    valgrind_backtrace_deps="!optimizations valgrind_valgrind_h"
    
    atomics_gcc_if_any="sync_val_compare_and_swap atomic_compare_exchange"
    
    atomics_suncc_if="atomic_cas_ptr machine_rw_barrier"
    atomics_win32_if="MemoryBarrier"
    atomics_native_if_any="$ATOMICS_LIST"
    
    w32threads_deps="atomics_native"
    
    dct_select="rdft"
    
    faandct_deps="faan fdctdsp"
    faanidct_deps="faan idctdsp"
    
    frame_thread_encoder_deps="encoders threads"
    
    intrax8_select="error_resilience"
    
    mdct_select="fft"
    rdft_select="fft"
    
    me_cmp_select="fdctdsp idctdsp pixblockdsp"
    
    mpeg_er_select="error_resilience"
    
    mpegaudio_select="mpegaudiodsp"
    
    mpegvideo_select="blockdsp h264chroma hpeldsp idctdsp me_cmp mpeg_er videodsp"
    
    mpegvideoenc_select="me_cmp mpegvideo pixblockdsp qpeldsp"
    
    qsvenc_select="qsv"
    
    aac_decoder_select="imdct15 mdct sinewin"
    
    aac_fixed_decoder_select="mdct sinewin"
    
    aac_encoder_select="audio_frame_queue iirfilter lpc mdct sinewin"
    
    aac_latm_decoder_select="aac_decoder aac_latm_parser"
    
    ac3_decoder_select="ac3_parser ac3dsp bswapdsp fmtconvert mdct"
    
    ac3_fixed_decoder_select="ac3_parser ac3dsp bswapdsp mdct"
    
    ac3_encoder_select="ac3dsp audiodsp mdct me_cmp"
    ac3_fixed_encoder_select="ac3dsp audiodsp mdct me_cmp"
    
    adpcm_g722_decoder_select="g722dsp"
    adpcm_g722_encoder_select="g722dsp"
    
    aic_decoder_select="golomb idctdsp"
    
    als_decoder_select="bswapdsp"
    
    amv_decoder_select="sp5x_decoder exif"
    
    amv_encoder_select="aandcttables jpegtables mpegvideoenc"
    
    ape_decoder_select="bswapdsp llauddsp"
    
    apng_decoder_select="zlib"
    
    apng_encoder_select="huffyuvencdsp zlib"
    
    asv1_decoder_select="blockdsp bswapdsp idctdsp"
    
    asv1_encoder_select="bswapdsp fdctdsp pixblockdsp"
    
    asv2_decoder_select="blockdsp bswapdsp idctdsp"
    
    asv2_encoder_select="bswapdsp fdctdsp pixblockdsp"
    
    atrac1_decoder_select="mdct sinewin"
    
    Maxim Poliakovski's avatar
    Maxim Poliakovski committed
    atrac3p_decoder_select="mdct sinewin"
    
    avrn_decoder_select="exif jpegtables"
    
    bink_decoder_select="blockdsp hpeldsp"
    
    binkaudio_dct_decoder_select="mdct rdft dct sinewin wma_freqs"
    binkaudio_rdft_decoder_select="mdct rdft sinewin wma_freqs"
    
    cavs_decoder_select="blockdsp golomb h264chroma idctdsp qpeldsp videodsp"
    
    cllc_decoder_select="bswapdsp"
    
    comfortnoise_encoder_select="lpc"
    
    cook_decoder_select="audiodsp mdct sinewin"
    
    cscd_decoder_select="lzo"
    
    cscd_decoder_suggest="zlib"
    
    dca_decoder_select="fmtconvert mdct"
    
    dds_decoder_select="texturedsp"
    
    dirac_decoder_select="dwt golomb videodsp mpegvideoenc"
    
    dnxhd_decoder_select="blockdsp idctdsp"
    
    dnxhd_encoder_select="aandcttables blockdsp fdctdsp idctdsp mpegvideoenc pixblockdsp"
    
    dvvideo_decoder_select="dvprofile idctdsp"
    
    dvvideo_encoder_select="dvprofile fdctdsp me_cmp pixblockdsp"
    
    Vittorio Giovara's avatar
    Vittorio Giovara committed
    dxv_decoder_select="lzf texturedsp"
    
    eac3_decoder_select="ac3_decoder"
    
    eac3_encoder_select="ac3_encoder"
    
    eamad_decoder_select="aandcttables blockdsp bswapdsp idctdsp mpegvideo"
    
    eatgq_decoder_select="aandcttables"
    
    eatqi_decoder_select="aandcttables blockdsp bswapdsp idctdsp mpeg1video_decoder"
    
    ffv1_decoder_select="golomb rangecoder"
    ffv1_encoder_select="rangecoder"
    
    ffvhuff_decoder_select="huffyuv_decoder"
    ffvhuff_encoder_select="huffyuv_encoder"
    
    Kostya Shishkov's avatar
    Kostya Shishkov committed
    fic_decoder_select="golomb"
    
    flac_decoder_select="flacdsp golomb"
    flac_encoder_select="bswapdsp flacdsp golomb lpc"
    
    flashsv_decoder_select="zlib"
    flashsv_encoder_select="zlib"
    flashsv2_encoder_select="zlib"
    flashsv2_decoder_select="zlib"
    
    flv_decoder_select="h263_decoder"
    
    flv_encoder_select="h263_encoder"
    
    fourxm_decoder_select="blockdsp bswapdsp"
    fraps_decoder_select="bswapdsp huffman"
    
    g2m_decoder_select="blockdsp idctdsp jpegtables zlib"
    
    g729_decoder_select="audiodsp"
    
    h261_decoder_select="mpegvideo"
    
    h261_encoder_select="aandcttables mpegvideoenc"
    
    h263_decoder_select="h263_parser h263dsp mpegvideo qpeldsp"
    
    h263_encoder_select="aandcttables h263dsp mpegvideoenc"
    
    h263i_decoder_select="h263_decoder"
    
    h263p_decoder_select="h263_decoder"
    
    h263p_encoder_select="h263_encoder"
    
    h264_decoder_select="cabac golomb h264chroma h264dsp h264pred h264qpel startcode videodsp"
    
    h264_decoder_suggest="error_resilience"
    
    h264_qsv_decoder_deps="libmfx"
    
    Anton Khirnov's avatar
    Anton Khirnov committed
    h264_qsv_decoder_select="h264_mp4toannexb_bsf h264_parser qsvdec h264_qsv_hwaccel"
    
    h264_qsv_encoder_deps="libmfx"
    h264_qsv_encoder_select="qsvenc"
    
    hap_decoder_select="snappy texturedsp"
    hap_encoder_deps="libsnappy"
    hap_encoder_select="texturedspenc"
    
    hevc_decoder_select="bswapdsp cabac golomb videodsp"
    
    hevc_qsv_encoder_deps="libmfx"
    
    hevc_qsv_decoder_deps="libmfx"
    hevc_qsv_decoder_select="hevc_mp4toannexb_bsf hevc_parser qsvdec hevc_qsv_hwaccel"
    
    hevc_qsv_encoder_select="qsvenc"
    
    huffyuv_decoder_select="bswapdsp huffyuvdsp llviddsp"
    huffyuv_encoder_select="bswapdsp huffman huffyuvencdsp llviddsp"
    
    iac_decoder_select="imc_decoder"
    
    imc_decoder_select="bswapdsp fft mdct sinewin"
    
    indeo3_decoder_select="hpeldsp"
    
    indeo4_decoder_select="ividsp"
    indeo5_decoder_select="ividsp"
    
    interplay_video_decoder_select="hpeldsp"
    
    jpegls_decoder_select="golomb mjpeg_decoder"
    
    jpegls_encoder_select="golomb"
    
    lagarith_decoder_select="huffyuvdsp"
    
    ljpeg_encoder_select="aandcttables idctdsp jpegtables"
    
    loco_decoder_select="golomb"
    
    mdec_decoder_select="blockdsp idctdsp mpegvideo"
    
    metasound_decoder_select="lsp mdct sinewin"
    
    mimic_decoder_select="blockdsp bswapdsp hpeldsp idctdsp"
    
    mjpeg_decoder_select="blockdsp hpeldsp exif idctdsp jpegtables"
    
    mjpeg_encoder_select="aandcttables jpegtables mpegvideoenc"
    
    mjpegb_decoder_select="mjpeg_decoder"
    
    mlp_decoder_select="mlp_parser"
    
    motionpixels_decoder_select="bswapdsp"
    
    mp1_decoder_select="mpegaudio"
    mp1float_decoder_select="mpegaudio"
    mp2_decoder_select="mpegaudio"
    mp2float_decoder_select="mpegaudio"
    mp3_decoder_select="mpegaudio"
    mp3adu_decoder_select="mpegaudio"
    mp3adufloat_decoder_select="mpegaudio"
    mp3float_decoder_select="mpegaudio"
    mp3on4_decoder_select="mpegaudio"
    mp3on4float_decoder_select="mpegaudio"
    
    mpc7_decoder_select="bswapdsp mpegaudiodsp"
    
    mpc8_decoder_select="mpegaudiodsp"
    
    mpeg_xvmc_decoder_deps="X11_extensions_XvMClib_h"
    
    mpeg_xvmc_decoder_select="mpeg2video_decoder"
    
    mpegvideo_decoder_select="mpegvideo"
    mpeg1video_decoder_select="mpegvideo"
    
    mpeg1video_encoder_select="aandcttables mpegvideoenc h263dsp"
    
    mpeg2video_decoder_select="mpegvideo"
    
    mpeg2video_encoder_select="aandcttables mpegvideoenc h263dsp"
    
    mpeg2_qsv_decoder_deps="libmfx"
    mpeg2_qsv_decoder_select="qsvdec mpeg2_qsv_hwaccel"
    
    mpeg2_qsv_encoder_deps="libmfx"
    
    mpeg2_qsv_encoder_select="qsvenc"
    
    mpeg4_decoder_select="h263_decoder mpeg4video_parser"
    mpeg4_encoder_select="h263_encoder"
    
    msa1_decoder_select="mss34dsp"
    
    msmpeg4v1_decoder_select="h263_decoder"
    msmpeg4v2_decoder_select="h263_decoder"
    
    msmpeg4v2_encoder_select="h263_encoder"
    
    msmpeg4v3_decoder_select="h263_decoder"
    
    msmpeg4v3_encoder_select="h263_encoder"
    
    mss2_decoder_select="vc1_decoder"
    
    mts2_decoder_select="mss34dsp"
    
    mxpeg_decoder_select="mjpeg_decoder"
    
    nellymoser_decoder_select="mdct sinewin"
    
    nellymoser_encoder_select="audio_frame_queue mdct sinewin"
    
    nuv_decoder_select="idctdsp lzo"
    
    Kostya Shishkov's avatar
    Kostya Shishkov committed
    on2avc_decoder_select="mdct"
    
    opus_decoder_deps="swresample"
    
    opus_decoder_select="imdct15"
    
    png_encoder_select="huffyuvencdsp zlib"
    
    prores_decoder_select="blockdsp idctdsp"
    
    prores_encoder_select="fdctdsp"
    
    qdm2_decoder_select="mdct rdft mpegaudiodsp"
    
    ra_144_encoder_select="audio_frame_queue lpc audiodsp"
    ra_144_decoder_select="audiodsp"
    
    rawvideo_decoder_select="bswapdsp"
    rtjpeg_decoder_select="me_cmp"
    
    rv10_decoder_select="h263_decoder"
    
    rv20_decoder_select="h263_decoder"
    
    rv30_decoder_select="golomb h264pred h264qpel mpegvideo rv34dsp"
    rv40_decoder_select="golomb h264pred h264qpel mpegvideo rv34dsp"
    
    shorten_decoder_select="golomb"
    
    snow_decoder_select="dwt h264qpel hpeldsp me_cmp rangecoder videodsp"
    
    snow_encoder_select="aandcttables dwt h264qpel hpeldsp me_cmp mpegvideoenc rangecoder"
    
    sonic_decoder_select="golomb rangecoder"
    sonic_encoder_select="golomb rangecoder"
    
    sonic_ls_encoder_select="golomb rangecoder"
    
    sp5x_decoder_select="mjpeg_decoder"
    
    svq1_decoder_select="hpeldsp"
    
    svq1_encoder_select="aandcttables hpeldsp me_cmp mpegvideoenc"
    
    svq3_decoder_select="h264_decoder hpeldsp tpeldsp"
    
    svq3_decoder_suggest="zlib"
    
    tak_decoder_select="audiodsp"
    
    tdsc_decoder_select="zlib mjpeg_decoder"
    
    theora_decoder_select="vp3_decoder"
    
    thp_decoder_select="mjpeg_decoder"
    
    tiff_decoder_suggest="zlib lzma"
    
    tiff_encoder_suggest="zlib"
    
    truehd_decoder_select="mlp_parser"
    
    truemotion2_decoder_select="bswapdsp"
    truespeech_decoder_select="bswapdsp"
    
    twinvq_decoder_select="mdct lsp sinewin"
    
    txd_decoder_select="texturedsp"
    
    utvideo_decoder_select="bswapdsp"
    utvideo_encoder_select="bswapdsp huffman huffyuvencdsp"
    
    vble_decoder_select="huffyuvdsp"
    
    vc1_decoder_select="blockdsp h263_decoder h264qpel intrax8 qpeldsp startcode"
    
    vc1image_decoder_select="vc1_decoder"
    
    vc1_qsv_decoder_deps="libmfx"
    vc1_qsv_decoder_select="qsvdec vc1_qsv_hwaccel"
    
    vorbis_decoder_select="mdct"
    vorbis_encoder_select="mdct"
    
    vp3_decoder_select="hpeldsp vp3dsp videodsp"
    
    vp5_decoder_select="h264chroma hpeldsp videodsp vp3dsp vp56dsp"
    vp6_decoder_select="h264chroma hpeldsp huffman videodsp vp3dsp vp56dsp"
    
    vp6a_decoder_select="vp6_decoder"
    vp6f_decoder_select="vp6_decoder"
    
    vp7_decoder_select="h264pred videodsp vp8dsp"
    vp8_decoder_select="h264pred videodsp vp8dsp"
    
    vp9_decoder_select="videodsp vp9_parser"
    
    webp_decoder_select="vp8_decoder"
    
    wmalossless_decoder_select="llauddsp"
    
    wmapro_decoder_select="mdct sinewin wma_freqs"
    wmav1_decoder_select="mdct sinewin wma_freqs"
    wmav1_encoder_select="mdct sinewin wma_freqs"
    wmav2_decoder_select="mdct sinewin wma_freqs"
    wmav2_encoder_select="mdct sinewin wma_freqs"
    
    wmavoice_decoder_select="lsp rdft dct mdct sinewin"
    
    wmv1_encoder_select="h263_encoder"
    
    wmv2_decoder_select="blockdsp h263_decoder idctdsp intrax8 videodsp wmv2dsp"
    wmv2_encoder_select="h263_encoder wmv2dsp"
    
    wmv3_decoder_select="vc1_decoder"
    
    wmv3image_decoder_select="wmv3_decoder"
    
    zerocodec_decoder_select="zlib"
    zlib_decoder_select="zlib"
    zlib_encoder_select="zlib"
    zmbv_decoder_select="zlib"
    zmbv_encoder_select="zlib"
    
    crystalhd_deps="libcrystalhd_libcrystalhd_if_h"
    
    d3d11va_deps="d3d11_h dxva_h ID3D11VideoDecoder ID3D11VideoContext"
    
    dxva2_deps="dxva2api_h DXVA2_ConfigPictureDecode"
    
    vaapi_deps="va_va_h"
    
    vda_deps="VideoDecodeAcceleration_VDADecoder_h pthreads"
    vda_extralibs="-framework CoreFoundation -framework VideoDecodeAcceleration -framework QuartzCore"
    
    vdpau_deps="vdpau_vdpau_h vdpau_vdpau_x11_h"
    
    videotoolbox_deps="VideoToolbox_VideoToolbox_h pthreads"
    
    videotoolbox_extralibs="-framework CoreFoundation -framework VideoToolbox -framework CoreMedia -framework QuartzCore -framework CoreVideo"
    
    xvmc_deps="X11_extensions_XvMClib_h"
    
    h263_vaapi_hwaccel_deps="vaapi"
    h263_vaapi_hwaccel_select="h263_decoder"
    h263_vdpau_hwaccel_deps="vdpau"
    h263_vdpau_hwaccel_select="h263_decoder"
    
    h263_videotoolbox_hwaccel_deps="videotoolbox"
    h263_videotoolbox_hwaccel_select="h263_decoder"
    
    h264_crystalhd_decoder_select="crystalhd h264_mp4toannexb_bsf h264_parser"
    
    h264_d3d11va_hwaccel_deps="d3d11va"
    h264_d3d11va_hwaccel_select="h264_decoder"
    
    h264_dxva2_hwaccel_deps="dxva2"
    h264_dxva2_hwaccel_select="h264_decoder"
    
    h264_mmal_decoder_deps="mmal"
    h264_mmal_hwaccel_deps="mmal"
    h264_mmal_decoder_select="h264_decoder"
    h264_mmal_encoder_deps="mmal"
    
    h264_qsv_hwaccel_deps="libmfx"
    
    h264_vaapi_hwaccel_deps="vaapi"
    h264_vaapi_hwaccel_select="h264_decoder"
    
    h264_vda_decoder_deps="vda"
    h264_vda_decoder_select="h264_decoder"
    
    h264_vda_hwaccel_deps="vda"
    h264_vda_hwaccel_select="h264_decoder"
    
    Anton Khirnov's avatar
    Anton Khirnov committed
    h264_vda_old_hwaccel_deps="vda"
    h264_vda_old_hwaccel_select="h264_decoder"
    
    h264_vdpau_decoder_deps="vdpau"
    h264_vdpau_decoder_select="h264_decoder"
    
    h264_vdpau_hwaccel_deps="vdpau"
    h264_vdpau_hwaccel_select="h264_decoder"
    
    h264_videotoolbox_hwaccel_deps="videotoolbox"
    h264_videotoolbox_hwaccel_select="h264_decoder"
    
    hevc_d3d11va_hwaccel_deps="d3d11va DXVA_PicParams_HEVC"
    hevc_d3d11va_hwaccel_select="hevc_decoder"
    
    Hendrik Leppkes's avatar
    Hendrik Leppkes committed
    hevc_dxva2_hwaccel_deps="dxva2 DXVA_PicParams_HEVC"
    hevc_dxva2_hwaccel_select="hevc_decoder"
    
    hevc_qsv_hwaccel_deps="libmfx"
    
    hevc_vaapi_hwaccel_deps="vaapi VAPictureParameterBufferHEVC"
    hevc_vaapi_hwaccel_select="hevc_decoder"
    
    hevc_vdpau_hwaccel_deps="vdpau VdpPictureInfoHEVC"
    
    hevc_vdpau_hwaccel_select="hevc_decoder"
    
    mpeg_vdpau_decoder_deps="vdpau"
    mpeg_vdpau_decoder_select="mpeg2video_decoder"
    
    mpeg_xvmc_hwaccel_deps="xvmc"
    mpeg_xvmc_hwaccel_select="mpeg2video_decoder"
    
    mpeg1_vdpau_decoder_deps="vdpau"
    mpeg1_vdpau_decoder_select="mpeg1video_decoder"
    
    mpeg1_vdpau_hwaccel_deps="vdpau"
    mpeg1_vdpau_hwaccel_select="mpeg1video_decoder"
    
    mpeg1_videotoolbox_hwaccel_deps="videotoolbox"
    mpeg1_videotoolbox_hwaccel_select="mpeg1video_decoder"
    
    mpeg1_xvmc_hwaccel_deps="xvmc"
    mpeg1_xvmc_hwaccel_select="mpeg1video_decoder"
    
    mpeg2_crystalhd_decoder_select="crystalhd"
    
    mpeg2_d3d11va_hwaccel_deps="d3d11va"
    mpeg2_d3d11va_hwaccel_select="mpeg2video_decoder"
    
    mpeg2_dxva2_hwaccel_deps="dxva2"
    mpeg2_dxva2_hwaccel_select="mpeg2video_decoder"
    
    mpeg2_qsv_hwaccel_deps="libmfx"
    
    mpeg2_qsv_hwaccel_select="qsvdec_mpeg2"
    
    mpeg2_vaapi_hwaccel_deps="vaapi"
    mpeg2_vaapi_hwaccel_select="mpeg2video_decoder"
    mpeg2_vdpau_hwaccel_deps="vdpau"
    mpeg2_vdpau_hwaccel_select="mpeg2video_decoder"
    
    mpeg2_videotoolbox_hwaccel_deps="videotoolbox"
    mpeg2_videotoolbox_hwaccel_select="mpeg2video_decoder"
    
    mpeg2_xvmc_hwaccel_deps="xvmc"
    mpeg2_xvmc_hwaccel_select="mpeg2video_decoder"
    
    mpeg4_crystalhd_decoder_select="crystalhd"
    
    mpeg4_vaapi_hwaccel_deps="vaapi"
    mpeg4_vaapi_hwaccel_select="mpeg4_decoder"
    
    mpeg4_vdpau_decoder_deps="vdpau"
    mpeg4_vdpau_decoder_select="mpeg4_decoder"
    
    mpeg4_vdpau_hwaccel_deps="vdpau"
    mpeg4_vdpau_hwaccel_select="mpeg4_decoder"
    
    mpeg4_videotoolbox_hwaccel_deps="videotoolbox"
    mpeg4_videotoolbox_hwaccel_select="mpeg4_decoder"
    
    msmpeg4_crystalhd_decoder_select="crystalhd"
    vc1_crystalhd_decoder_select="crystalhd"
    
    vc1_d3d11va_hwaccel_deps="d3d11va"
    vc1_d3d11va_hwaccel_select="vc1_decoder"
    
    vc1_dxva2_hwaccel_deps="dxva2"
    vc1_dxva2_hwaccel_select="vc1_decoder"
    
    vc1_vaapi_hwaccel_deps="vaapi"
    vc1_vaapi_hwaccel_select="vc1_decoder"
    
    vc1_vdpau_decoder_deps="vdpau"
    vc1_vdpau_decoder_select="vc1_decoder"
    
    vc1_vdpau_hwaccel_deps="vdpau"
    vc1_vdpau_hwaccel_select="vc1_decoder"
    
    vc1_qsv_hwaccel_deps="libmfx"
    vc1_qsv_hwaccel_select="qsvdec_vc1"
    
    wmv3_crystalhd_decoder_select="crystalhd"
    
    wmv3_d3d11va_hwaccel_select="vc1_d3d11va_hwaccel"
    
    wmv3_dxva2_hwaccel_select="vc1_dxva2_hwaccel"
    wmv3_vaapi_hwaccel_select="vc1_vaapi_hwaccel"
    
    wmv3_vdpau_decoder_select="vc1_vdpau_decoder"
    
    wmv3_vdpau_hwaccel_select="vc1_vdpau_hwaccel"
    
    h264_parser_select="h264_decoder"
    
    hevc_parser_select="golomb"
    
    mpegvideo_parser_select="mpegvideo"
    
    mpeg4video_parser_select="h263dsp mpegvideo qpeldsp"
    
    vc1_parser_select="mpegvideo startcode vc1_decoder"
    
    # bitstream_filters
    mjpeg2jpeg_bsf_select="jpegtables"
    
    
    # external libraries
    
    chromaprint_muxer_deps="chromaprint"
    
    tipok's avatar
    tipok committed
    libaacplus_encoder_deps="libaacplus"
    
    libcelt_decoder_deps="libcelt"
    
    libdcadec_decoder_deps="libdcadec"
    
    libfaac_encoder_select="audio_frame_queue"
    
    libfdk_aac_decoder_deps="libfdk_aac"
    
    libfdk_aac_encoder_deps="libfdk_aac"
    
    libfdk_aac_encoder_select="audio_frame_queue"
    
    wm4's avatar
    wm4 committed
    libgme_demuxer_deps="libgme"
    
    libgsm_decoder_deps="libgsm"
    libgsm_encoder_deps="libgsm"
    
    libgsm_ms_decoder_deps="libgsm"
    libgsm_ms_encoder_deps="libgsm"
    
    libilbc_decoder_deps="libilbc"
    libilbc_encoder_deps="libilbc"
    
    libkvazaar_encoder_deps="libkvazaar"
    
    libmodplug_demuxer_deps="libmodplug"
    
    libmp3lame_encoder_select="audio_frame_queue"
    
    libopencore_amrnb_decoder_deps="libopencore_amrnb"
    libopencore_amrnb_encoder_deps="libopencore_amrnb"
    
    libopencore_amrnb_encoder_select="audio_frame_queue"
    
    libopencore_amrwb_decoder_deps="libopencore_amrwb"
    
    libopenh264_encoder_deps="libopenh264"
    
    libopenjpeg_decoder_deps="libopenjpeg"
    
    libopenjpeg_encoder_deps="libopenjpeg"
    
    libopus_decoder_deps="libopus"
    
    libopus_encoder_deps="libopus"
    
    libopus_encoder_select="audio_frame_queue"
    
    libquvi_demuxer_deps="libquvi"
    
    libschroedinger_decoder_deps="libschroedinger"
    libschroedinger_encoder_deps="libschroedinger"
    
    libshine_encoder_deps="libshine"
    libshine_encoder_select="audio_frame_queue"
    
    libspeex_decoder_deps="libspeex"
    
    Art Clarke's avatar
    Art Clarke committed
    libspeex_encoder_deps="libspeex"
    
    libspeex_encoder_select="audio_frame_queue"
    
    Mohamed Naufal's avatar
    Mohamed Naufal committed
    libstagefright_h264_decoder_deps="libstagefright_h264"
    
    libtheora_encoder_deps="libtheora"
    
    libtwolame_encoder_deps="libtwolame"
    
    libvo_aacenc_encoder_deps="libvo_aacenc"
    
    libvo_aacenc_encoder_select="audio_frame_queue"
    
    libvo_amrwbenc_encoder_deps="libvo_amrwbenc"
    
    libvorbis_encoder_deps="libvorbis"
    
    libvorbis_encoder_select="audio_frame_queue"
    
    libvpx_vp8_decoder_deps="libvpx"
    libvpx_vp8_encoder_deps="libvpx"
    libvpx_vp9_decoder_deps="libvpx"
    libvpx_vp9_encoder_deps="libvpx"
    
    libwavpack_encoder_deps="libwavpack"
    
    Justin Ruggles's avatar
    Justin Ruggles committed
    libwebp_encoder_deps="libwebp"
    
    libwebp_anim_encoder_deps="libwebp"
    
    libx262_encoder_deps="libx262"
    
    libx264rgb_encoder_deps="libx264"
    
    libx264rgb_encoder_select="libx264_encoder"
    
    Derek Buitenhuis's avatar
    Derek Buitenhuis committed
    libx265_encoder_deps="libx265"
    
    libxavs_encoder_deps="libxavs"
    
    libutvideo_decoder_deps="libutvideo"
    libutvideo_encoder_deps="libutvideo"
    
    libzvbi_teletext_decoder_deps="libzvbi"
    
    nvenc_encoder_deps="nvenc"
    
    nvenc_hevc_encoder_deps="nvenc"
    
    # demuxers / muxers
    
    ac3_demuxer_select="ac3_parser"
    
    asf_demuxer_select="riffdec"
    
    asf_o_demuxer_select="riffdec"
    
    asf_muxer_select="riffenc"
    
    asf_stream_muxer_select="asf_muxer"
    
    avi_demuxer_select="riffdec exif"
    
    avi_muxer_select="riffenc"
    
    avisynth_demuxer_deps="avisynth"
    
    avisynth_demuxer_select="riffdec"
    caf_demuxer_select="riffdec"
    
    dash_muxer_select="mp4_muxer"
    
    dirac_demuxer_select="dirac_parser"
    
    dts_demuxer_select="dca_parser"
    
    Paul B Mahol's avatar
    Paul B Mahol committed
    dtshd_demuxer_select="dca_parser"
    
    dv_demuxer_select="dvprofile"
    dv_muxer_select="dvprofile"
    
    dxa_demuxer_select="riffdec"
    
    f4v_muxer_select="mov_muxer"
    
    flac_demuxer_select="flac_parser"
    
    hds_muxer_select="flv_muxer"
    
    hls_muxer_select="mpegts_muxer"
    
    image2_alias_pix_demuxer_select="image2_demuxer"
    image2_brender_pix_demuxer_select="image2_demuxer"
    
    ismv_muxer_select="mov_muxer"
    
    libnut_demuxer_deps="libnut"
    libnut_muxer_deps="libnut"
    
    matroska_audio_muxer_select="matroska_muxer"
    
    matroska_demuxer_select="riffdec"
    
    matroska_demuxer_suggest="bzlib lzo zlib"
    
    matroska_muxer_select="riffenc"
    mmf_muxer_select="riffenc"
    
    mov_demuxer_select="riffdec"
    
    mov_demuxer_suggest="zlib"
    
    mov_muxer_select="riffenc rtpenc_chain"
    
    mp3_demuxer_select="mpegaudio_parser"
    
    mpegts_muxer_select="adts_muxer latm_muxer"
    
    mpegtsraw_demuxer_select="mpegts_demuxer"
    mxf_d10_muxer_select="mxf_muxer"
    
    mxf_opatom_muxer_select="mxf_muxer"
    
    nut_muxer_select="riffenc"
    
    nuv_demuxer_select="riffdec"
    
    oga_muxer_select="ogg_muxer"
    
    ogg_demuxer_select="golomb"
    
    opus_muxer_select="ogg_muxer"
    
    rtpdec_select="asf_demuxer jpegtables mov_demuxer mpegts_demuxer rm_demuxer rtp_protocol"
    
    rtsp_demuxer_select="http_protocol rtpdec"
    
    rtsp_muxer_select="rtp_muxer http_protocol rtp_protocol rtpenc_chain"
    
    Martin Storsjö's avatar
    Martin Storsjö committed
    sap_demuxer_select="sdp_demuxer"
    
    sap_muxer_select="rtp_muxer rtp_protocol rtpenc_chain"
    
    smoothstreaming_muxer_select="ismv_muxer"
    
    spdif_muxer_select="aac_parser"
    
    spx_muxer_select="ogg_muxer"
    
    tak_demuxer_select="tak_parser"
    
    tg2_muxer_select="mov_muxer"
    tgp_muxer_select="mov_muxer"
    
    Clément Bœsch's avatar
    Clément Bœsch committed
    vobsub_demuxer_select="mpegps_demuxer"
    
    w64_muxer_select="wav_muxer"
    
    wav_demuxer_select="riffdec"
    
    wav_muxer_select="riffenc"
    webm_muxer_select="riffenc"
    
    wtv_demuxer_select="riffdec"
    
    wtv_muxer_select="riffenc"
    
    xmv_demuxer_select="riffdec"
    xwma_demuxer_select="riffdec"
    
    alsa_indev_deps="alsa_asoundlib_h snd_pcm_htimestamp"
    alsa_outdev_deps="alsa_asoundlib_h"
    
    avfoundation_indev_extralibs="-framework CoreVideo -framework Foundation -framework AVFoundation -framework CoreMedia"
    
    avfoundation_indev_select="avfoundation"
    
    bktr_indev_deps_any="dev_bktr_ioctl_bt848_h machine_ioctl_bt848_h dev_video_bktr_ioctl_bt848_h dev_ic_bt8xx_h"
    
    Paul B Mahol's avatar
    Paul B Mahol committed
    caca_outdev_deps="libcaca"
    
    decklink_outdev_deps="decklink pthreads"
    decklink_outdev_extralibs="-lstdc++"
    
    decklink_indev_deps="decklink pthreads"
    decklink_indev_extralibs="-lstdc++"
    
    Ramiro Polla's avatar
    Ramiro Polla committed
    dshow_indev_deps="IBaseFilter"
    
    dshow_indev_extralibs="-lpsapi -lole32 -lstrmiids -luuid -loleaut32 -lshlwapi"
    
    dv1394_indev_deps="dv1394"
    dv1394_indev_select="dv_demuxer"
    
    fbdev_indev_deps="linux_fb_h"
    
    fbdev_outdev_deps="linux_fb_h"
    
    gdigrab_indev_deps="CreateDIBSection"
    gdigrab_indev_extralibs="-lgdi32"
    gdigrab_indev_select="bmp_decoder"
    
    jack_indev_deps="jack_jack_h sem_timedwait"
    
    lavfi_indev_deps="avfilter"
    
    libcdio_indev_deps="libcdio"
    
    libdc1394_indev_deps="libdc1394"
    
    libv4l2_indev_deps="libv4l2"
    
    openal_indev_deps="openal"
    
    Lukasz Marek's avatar
    Lukasz Marek committed
    opengl_outdev_deps="opengl"
    
    oss_indev_deps_any="soundcard_h sys_soundcard_h"
    oss_outdev_deps_any="soundcard_h sys_soundcard_h"
    
    pulse_indev_deps="libpulse"
    
    Lukasz Marek's avatar
    Lukasz Marek committed
    pulse_outdev_deps="libpulse"
    
    qtkit_indev_extralibs="-framework QTKit -framework Foundation -framework QuartzCore"
    qtkit_indev_select="qtkit"
    
    sdl_outdev_deps="sdl"
    
    sndio_indev_deps="sndio_h"
    sndio_outdev_deps="sndio_h"
    
    v4l_indev_deps="linux_videodev_h"
    v4l2_indev_deps_any="linux_videodev2_h sys_videoio_h"
    
    Clément Bœsch's avatar
    Clément Bœsch committed
    v4l2_outdev_deps_any="linux_videodev2_h sys_videoio_h"
    
    vfwcap_indev_deps="capCreateCaptureWindow vfwcap_defines"
    
    vfwcap_indev_extralibs="-lavicap32"
    
    xv_outdev_deps="X11_extensions_Xvlib_h XvGetPortAttribute"
    
    xv_outdev_extralibs="-lXv -lX11 -lXext"
    
    x11grab_indev_deps="x11grab"
    
    x11grab_xcb_indev_deps="libxcb"
    
    # protocols
    
    async_protocol_deps="threads"
    
    Petri Hintukainen's avatar
    Petri Hintukainen committed
    bluray_protocol_deps="libbluray"
    
    Samuel Pitoiset's avatar
    Samuel Pitoiset committed
    ffrtmpcrypt_protocol_deps="!librtmp_protocol"
    
    ffrtmpcrypt_protocol_deps_any="gcrypt gmp openssl"
    
    Samuel Pitoiset's avatar
    Samuel Pitoiset committed
    ffrtmpcrypt_protocol_select="tcp_protocol"
    
    ffrtmphttp_protocol_deps="!librtmp_protocol"
    ffrtmphttp_protocol_select="http_protocol"
    
    Lukasz Marek's avatar
    Lukasz Marek committed
    ftp_protocol_select="tcp_protocol"
    
    http_protocol_select="tcp_protocol"
    
    httpproxy_protocol_select="tcp_protocol"
    
    https_protocol_select="tls_protocol"
    
    Marvin Scholz's avatar
    Marvin Scholz committed
    icecast_protocol_select="http_protocol"
    
    librtmp_protocol_deps="librtmp"
    librtmpe_protocol_deps="librtmp"
    librtmps_protocol_deps="librtmp"
    librtmpt_protocol_deps="librtmp"
    librtmpte_protocol_deps="librtmp"
    
    libsmbclient_protocol_deps="libsmbclient gplv3"
    
    libssh_protocol_deps="libssh"
    
    Måns Rullgård's avatar
    Måns Rullgård committed
    mmsh_protocol_select="http_protocol"
    
    rtmp_protocol_deps="!librtmp_protocol"
    
    rtmp_protocol_select="tcp_protocol"
    
    Samuel Pitoiset's avatar
    Samuel Pitoiset committed
    rtmpe_protocol_select="ffrtmpcrypt_protocol"
    
    Samuel Pitoiset's avatar
    Samuel Pitoiset committed
    rtmps_protocol_deps="!librtmp_protocol"
    rtmps_protocol_select="tls_protocol"
    
    rtmpt_protocol_select="ffrtmphttp_protocol"
    
    Samuel Pitoiset's avatar
    Samuel Pitoiset committed
    rtmpte_protocol_select="ffrtmpcrypt_protocol ffrtmphttp_protocol"
    
    rtmpts_protocol_select="ffrtmphttp_protocol https_protocol"
    
    rtp_protocol_select="udp_protocol"
    
    sctp_protocol_deps="struct_sctp_event_subscribe"
    sctp_protocol_select="network"
    
    srtp_protocol_select="rtp_protocol"
    
    tls_gnutls_protocol_deps="gnutls !tls_securetransport_protocol"
    
    tls_gnutls_protocol_select="tcp_protocol"
    
    tls_openssl_protocol_deps="openssl !tls_securetransport_protocol !tls_gnutls_protocol"
    
    tls_openssl_protocol_select="tcp_protocol"
    
    tls_securetransport_protocol_deps="securetransport"
    
    tls_securetransport_protocol_select="tcp_protocol"
    
    tls_protocol_deps_any="tls_securetransport_protocol tls_gnutls_protocol tls_openssl_protocol"
    
    udplite_protocol_select="network"
    
    Luca Barbato's avatar
    Luca Barbato committed
    unix_protocol_deps="sys_un_h"
    unix_protocol_select="network"
    
    amovie_filter_deps="avcodec avformat"
    
    aresample_filter_deps="swresample"
    
    ass_filter_deps="libass"
    
    asyncts_filter_deps="avresample"
    
    atempo_filter_deps="avcodec"
    atempo_filter_select="rdft"
    
    Stefano Sabatini's avatar
    Stefano Sabatini committed
    azmq_filter_deps="libzmq"
    
    blackframe_filter_deps="gpl"
    
    boxblur_filter_deps="gpl"
    
    bs2b_filter_deps="libbs2b"
    
    colormatrix_filter_deps="gpl"
    
    cover_rect_filter_deps="avcodec avformat gpl"
    
    cropdetect_filter_deps="gpl"
    
    delogo_filter_deps="gpl"
    
    deshake_filter_select="pixelutils"
    
    drawtext_filter_deps="libfreetype"
    
    dynaudnorm_filter_deps="copysign erf"
    
    ebur128_filter_deps="gpl"
    
    eq_filter_deps="gpl"
    
    fftfilt_filter_deps="avcodec"
    fftfilt_filter_select="rdft"
    
    flite_filter_deps="libflite"
    
    find_rect_filter_deps="avcodec avformat gpl"
    
    Stefano Sabatini's avatar
    Stefano Sabatini committed
    frei0r_filter_deps="frei0r dlopen"
    frei0r_src_filter_deps="frei0r dlopen"
    
    fspp_filter_deps="gpl"
    
    Clément Bœsch's avatar
    Clément Bœsch committed
    geq_filter_deps="gpl"
    
    histeq_filter_deps="gpl"
    
    hqdn3d_filter_deps="gpl"
    
    interlace_filter_deps="gpl"
    
    kerndeint_filter_deps="gpl"
    
    ladspa_filter_deps="ladspa dlopen"
    
    mcdeint_filter_deps="avcodec gpl"
    
    movie_filter_deps="avcodec avformat"
    
    mpdecimate_filter_deps="gpl"
    mpdecimate_filter_select="pixelutils"
    
    mptestsrc_filter_deps="gpl"
    
    negate_filter_deps="lut_filter"
    
    perspective_filter_deps="gpl"
    
    pp7_filter_deps="gpl"
    
    Paul B Mahol's avatar
    Paul B Mahol committed
    ocr_filter_deps="libtesseract"
    
    owdenoise_filter_deps="gpl"
    
    pan_filter_deps="swresample"
    
    phase_filter_deps="gpl"
    
    Clément Bœsch's avatar
    Clément Bœsch committed
    pp_filter_deps="gpl postproc"
    
    pullup_filter_deps="gpl"
    
    removelogo_filter_deps="avcodec avformat swscale"
    
    repeatfields_filter_deps="gpl"
    
    resample_filter_deps="avresample"
    
    rubberband_filter_deps="librubberband"
    
    sab_filter_deps="gpl swscale"
    
    scale_filter_deps="swscale"
    
    scale2ref_filter_deps="swscale"
    
    select_filter_select="pixelutils"
    
    smartblur_filter_deps="gpl swscale"
    
    showcqt_filter_deps="avcodec"
    showcqt_filter_select="fft"
    
    showfreqs_filter_deps="avcodec"
    showfreqs_filter_select="fft"
    
    showspectrum_filter_deps="avcodec"
    showspectrum_filter_select="rdft"
    spp_filter_deps="gpl avcodec"
    
    spp_filter_select="fft idctdsp fdctdsp me_cmp pixblockdsp"
    
    stereo3d_filter_deps="gpl"
    
    subtitles_filter_deps="avformat avcodec libass"
    
    super2xsai_filter_deps="gpl"
    
    tinterlace_filter_deps="gpl"
    
    vidstabdetect_filter_deps="libvidstab"
    vidstabtransform_filter_deps="libvidstab"
    
    pixfmts_super2xsai_test_deps="super2xsai_filter"
    tinterlace_merge_test_deps="tinterlace_filter"
    tinterlace_pad_test_deps="tinterlace_filter"
    
    Arwa Arif's avatar
    Arwa Arif committed
    uspp_filter_deps="gpl avcodec"
    
    Stefano Sabatini's avatar
    Stefano Sabatini committed
    zmq_filter_deps="libzmq"
    
    Paul B Mahol's avatar
    Paul B Mahol committed
    zoompan_filter_deps="swscale"
    
    avio_reading="avformat avcodec avutil"
    
    avio_dir_cmd="avformat avutil"
    
    avcodec_example_deps="avcodec avutil"
    
    decoding_encoding_example_deps="avcodec avformat avutil"
    
    demuxing_decoding_example_deps="avcodec avformat avutil"
    
    extract_mvs_example_deps="avcodec avformat avutil"
    
    filter_audio_example_deps="avfilter avutil"
    
    filtering_audio_example_deps="avfilter avcodec avformat avutil"
    filtering_video_example_deps="avfilter avcodec avformat avutil"
    metadata_example_deps="avformat avutil"
    
    muxing_example_deps="avcodec avformat avutil swscale"
    
    qsvdec_example_deps="avcodec avutil libmfx h264_qsv_decoder vaapi_x11"
    
    remuxing_example_deps="avcodec avformat avutil"
    
    resampling_audio_example_deps="avutil swresample"
    scaling_video_example_deps="avutil swscale"
    
    transcode_aac_example_deps="avcodec avformat swresample"
    
    transcoding_example_deps="avfilter avcodec avformat avutil"
    
    # libraries, in linking order
    
    avdevice_deps="avformat avcodec avutil"
    
    avformat_deps="avcodec avutil"
    
    postproc_deps="avutil gpl"
    
    swresample_deps="avutil"
    
    # programs
    
    ffmpeg_deps="avcodec avfilter avformat swresample"
    
    ffmpeg_select="aformat_filter anull_filter atrim_filter format_filter
                   null_filter
    
                   setpts_filter trim_filter"
    
    ffplay_deps="avcodec avformat swscale swresample sdl"
    
    ffplay_select="rdft crop_filter transpose_filter hflip_filter vflip_filter rotate_filter"
    
    ffserver_deps="avformat fork sarestart"
    ffserver_select="ffm_muxer rtp_protocol rtsp_demuxer"
    
    # documentation
    podpages_deps="perl"
    manpages_deps="perl pod2man"
    
    htmlpages_deps="perl"
    htmlpages_deps_any="makeinfo_html texi2html"
    
    txtpages_deps="perl makeinfo"
    
    doc_deps_any="manpages htmlpages podpages txtpages"
    
    Fabrice Bellard's avatar
    Fabrice Bellard committed
    # default parameters
    
    
    # installation paths
    
    prefix_default="/usr/local"
    bindir_default='${prefix}/bin'
    
    datadir_default='${prefix}/share/ffmpeg'
    
    docdir_default='${prefix}/share/doc/ffmpeg'
    
    incdir_default='${prefix}/include'
    libdir_default='${prefix}/lib'
    mandir_default='${prefix}/share/man'
    
    ar_default="ar"
    
    Mohamed Naufal's avatar
    Mohamed Naufal committed
    cxx_default="g++"
    
    host_cc_default="gcc"
    
    Mans Rullgard's avatar
    Mans Rullgard committed
    cp_f="cp -f"
    
    doxygen_default="doxygen"
    
    nm_default="nm -g"
    
    objformat="elf"
    
    pkg_config_default=pkg-config
    
    windres_default="windres"
    
    target_os_default=$(tolower $(uname -s))
    host_os=$target_os_default
    
    # machine
    if test "$target_os_default" = aix; then
        arch_default=$(uname -p)
    
        strip_default="strip -X32_64"
    
    else
        arch_default=$(uname -m)
    fi
    cpu="generic"
    
    # configurable options
    
    enable $DOCUMENT_LIST
    
    enable $(filter_out avresample $LIBRARY_LIST)
    
    enable faan faandct faanidct
    
    enable runtime_cpudetect
    
    enable safe_bitstream_reader
    
    enable static
    
    sws_max_filter_size_default=256
    set_default sws_max_filter_size
    
    
    # Enable hwaccels by default.
    
    enable d3d11va dxva2 vaapi vda vdpau videotoolbox xvmc
    
    # build settings
    
    SHFLAGS='-shared -Wl,-soname,$$(@F)'
    
    FULLNAME='$(NAME)$(BUILDSUF)'
    LIBNAME='$(LIBPREF)$(FULLNAME)$(LIBSUF)'
    
    SLIBNAME='$(SLIBPREF)$(FULLNAME)$(SLIBSUF)'
    
    SLIBNAME_WITH_VERSION='$(SLIBNAME).$(LIBVERSION)'
    SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)'
    
    Måns Rullgård's avatar
    Måns Rullgård committed
    LIB_INSTALL_EXTRA_CMD='$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"'
    
    SLIB_INSTALL_NAME='$(SLIBNAME_WITH_VERSION)'
    SLIB_INSTALL_LINKS='$(SLIBNAME_WITH_MAJOR) $(SLIBNAME)'
    
    asflags_filter=echo
    cflags_filter=echo
    
    ldflags_filter=echo
    
    
    Mohamed Naufal's avatar
    Mohamed Naufal committed
    CXX_O='-o $@'
    
    HOSTCC_E='-E -o $@'
    
    HOSTLD_O='-o $@'
    
    host_libs='-lm'
    
    host_cflags_filter=echo