Skip to content
Snippets Groups Projects
configure 138 KiB
Newer Older
  • Learn to ignore specific revisions
  • check_builtin(){
        log check_builtin "$@"
        name=$1
        headers=$2
        builtin=$3
        shift 3
        disable "$name"
        check_code ld "$headers" "$builtin" "$@" && enable "$name"
    }
    
    
    check_compile_assert(){
        log check_compile_assert "$@"
        name=$1
        headers=$2
        condition=$3
        shift 3
        disable "$name"
        check_code cc "$headers" "char c[2 * !!($condition) - 1]" "$@" && enable "$name"
    }
    
    
    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"
    }
    
    
    require_pkg_config(){
        pkg="$1"
        check_pkg_config "$@" || die "ERROR: $pkg not found"
        add_cflags    $(get_safe ${pkg}_cflags)
        add_extralibs $(get_safe ${pkg}_libs)
    }
    
    
    hostcc_e(){
        eval printf '%s\\n' $HOSTCC_E
    }
    
    
    hostcc_o(){
        eval printf '%s\\n' $HOSTCC_O
    }
    
    
    check_host_cc(){
        log check_host_cc "$@"
        cat > $TMPC
        log_file $TMPC
    
        check_cmd $host_cc $host_cflags "$@" $HOSTCC_C $(hostcc_o $TMPO) $TMPC
    
    check_host_cpp(){
        log check_host_cpp "$@"
        cat > $TMPC
        log_file $TMPC
        check_cmd $host_cc $HOSTCPPFLAGS $HOSTCFLAGS "$@" $(hostcc_e $TMPO) $TMPC
    }
    
    
    check_host_cppflags(){
        log check_host_cppflags "$@"
        check_host_cc "$@" <<EOF && append host_cppflags "$@"
    int x;
    EOF
    }
    
    
    check_host_cflags(){
        log check_host_cflags "$@"
    
        set -- $($host_cflags_filter "$@")
    
        check_host_cc "$@" <<EOF && append host_cflags "$@"
    int x;
    EOF
    }
    
    
    check_host_cpp_condition(){
        log check_host_cpp_condition "$@"
        header=$1
        condition=$2
        shift 2
        check_host_cpp "$@" <<EOF
    #include <$header>
    #if !($condition)
    #error "unsatisfied condition: $condition"
    #endif
    EOF
    }
    
    
    apply(){
        file=$1
        shift
        "$@" < "$file" > "$file.tmp" && mv "$file.tmp" "$file" || rm "$file.tmp"
    }
    
    
        cmp -s "$1" "$2" && echo "$2 is unchanged" && return
        mkdir -p "$(dirname $2)"
    
    Mans Rullgard's avatar
    Mans Rullgard committed
        $cp_f "$1" "$2"
    
    # CONFIG_LIST contains configurable options, while HAVE_LIST is for
    # system-dependent things.
    
    
    COMPONENT_LIST="
        bsfs
        decoders
        demuxers
        encoders
    
    Vitor Sessak's avatar
    Vitor Sessak committed
        filters
    
        avcodec_example
    
        filter_audio_example
    
        metadata_example
    
        transcode_aac_example
    
    EXTERNAL_LIBRARY_LIST="
        avisynth
        bzlib
        frei0r
        gnutls
    
        libfontconfig
    
        libfreetype
        libgsm
        libilbc
        libmp3lame
        libopencore_amrnb
        libopencore_amrwb
        libopencv
        libopenjpeg
        libopus
        libpulse
        librtmp
        libschroedinger
        libspeex
        libtheora
    
        libtwolame
    
        libvo_aacenc
        libvo_amrwbenc
        libvorbis
        libvpx
    
    Justin Ruggles's avatar
    Justin Ruggles committed
        libwebp
    
    Derek Buitenhuis's avatar
    Derek Buitenhuis committed
        libx265
    
    FEATURE_LIST="
        gray
        hardcoded_tables
        runtime_cpudetect
        safe_bitstream_reader
        shared
        small
        sram
        static
        swscale_alpha
    "
    
    
        network
        rdft
    "
    
    CONFIG_LIST="
        $COMPONENT_LIST
        $EXAMPLE_LIST
        $EXTERNAL_LIBRARY_LIST
        $FEATURE_LIST
        $HWACCEL_LIST
        $LICENSE_LIST
        $LIBRARY_LIST
        $PROGRAM_LIST
        $SUBSYSTEM_LIST
    
    THREADS_LIST="
    
    ATOMICS_LIST="
    
        atomics_gcc
        atomics_suncc
    
    ARCH_LIST="
    
    Måns Rullgård's avatar
    Måns Rullgård committed
        tomi
    
    ARCH_EXT_LIST_ARM="
    
        armv8
    
    ARCH_EXT_LIST_X86_SIMD="
    
    ARCH_FEATURES="
        aligned_stack
        fast_64bit
        fast_clz
        fast_cmov
        local_aligned_8
        local_aligned_16
    "
    
    BUILTIN_LIST="
        atomic_cas_ptr
        machine_rw_barrier
        MemoryBarrier
        mm_empty
        rdtsc
        sync_val_compare_and_swap
    "
    
    HAVE_LIST_CMDLINE="
    
    HAVE_LIST_PUB="
    
        fast_unaligned
    
    HEADERS_LIST="
        alsa_asoundlib_h
        altivec_h
        arpa_inet_h
        cdio_paranoia_h
        cdio_paranoia_paranoia_h
        dev_bktr_ioctl_bt848_h
        dev_bktr_ioctl_meteor_h
        dev_ic_bt8xx_h
        dev_video_bktr_ioctl_bt848_h
        dev_video_meteor_ioctl_meteor_h
        direct_h
        dlfcn_h
        dxva_h
        gsm_h
        io_h
        mach_mach_time_h
        machine_ioctl_bt848_h
        machine_ioctl_meteor_h
        malloc_h
        poll_h
        sndio_h
        soundcard_h
        sys_mman_h
        sys_param_h
        sys_resource_h
        sys_select_h
        sys_soundcard_h
        sys_time_h
        sys_un_h
        sys_videoio_h
        unistd_h
        windows_h
        winsock2_h
    "
    
    
    Alex Beregszaszi's avatar
    Alex Beregszaszi committed
        closesocket
    
    Måns Rullgård's avatar
    Måns Rullgård committed
        fcntl
    
    Måns Rullgård's avatar
    Måns Rullgård committed
        fork
    
        GetProcessAffinityMask
    
    Ramiro Polla's avatar
    Ramiro Polla committed
        getrusage
    
        GetSystemTimeAsFileTime
    
        MapViewOfFile
    
        mkstemp
    
        mprotect
    
        nanosleep
    
        posix_memalign
    
        strerror_r
    
        strptime
    
        sysconf
        sysctl
        usleep
        VirtualAlloc
    "
    
    TOOLCHAIN_FEATURES="
        asm_mod_q
        attribute_may_alias
        attribute_packed
        ebp_available
        ebx_available
        gnu_as
        ibm_asm
        inline_asm_labels
        pragma_deprecated
        symver_asm_label
        symver_gnu_asm
        vfp_args
        xform_asm
        xmm_clobbers
    "
    
    TYPES_LIST="
        socklen_t
    
        struct_group_source_req
        struct_ip_mreq_source
    
        struct_pollfd
    
        struct_v4l2_frmivalenum_discrete
    
    "
    
    HAVE_LIST="
        $ARCH_EXT_LIST
        $(add_suffix _external $ARCH_EXT_LIST)
        $(add_suffix _inline   $ARCH_EXT_LIST)
        $ARCH_FEATURES
        $ATOMICS_LIST
        $BUILTIN_LIST
        $HAVE_LIST_CMDLINE
        $HAVE_LIST_PUB
        $HEADERS_LIST
        $MATH_FUNCS
        $SYSTEM_FUNCS
        $THREADS_LIST
        $TOOLCHAIN_FEATURES
        $TYPES_LIST
        atomics_native
        dos_paths
    
        libc_msvcrt
        libdc1394_1
        libdc1394_2
        sdl
    
    Diego Biurrun's avatar
    Diego Biurrun committed
    # options emitted with CONFIG_ prefix but not available on the command line
    
    PATHS_LIST="
    
        host_ldflags
        host_libs
    
        pkg_config_flags
    
    Måns Rullgård's avatar
    Måns Rullgård committed
        samples
    
        toolchain
    
    CMDLINE_APPEND="
        extra_cflags
    
    # code dependency declarations
    
    
    # architecture extensions
    
    armv5te_deps="arm"
    armv6_deps="arm"
    
    armv6t2_deps="arm"
    
    armv8_deps="aarch64"
    
    neon_deps_any="aarch64 arm"
    vfp_deps_any="aarch64 arm"
    
    vfpv3_deps="vfp"
    
    map 'eval ${v}_inline_deps=inline_asm' $ARCH_EXT_LIST_ARM
    
    
    altivec_deps="ppc"
    ppc4xx_deps="ppc"
    
    
    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"
    
    need_memalign="altivec neon sse"
    
    # system capabilities
    log2_deps="!libc_msvcrt"
    
    
    symver_if_any="symver_asm_label symver_gnu_asm"
    
    
    # threading support
    atomics_gcc_if="sync_val_compare_and_swap"
    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"
    
    error_resilience_select="dsputil"
    
    mdct_select="fft"
    rdft_select="fft"
    
    mpegaudio_select="mpegaudiodsp"
    
    mpegvideo_select="dsputil hpeldsp videodsp"
    
    mpegvideoenc_select="dsputil mpegvideo"
    
    aac_decoder_select="mdct sinewin"
    
    aac_encoder_select="audio_frame_queue mdct sinewin"
    
    aac_latm_decoder_select="aac_decoder aac_latm_parser"
    
    ac3_decoder_select="mdct ac3dsp ac3_parser dsputil"
    ac3_encoder_select="mdct ac3dsp dsputil"
    ac3_fixed_encoder_select="mdct ac3dsp dsputil"
    
    aic_decoder_select="dsputil golomb"
    
    als_decoder_select="dsputil"
    
    amv_decoder_select="sp5x_decoder"
    
    ape_decoder_select="dsputil"
    asv1_decoder_select="dsputil"
    asv1_encoder_select="dsputil"
    asv2_decoder_select="dsputil"
    asv2_encoder_select="dsputil"
    
    atrac1_decoder_select="mdct sinewin"
    
    Maxim Polijakowski's avatar
    Maxim Polijakowski committed
    atrac3p_decoder_select="mdct sinewin"
    
    bink_decoder_select="dsputil hpeldsp"
    
    binkaudio_dct_decoder_select="mdct rdft dct sinewin"
    binkaudio_rdft_decoder_select="mdct rdft sinewin"
    
    cavs_decoder_select="dsputil golomb h264chroma videodsp"
    cllc_decoder_select="dsputil"
    
    comfortnoise_encoder_select="lpc"
    
    cook_decoder_select="dsputil mdct sinewin"
    
    cscd_decoder_select="lzo"
    
    cscd_decoder_suggest="zlib"
    
    dnxhd_decoder_select="dsputil"
    dnxhd_encoder_select="aandcttables dsputil mpegvideoenc"
    dvvideo_decoder_select="dsputil"
    dvvideo_encoder_select="dsputil"
    
    eac3_decoder_select="ac3_decoder"
    
    eac3_encoder_select="ac3_encoder"
    
    eamad_decoder_select="aandcttables dsputil mpegvideo"
    eatgq_decoder_select="aandcttables dsputil"
    
    eatqi_decoder_select="aandcttables dsputil error_resilience mpegvideo"
    
    Jimmy Christensen's avatar
    Jimmy Christensen committed
    exr_decoder_deps="zlib"
    
    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="golomb"
    
    flac_encoder_select="dsputil golomb lpc"
    
    flashsv_decoder_deps="zlib"
    flashsv_encoder_deps="zlib"
    flashsv2_decoder_deps="zlib"
    
    flv_decoder_select="h263_decoder"
    
    flv_encoder_select="h263_encoder"
    
    fourxm_decoder_select="dsputil"
    fraps_decoder_select="dsputil huffman"
    
    g2m_decoder_deps="zlib"
    g2m_decoder_select="dsputil"
    
    h261_decoder_select="error_resilience mpegvideo"
    
    h261_encoder_select="aandcttables mpegvideoenc"
    
    h263_decoder_select="error_resilience h263_parser h263dsp mpegvideo"
    h263_encoder_select="aandcttables h263dsp mpegvideoenc"
    
    h263i_decoder_select="h263_decoder"
    
    h263p_encoder_select="h263_encoder"
    
    h264_decoder_select="cabac golomb h264chroma h264dsp h264pred h264qpel videodsp"
    
    h264_decoder_suggest="error_resilience"
    
    hevc_decoder_select="cabac dsputil golomb videodsp"
    
    huffyuv_decoder_select="dsputil"
    huffyuv_encoder_select="dsputil huffman"
    
    iac_decoder_select="imc_decoder"
    
    imc_decoder_select="dsputil fft mdct sinewin"
    
    indeo3_decoder_select="hpeldsp"
    
    interplay_video_decoder_select="hpeldsp"
    
    jpegls_decoder_select="golomb mjpeg_decoder"
    
    jpegls_encoder_select="golomb"
    
    jv_decoder_select="dsputil"
    lagarith_decoder_select="dsputil"
    
    ljpeg_encoder_select="aandcttables mpegvideoenc"
    
    loco_decoder_select="golomb"
    
    mdec_decoder_select="dsputil error_resilience mpegvideo"
    
    metasound_decoder_select="lsp mdct sinewin"
    
    mimic_decoder_select="dsputil hpeldsp"
    
    mjpeg_decoder_select="dsputil hpeldsp"
    
    mjpeg_encoder_select="aandcttables mpegvideoenc"
    
    mjpegb_decoder_select="mjpeg_decoder"
    
    mlp_decoder_select="mlp_parser"
    
    motionpixels_decoder_select="dsputil"
    
    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="dsputil mpegaudiodsp"
    
    mpc8_decoder_select="mpegaudiodsp"
    
    mpeg_xvmc_decoder_deps="X11_extensions_XvMClib_h"
    
    mpeg_xvmc_decoder_select="mpeg2video_decoder"
    
    mpeg1video_decoder_select="error_resilience mpegvideo"
    
    mpeg1video_encoder_select="aandcttables mpegvideoenc"
    
    mpeg2video_decoder_select="error_resilience mpegvideo"
    
    mpeg2video_encoder_select="aandcttables mpegvideoenc"
    
    mpeg4_decoder_select="h263_decoder mpeg4video_parser"
    mpeg4_encoder_select="h263_encoder"
    
    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="error_resilience vc1_decoder"
    
    mxpeg_decoder_select="mjpeg_decoder"
    
    nellymoser_decoder_select="mdct sinewin"
    
    nellymoser_encoder_select="audio_frame_queue mdct sinewin"
    
    nuv_decoder_select="dsputil lzo"
    
    Kostya Shishkov's avatar
    Kostya Shishkov committed
    on2avc_decoder_select="mdct"
    
    opus_decoder_deps="avresample"
    
    png_decoder_deps="zlib"
    png_encoder_deps="zlib"
    png_encoder_select="dsputil"
    
    prores_decoder_select="dsputil"
    prores_encoder_select="dsputil"
    
    qdm2_decoder_select="mdct rdft mpegaudiodsp"
    
    ra_144_encoder_select="audio_frame_queue lpc"
    
    rv10_decoder_select="error_resilience h263_decoder h263dsp"
    
    rv20_decoder_select="error_resilience h263_decoder h263dsp"
    
    rv30_decoder_select="error_resilience golomb h264chroma h264pred h264qpel mpegvideo videodsp"
    rv40_decoder_select="error_resilience golomb h264chroma h264pred h264qpel mpegvideo videodsp"
    
    shorten_decoder_select="golomb"
    
    sp5x_decoder_select="mjpeg_decoder"
    
    svq1_decoder_select="hpeldsp"
    
    svq1_encoder_select="aandcttables dsputil hpeldsp mpegvideoenc"
    
    svq3_decoder_select="h264_decoder hpeldsp tpeldsp"
    
    svq3_decoder_suggest="zlib"
    
    tak_decoder_select="dsputil"
    
    theora_decoder_select="vp3_decoder"
    
    thp_decoder_select="mjpeg_decoder"
    
    tiff_decoder_suggest="zlib"
    tiff_encoder_suggest="zlib"
    
    truehd_decoder_select="mlp_decoder"
    
    truemotion2_decoder_select="dsputil"
    truespeech_decoder_select="dsputil"
    
    twinvq_decoder_select="mdct lsp sinewin"
    
    utvideo_decoder_select="dsputil"
    utvideo_encoder_select="dsputil huffman"
    vble_decoder_select="dsputil"
    
    vc1_decoder_select="error_resilience h263_decoder h264chroma h264qpel intrax8"
    
    vc1image_decoder_select="vc1_decoder"
    
    vorbis_decoder_select="mdct"
    vorbis_encoder_select="mdct"
    
    vp3_decoder_select="hpeldsp vp3dsp videodsp"
    
    vp5_decoder_select="h264chroma hpeldsp videodsp vp3dsp"
    vp6_decoder_select="h264chroma hpeldsp huffman videodsp vp3dsp"
    
    vp6a_decoder_select="vp6_decoder"
    vp6f_decoder_select="vp6_decoder"
    
    Peter Ross's avatar
    Peter Ross committed
    vp7_decoder_select="h264pred videodsp"
    
    vp8_decoder_select="h264pred videodsp"
    
    Ronald S. Bultje's avatar
    Ronald S. Bultje committed
    vp9_decoder_select="videodsp"
    
    Justin Ruggles's avatar
    Justin Ruggles committed
    webp_decoder_select="vp8_decoder"
    
    wmapro_decoder_select="mdct sinewin"
    wmav1_decoder_select="mdct sinewin"
    wmav1_encoder_select="mdct sinewin"
    wmav2_decoder_select="mdct sinewin"
    wmav2_encoder_select="mdct sinewin"
    wmavoice_decoder_select="lsp rdft dct mdct sinewin"
    
    wmv1_encoder_select="h263_encoder"
    
    wmv2_decoder_select="h263_decoder intrax8 videodsp"
    
    wmv2_encoder_select="h263_encoder"
    
    wmv3_decoder_select="vc1_decoder"
    
    wmv3image_decoder_select="wmv3_decoder"
    
    zerocodec_decoder_deps="zlib"
    zlib_decoder_deps="zlib"
    zlib_encoder_deps="zlib"
    zmbv_decoder_deps="zlib"
    zmbv_encoder_deps="zlib"
    
    dxva2_deps="dxva2api_h"
    
    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"
    
    
    h263_vaapi_hwaccel_deps="vaapi"
    h263_vaapi_hwaccel_select="h263_decoder"
    h263_vdpau_hwaccel_deps="vdpau"
    h263_vdpau_hwaccel_select="h263_decoder"
    
    h264_dxva2_hwaccel_deps="dxva2"
    h264_dxva2_hwaccel_select="h264_decoder"
    
    h264_vaapi_hwaccel_deps="vaapi"
    h264_vaapi_hwaccel_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_hwaccel_deps="vdpau"
    h264_vdpau_hwaccel_select="h264_decoder"
    mpeg1_vdpau_hwaccel_deps="vdpau"
    mpeg1_vdpau_hwaccel_select="mpeg1video_decoder"
    
    mpeg2_dxva2_hwaccel_deps="dxva2"
    mpeg2_dxva2_hwaccel_select="mpeg2video_decoder"
    
    mpeg2_vaapi_hwaccel_deps="vaapi"
    mpeg2_vaapi_hwaccel_select="mpeg2video_decoder"
    mpeg2_vdpau_hwaccel_deps="vdpau"
    mpeg2_vdpau_hwaccel_select="mpeg2video_decoder"
    mpeg4_vaapi_hwaccel_deps="vaapi"
    mpeg4_vaapi_hwaccel_select="mpeg4_decoder"
    mpeg4_vdpau_hwaccel_deps="vdpau"
    mpeg4_vdpau_hwaccel_select="mpeg4_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_hwaccel_deps="vdpau"
    vc1_vdpau_hwaccel_select="vc1_decoder"
    
    wmv3_dxva2_hwaccel_select="vc1_dxva2_hwaccel"
    wmv3_vaapi_hwaccel_select="vc1_vaapi_hwaccel"
    
    wmv3_vdpau_hwaccel_select="vc1_vdpau_hwaccel"
    
    h264_parser_select="h264_decoder"
    
    mpeg4video_parser_select="error_resilience h263dsp mpegvideo"
    
    mpegvideo_parser_select="error_resilience mpegvideo"
    
    vc1_parser_select="mpegvideo"
    
    # external libraries
    
    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"
    
    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"
    
    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"
    
    libopenjpeg_decoder_deps="libopenjpeg"
    
    libopenjpeg_encoder_deps="libopenjpeg"
    
    libopus_decoder_deps="libopus"
    
    libopus_encoder_deps="libopus"
    
    libopus_encoder_select="audio_frame_queue"
    
    libschroedinger_decoder_deps="libschroedinger"
    libschroedinger_encoder_deps="libschroedinger"
    
    libspeex_decoder_deps="libspeex"
    
    libspeex_encoder_deps="libspeex"
    
    libspeex_encoder_select="audio_frame_queue"
    
    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"
    
    Derek Buitenhuis's avatar
    Derek Buitenhuis committed
    libx265_encoder_deps="libx265"
    
    libxavs_encoder_deps="libxavs"
    
    # demuxers / muxers
    
    ac3_demuxer_select="ac3_parser"
    
    asf_demuxer_select="riffdec"
    
    asf_muxer_select="riffenc"
    
    asf_stream_muxer_select="asf_muxer"
    
    avi_demuxer_select="riffdec"
    
    avi_muxer_select="riffenc"
    
    avisynth_demuxer_deps="avisynth"
    
    avisynth_demuxer_select="riffdec"
    caf_demuxer_select="riffdec"
    
    dirac_demuxer_select="dirac_parser"
    
    dxa_demuxer_select="riffdec"
    
    f4v_muxer_select="mov_muxer"