Skip to content
Snippets Groups Projects
configure 167 KiB
Newer Older
  • Learn to ignore specific revisions
  • 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 idctdsp"
    
    eatqi_decoder_select="aandcttables blockdsp bswapdsp idctdsp"
    
    Jimmy Christensen's avatar
    Jimmy Christensen committed
    exr_decoder_deps="zlib"
    
    ffv1_decoder_select="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"
    flac_encoder_select="bswapdsp flacdsp 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="blockdsp bswapdsp"
    fraps_decoder_select="bswapdsp huffman"
    
    g2m_decoder_select="blockdsp idctdsp jpegtables"
    
    h261_decoder_select="mpeg_er mpegvideo"
    
    h261_encoder_select="aandcttables mpegvideoenc"
    
    h263_decoder_select="error_resilience h263_parser h263dsp mpeg_er mpegvideo qpeldsp"
    
    h263_encoder_select="aandcttables h263dsp mpegvideoenc"
    
    h263i_decoder_select="h263_decoder"
    
    h263p_encoder_select="h263_encoder"
    
    h264_decoder_select="cabac golomb h264chroma h264dsp h264parse h264pred h264qpel videodsp"
    
    h264_decoder_suggest="error_resilience"
    
    hap_decoder_select="snappy texturedsp"
    hap_encoder_deps="libsnappy"
    hap_encoder_select="texturedspenc"
    
    hevc_decoder_select="bswapdsp cabac hevc_ps videodsp"
    
    huffyuv_decoder_select="bswapdsp huffyuvdsp"
    huffyuv_encoder_select="bswapdsp huffman huffyuvencdsp"
    
    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="mjpeg_decoder"
    
    lagarith_decoder_select="huffyuvdsp"
    
    ljpeg_encoder_select="aandcttables idctdsp jpegtables"
    
    Paul B Mahol's avatar
    Paul B Mahol committed
    magicyuv_decoder_select="huffyuvdsp"
    
    mdec_decoder_select="blockdsp idctdsp mpegvideo"
    
    metasound_decoder_select="lsp mdct sinewin"
    
    mimic_decoder_select="blockdsp bswapdsp hpeldsp idctdsp"
    
    mjpeg_decoder_select="blockdsp hpeldsp 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"
    
    mpeg1video_decoder_select="error_resilience mpeg_er mpegvideo"
    
    mpeg1video_encoder_select="aandcttables mpegvideoenc"
    
    mpeg2video_decoder_select="error_resilience mpeg_er mpegvideo"
    
    mpeg2video_encoder_select="aandcttables mpegvideoenc"
    
    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="error_resilience mpeg_er mpegvideo qpeldsp 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="avresample"
    
    opus_decoder_select="imdct15"
    
    png_decoder_deps="zlib"
    png_encoder_deps="zlib"
    
    png_encoder_select="huffyuvencdsp"
    
    prores_decoder_select="idctdsp"
    
    prores_encoder_select="fdctdsp"
    
    qdm2_decoder_select="mdct rdft mpegaudiodsp"
    
    ra_144_encoder_select="audio_frame_queue lpc"
    
    rscc_decoder_deps="zlib"
    
    rv10_decoder_select="error_resilience h263_decoder h263dsp mpeg_er"
    
    rv20_decoder_select="error_resilience h263_decoder h263dsp mpeg_er"
    
    rv30_decoder_select="error_resilience golomb h264chroma h264pred h264qpel mpeg_er mpegvideo rv34dsp videodsp"
    rv40_decoder_select="error_resilience golomb h264chroma h264pred h264qpel mpeg_er mpegvideo rv34dsp videodsp"
    
    screenpresso_decoder_deps="zlib"
    
    sp5x_decoder_select="mjpeg_decoder"
    
    svq1_decoder_select="hpeldsp"
    
    svq1_encoder_select="aandcttables hpeldsp me_cmp mpegvideoenc"
    
    svq3_decoder_select="golomb h264dsp h264parse h264pred hpeldsp tpeldsp videodsp"
    
    svq3_decoder_suggest="zlib"
    
    tak_decoder_select="audiodsp"
    
    Vittorio Giovara's avatar
    Vittorio Giovara committed
    tdsc_decoder_deps="zlib"
    tdsc_decoder_select="mjpeg_decoder"
    
    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="bswapdsp"
    truespeech_decoder_select="bswapdsp"
    
    txd_decoder_select="texturedsp"
    
    twinvq_decoder_select="mdct lsp sinewin"
    
    utvideo_decoder_select="bswapdsp"
    utvideo_encoder_select="bswapdsp huffman huffyuvencdsp"
    
    vble_decoder_select="huffyuvdsp"
    
    vc1_decoder_select="blockdsp error_resilience h263_decoder h264qpel intrax8 mpeg_er mpegvideo vc1dsp"
    
    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 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_superframe_split_bsf"
    
    Justin Ruggles's avatar
    Justin Ruggles committed
    webp_decoder_select="vp8_decoder"
    
    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 error_resilience h263_decoder idctdsp intrax8 videodsp wmv2dsp"
    
    wmv2_encoder_select="h263_encoder wmv2dsp"
    
    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"
    
    d3d11va_deps="d3d11_h dxva_h ID3D11VideoDecoder"
    
    dxva2_deps="dxva2api_h DXVA2_ConfigPictureDecode"
    
    vda_deps="VideoDecodeAcceleration_VDADecoder_h blocks_extension pthreads"
    
    vda_extralibs="-framework CoreFoundation -framework VideoDecodeAcceleration -framework QuartzCore"
    
    h263_vaapi_hwaccel_deps="vaapi"
    h263_vaapi_hwaccel_select="h263_decoder"
    
    h264_d3d11va_hwaccel_deps="d3d11va"
    h264_d3d11va_hwaccel_select="h264_decoder"
    
    h264_dxva2_hwaccel_deps="dxva2"
    h264_dxva2_hwaccel_select="h264_decoder"
    
    h264_mmal_hwaccel_deps="mmal"
    
    h264_qsv_hwaccel_deps="libmfx"
    
    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"
    
    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"
    
    mpeg1_vdpau_hwaccel_deps="vdpau"
    mpeg1_vdpau_hwaccel_select="mpeg1video_decoder"
    
    mpeg2_d3d11va_hwaccel_deps="d3d11va"
    mpeg2_d3d11va_hwaccel_select="mpeg2video_decoder"
    
    mpeg2_dxva2_hwaccel_deps="dxva2"
    mpeg2_dxva2_hwaccel_select="mpeg2video_decoder"
    
    mpeg2_mmal_hwaccel_deps="mmal"
    
    mpeg2_qsv_hwaccel_deps="libmfx"
    
    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_d3d11va_hwaccel_deps="d3d11va"
    vc1_d3d11va_hwaccel_select="vc1_decoder"
    
    vc1_dxva2_hwaccel_deps="dxva2"
    vc1_dxva2_hwaccel_select="vc1_decoder"
    
    vc1_mmal_hwaccel_deps="mmal"
    
    Mark Thompson's avatar
    Mark Thompson committed
    vc1_qsv_hwaccel_deps="libmfx"
    
    vc1_vaapi_hwaccel_deps="vaapi"
    vc1_vaapi_hwaccel_select="vc1_decoder"
    vc1_vdpau_hwaccel_deps="vdpau"
    vc1_vdpau_hwaccel_select="vc1_decoder"
    
    Mark Thompson's avatar
    Mark Thompson committed
    vp8_qsv_hwaccel_deps="libmfx"
    
    vp8_vaapi_hwaccel_deps="vaapi VAPictureParameterBufferVP8"
    vp8_vaapi_hwaccel_select="vp8_decoder"
    
    wmv3_d3d11va_hwaccel_select="vc1_d3d11va_hwaccel"
    
    wmv3_dxva2_hwaccel_select="vc1_dxva2_hwaccel"
    wmv3_vaapi_hwaccel_select="vc1_vaapi_hwaccel"
    
    wmv3_vdpau_hwaccel_select="vc1_vdpau_hwaccel"
    
    nvenc_deps_any="libdl LoadLibrary"
    omx_deps="libdl pthreads"
    
    omx_rpi_select="omx"
    
    qsvdec_select="qsv"
    qsvenc_select="qsv"
    vaapi_encode_deps="vaapi"
    
    hwupload_cuda_filter_deps="cuda"
    scale_npp_filter_deps="cuda libnpp"
    
    
    h264_qsv_decoder_deps="libmfx"
    h264_qsv_decoder_select="h264_mp4toannexb_bsf h264_parser qsvdec h264_qsv_hwaccel"
    h264_qsv_encoder_deps="libmfx"
    h264_qsv_encoder_select="qsvenc"
    h264_vaapi_encoder_deps="VAEncPictureParameterBufferH264"
    h264_vaapi_encoder_select="vaapi_encode golomb"
    hevc_nvenc_encoder_deps="nvenc"
    hevc_qsv_decoder_deps="libmfx"
    hevc_qsv_decoder_select="hevc_mp4toannexb_bsf hevc_parser hevc_qsv_hwaccel qsvdec"
    
    hevc_qsv_encoder_deps="libmfx"
    hevc_qsv_encoder_select="hevc_ps qsvenc"
    
    hevc_vaapi_encoder_deps="VAEncPictureParameterBufferHEVC"
    hevc_vaapi_encoder_select="vaapi_encode golomb"
    
    mjpeg_vaapi_encoder_deps="VAEncPictureParameterBufferJPEG"
    mjpeg_vaapi_encoder_select="vaapi_encode jpegtables"
    mpeg2_mmal_decoder_deps="mmal"
    
    mpeg2_qsv_decoder_deps="libmfx"
    mpeg2_qsv_decoder_select="qsvdec mpeg2_qsv_hwaccel mpegvideo_parser"
    mpeg2_qsv_encoder_deps="libmfx"
    mpeg2_qsv_encoder_select="qsvenc"
    
    mpeg2_vaapi_encoder_deps="VAEncPictureParameterBufferMPEG2"
    mpeg2_vaapi_encoder_select="vaapi_encode"
    
    mpeg4_omx_encoder_deps="omx"
    vc1_mmal_decoder_deps="mmal"
    
    Mark Thompson's avatar
    Mark Thompson committed
    vc1_qsv_decoder_deps="libmfx"
    vc1_qsv_decoder_select="qsvdec vc1_qsv_hwaccel vc1_parser"
    
    Mark Thompson's avatar
    Mark Thompson committed
    vp8_qsv_decoder_deps="libmfx"
    vp8_qsv_decoder_select="qsvdec vp8_qsv_hwaccel vp8_parser"
    
    vp8_vaapi_encoder_deps="VAEncPictureParameterBufferVP8"
    vp8_vaapi_encoder_select="vaapi_encode"
    
    nvenc_h264_encoder_select="h264_nvenc_encoder"
    nvenc_hevc_encoder_select="hevc_nvenc_encoder"
    
    h264_parser_select="golomb h264dsp h264parse"
    
    hevc_parser_select="hevc_ps"
    
    mpegaudio_parser_select="mpegaudioheader"
    
    mpegvideo_parser_select="mpegvideo"
    
    mpeg4video_parser_select="error_resilience h263dsp mpegvideo qpeldsp"
    
    vc1_parser_select="vc1dsp"
    
    # bitstream_filters
    mjpeg2jpeg_bsf_select="jpegtables"
    
    
    # external libraries
    
    avisynth_deps="LoadLibrary"
    
    avxsynth_deps="libdl"
    
    avisynth_demuxer_deps_any="avisynth avxsynth"
    avisynth_demuxer_select="riffdec"
    
    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"
    
    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"
    
    libmp3lame_encoder_select="audio_frame_queue mpegaudioheader"
    
    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_decoder_deps="libopenh264"
    libopenh264_decoder_select="h264_mp4toannexb_bsf"
    
    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"
    
    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"
    
    libwavpack_encoder_select="audio_frame_queue"
    
    Justin Ruggles's avatar
    Justin Ruggles committed
    libwebp_encoder_deps="libwebp"
    
    libx262_encoder_deps="libx262"
    
    Derek Buitenhuis's avatar
    Derek Buitenhuis committed
    libx265_encoder_deps="libx265"
    
    libxavs_encoder_deps="libxavs"
    
    libxvid_encoder_deps="libxvid mkstemp"
    
    # demuxers / muxers
    
    ac3_demuxer_select="ac3_parser"
    
    asf_demuxer_select="riffdec"
    
    asf_muxer_select="riffenc"
    
    asf_stream_muxer_select="asf_muxer"
    
    avi_demuxer_select="iso_media riffdec"
    
    avi_muxer_select="riffenc"
    
    caf_demuxer_select="iso_media riffdec"
    
    dash_muxer_select="mp4_muxer"
    
    dirac_demuxer_select="dirac_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"
    
    ismv_muxer_select="mov_muxer"
    
    matroska_audio_muxer_select="matroska_muxer"
    
    matroska_demuxer_select="iso_media riffdec"
    
    matroska_demuxer_suggest="bzlib lzo zlib"
    
    matroska_muxer_select="iso_media riffenc"
    
    mmf_muxer_select="riffenc"
    
    mov_demuxer_select="iso_media riffdec"
    
    mov_demuxer_suggest="zlib"
    
    mov_muxer_select="iso_media riffenc rtpenc_chain"
    
    mp3_demuxer_select="mpegaudio_parser"
    
    mp3_muxer_select="mpegaudioheader"
    
    mpegts_demuxer_select="iso_media"
    
    mpegts_muxer_select="adts_muxer latm_muxer"
    
    mpegtsraw_demuxer_select="mpegts_demuxer"
    mxf_d10_muxer_select="mxf_muxer"
    
    nut_muxer_select="riffenc"
    
    nuv_demuxer_select="riffdec"
    
    oga_muxer_select="ogg_muxer"
    
    ogg_demuxer_select="dirac_parse"
    
    opus_muxer_select="ogg_muxer"
    
    rtpdec_select="asf_demuxer jpegtables mov_demuxer mpegts_demuxer rm_demuxer rtp_protocol srtp"
    
    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"
    
    swf_demuxer_suggest="zlib"
    
    tak_demuxer_select="tak_parser"
    
    tg2_muxer_select="mov_muxer"
    tgp_muxer_select="mov_muxer"
    
    wav_demuxer_select="riffdec"
    
    wav_muxer_select="riffenc"
    
    webm_muxer_select="iso_media riffenc"
    
    wtv_demuxer_select="mpegts_demuxer riffdec"
    
    xmv_demuxer_select="riffdec"
    xwma_demuxer_select="riffdec"
    
    alsa_indev_deps="alsa"
    alsa_outdev_deps="alsa"
    
    avfoundation_indev_deps="AVFoundation_AVFoundation_h objc_arc pthreads"
    avfoundation_indev_extralibs="-framework Foundation -framework AVFoundation -framework CoreVideo -framework CoreMedia"
    
    bktr_indev_deps_any="dev_bktr_ioctl_bt848_h machine_ioctl_bt848_h dev_video_bktr_ioctl_bt848_h dev_ic_bt8xx_h"
    
    dv1394_indev_deps="dv1394"
    dv1394_indev_select="dv_demuxer"
    
    fbdev_indev_deps="linux_fb_h"
    
    jack_indev_deps="jack"
    
    Josh de Kock's avatar
    Josh de Kock committed
    jack_indev_deps_any="sem_timedwait dispatch_dispatch_h"
    
    libcdio_indev_deps="libcdio"
    
    libdc1394_indev_deps="libdc1394"
    oss_indev_deps_any="soundcard_h sys_soundcard_h"
    oss_outdev_deps_any="soundcard_h sys_soundcard_h"
    
    pulse_indev_deps="libpulse"
    
    sndio_indev_deps="sndio"
    sndio_outdev_deps="sndio"
    
    v4l2_indev_deps_any="linux_videodev2_h sys_videoio_h"
    
    vfwcap_indev_deps="vfw32 vfwcap_defines"
    
    xcbgrab_indev_deps="libxcb libxcb_shape"
    
    xcbgrab_indev_suggest="libxcb_shm libxcb_xfixes"
    
    # protocols
    
    ffrtmpcrypt_protocol_conflict="librtmp_protocol"
    
    ffrtmpcrypt_protocol_deps_any="gmp openssl"
    
    Samuel Pitoiset's avatar
    Samuel Pitoiset committed
    ffrtmpcrypt_protocol_select="tcp_protocol"
    
    ffrtmphttp_protocol_conflict="librtmp_protocol"
    
    ffrtmphttp_protocol_select="http_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"
    
    Måns Rullgård's avatar
    Måns Rullgård committed
    mmsh_protocol_select="http_protocol"
    
    rtmp_protocol_conflict="librtmp_protocol"
    
    rtmp_protocol_select="tcp_protocol"
    
    Samuel Pitoiset's avatar
    Samuel Pitoiset committed
    rtmpe_protocol_select="ffrtmpcrypt_protocol"
    
    rtmps_protocol_conflict="librtmp_protocol"
    
    Samuel Pitoiset's avatar
    Samuel Pitoiset committed
    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 srtp"
    
    wm4's avatar
    wm4 committed
    tls_gnutls_protocol_deps="gnutls"
    
    tls_gnutls_protocol_select="tcp_protocol"
    
    tls_openssl_protocol_conflict="tls_gnutls_protocol"
    tls_openssl_protocol_deps="openssl"
    
    tls_openssl_protocol_select="tcp_protocol"
    
    tls_protocol_deps_any="tls_gnutls_protocol tls_openssl_protocol"
    
    Luca Barbato's avatar
    Luca Barbato committed
    unix_protocol_deps="sys_un_h"
    unix_protocol_select="network"
    
    blackframe_filter_deps="gpl"
    
    boxblur_filter_deps="gpl"
    
    bs2b_filter_deps="libbs2b"
    
    cropdetect_filter_deps="gpl"
    
    deinterlace_qsv_filter_deps="libmfx"
    
    deinterlace_vaapi_filter_deps="vaapi"
    
    delogo_filter_deps="gpl"
    
    drawtext_filter_suggest="libfontconfig"
    
    frei0r_filter_deps="frei0r libdl"
    frei0r_src_filter_deps="frei0r libdl"
    
    hqdn3d_filter_deps="gpl"
    
    interlace_filter_deps="gpl"
    
    resample_filter_deps="avresample"
    
    scale_filter_deps="swscale"
    
    scale_qsv_filter_deps="libmfx"
    
    Mark Thompson's avatar
    Mark Thompson committed
    scale_vaapi_filter_deps="vaapi VAProcPipelineParameterBuffer"
    
    decode_audio_example_deps="avcodec avutil"
    
    decode_video_example_deps="avcodec avutil"
    
    encode_audio_example_deps="avcodec avutil"
    
    encode_video_example_deps="avcodec avutil"
    
    filter_audio_example_deps="avfilter avutil"
    
    metadata_example_deps="avformat avutil"
    
    output_example_deps="avcodec avformat avresample avutil swscale"
    
    qsvdec_example_deps="avcodec avutil libmfx h264_qsv_decoder"
    
    transcode_aac_example_deps="avcodec avformat avresample"
    
    # EXTRALIBS_LIST
    cpu_init_extralibs="pthreads_extralibs"
    cws2fws_extralibs="zlib_extralibs"
    
    
    # libraries, in linking order
    
    avcodec_select="null_bsf"
    
    avdevice_deps="avformat avcodec avutil"
    
    avformat_deps="avcodec avutil"
    
    avresample_deps="avutil"
    swscale_deps="avutil"
    
    avcodec_extralibs="pthreads_extralibs libm_extralibs"
    avdevice_extralibs="libm_extralibs"
    avformat_extralibs="libm_extralibs"
    avfilter_extralibs="pthreads_extralibs libm_extralibs"
    avresample_extralibs="libm_extralibs"
    
    avutil_extralibs="clock_gettime_extralibs cuda_extralibs libm_extralibs libmfx_extralibs nanosleep_extralibs pthreads_extralibs user32_extralibs vaapi_extralibs vaapi_drm_extralibs vaapi_x11_extralibs vdpau_x11_extralibs wincrypt_extralibs"
    
    swscale_extralibs="libm_extralibs"
    
    
    # programs
    
    avconv_deps="avcodec avfilter avformat avresample swscale"
    
    avconv_select="aformat_filter anull_filter asyncts_filter atrim_filter format_filter
    
                   fps_filter null_filter resample_filter scale_filter
    
    avconv_suggest="dxva2_lib ole32 psapi shell32"
    
    avplay_deps="avcodec avfilter avformat avresample sdl"
    avplay_select="rdft format_filter transpose_filter hflip_filter vflip_filter"
    
    avplay_suggest="shell32"
    
    avprobe_deps="avcodec avformat"
    
    avprobe_suggest="shell32"
    
    Fabrice Bellard's avatar
    Fabrice Bellard committed
    # default parameters
    
    
    # installation paths
    
    prefix_default="/usr/local"
    bindir_default='${prefix}/bin'
    
    datadir_default='${prefix}/share/avconv'
    
    docdir_default='${prefix}/share/doc/libav'
    
    incdir_default='${prefix}/include'
    libdir_default='${prefix}/lib'
    mandir_default='${prefix}/share/man'
    shlibdir_default="$libdir_default"
    
    ar_default="ar"
    
    host_cc_default="gcc"
    
    x86asmexe_default="nasm"
    
    nm_default="nm -g"
    
    pkg_config_default=pkg-config
    
    Michael Niedermayer's avatar
    Michael Niedermayer committed
    ranlib="ranlib"
    
    strip="strip"
    
    version_script='--version-script'
    
    intrinsics="none"
    
    target_os_default=$(tolower $(uname -s))
    host_os=$target_os_default
    
    
    # configurable options
    
    enable $EXAMPLE_LIST $LIBRARY_LIST $PROGRAM_LIST
    
    
    enable asm
    enable debug
    enable doc
    
    enable faan faandct faanidct
    
    enable safe_bitstream_reader
    
    enable static
    
    # By default, enable only those hwaccels that have no external dependencies.
    
    enable d3d11va dxva2 vda vdpau
    
    # internal components are enabled by default
    enable $EXTRALIBS_LIST
    
    
    # Avoid external, non-system, libraries getting enabled by dependency resolution
    disable $EXTERNAL_LIBRARY_LIST
    
    
    # build settings
    
    SHFLAGS='-shared -Wl,-soname,$$(@F)'
    
    LIBNAME='$(LIBPREF)$(NAME)$(LIBSUF)'
    
    SLIBNAME='$(SLIBPREF)$(NAME)$(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)'
    
    VERSION_SCRIPT_POSTPROCESS_CMD="cat"
    
    asflags_filter=echo
    cflags_filter=echo
    
    ldflags_filter=echo
    
    
    Luca Barbato's avatar
    Luca Barbato committed
    OBJCC_C='-c'
    OBJCC_E='-E -o $@'
    OBJCC_O='-o $@'
    
    HOSTCC_E='-E -o $@'
    
    HOSTLD_O='-o $@'
    
    host_cflags_filter=echo
    host_ldflags_filter=echo
    
    target_path='$(CURDIR)'
    
    # since the object filename is not given with the -MM flag, the compiler
    # is only able to print the basename, and we must add the path ourselves
    
    DEPCMD='$(DEP$(1)) $(DEP$(1)FLAGS) $($(1)DEP_FLAGS) $< | sed -e "/^\#.*/d" -e "s,^[[:space:]]*$(*F)\\.o,$(@D)/$(*F).o," > $(@:.o=.d)'
    DEPFLAGS='-MM'
    
    if test -f configure; then
    
        source_path=.
    
        source_path=$(cd $(dirname "$0"); pwd)
    
        echo "$source_path" | grep -q '[[:blank:]]' &&
    
            die "Out of tree builds are impossible with whitespace in source path."
    
        test -e "$source_path/config.h" &&
            die "Out of tree builds are impossible with config.h in source dir."
    
        r=${v#*=}
        l=${v%"$r"}
        r=$(sh_quote "$r")
    
        LIBAV_CONFIGURATION="${LIBAV_CONFIGURATION# } ${l}${r}"
    
    find_things(){
        thing=$1
        pattern=$2
        file=$source_path/$3
    
        sed -n "s/^[^#]*$pattern.*([^,]*, *\([^,]*\)\(,.*\)*).*/\1_$thing/p" "$file"
    
    }
    
    ENCODER_LIST=$(find_things  encoder  ENC      libavcodec/allcodecs.c)
    DECODER_LIST=$(find_things  decoder  DEC      libavcodec/allcodecs.c)
    
    HWACCEL_LIST=$(find_things  hwaccel  HWACCEL  libavcodec/allcodecs.c)
    
    PARSER_LIST=$(find_things   parser   PARSER   libavcodec/allcodecs.c)
    MUXER_LIST=$(find_things    muxer    _MUX     libavformat/allformats.c)
    DEMUXER_LIST=$(find_things  demuxer  DEMUX    libavformat/allformats.c)
    
    OUTDEV_LIST=$(find_things   outdev   OUTDEV   libavdevice/alldevices.c)
    INDEV_LIST=$(find_things    indev    _IN      libavdevice/alldevices.c)
    
    FILTER_LIST=$(find_things   filter   FILTER   libavfilter/allfilters.c)
    
    find_things_extern(){
        thing=$1
        pattern=$2
        file=$source_path/$3
        sed -n "s/^[^#]*extern.*$pattern *ff_\([^ ]*\)_$thing;/\1_$thing/p" "$file"
    }
    
    
    BSF_LIST=$(find_things_extern bsf AVBitStreamFilter libavcodec/bitstream_filters.c)
    
    PROTOCOL_LIST=$(find_things_extern protocol URLProtocol libavformat/protocols.c)
    
    
    AVCODEC_COMPONENTS_LIST="
    
        $BSF_LIST
        $DECODER_LIST
        $ENCODER_LIST
        $HWACCEL_LIST
    
        $PARSER_LIST
    "
    
    AVDEVICE_COMPONENTS_LIST="
    
    "
    
    AVFILTER_COMPONENTS_LIST="
        $FILTER_LIST
    "
    
    AVFORMAT_COMPONENTS_LIST="
        $DEMUXER_LIST
        $MUXER_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
        eval ${n}_if_any="\$$v"
    done
    
    
    enable $ARCH_EXT_LIST
    
    
    die_unknown(){
        echo "Unknown option \"$1\"."
        echo "See $0 --help for available options."
        exit 1
    }
    
    
        printf "%-25s %-25s %-25s\n" $(cat | tr ' ' '\n' | sort)
    
    Ramiro Polla's avatar
    Ramiro Polla committed
        suffix=_$1
        shift
    
        echo $* | sed s/$suffix//g | print_3_columns
    
    rand_list(){
        IFS=', '
        set -- $*
        unset IFS
        for thing; do
            comp=${thing%:*}
            prob=${thing#$comp}
            prob=${prob#:}
            is_in ${comp} $COMPONENT_LIST && eval comp=\$$(toupper ${comp%s})_LIST
            echo "prob ${prob:-0.5}"
            printf '%s\n' $comp
        done
    }
    
    do_random(){
        action=$1
        shift
        random_seed=$(awk "BEGIN { srand($random_seed); print srand() }")
        $action $(rand_list "$@" | awk "BEGIN { srand($random_seed) } \$1 == \"prob\" { prob = \$2; next } rand() < prob { print }")
    }
    
    
            --extra-ldflags=*)
                add_ldflags $optval
    
            --extra-ldexeflags=*)
                add_ldexeflags $optval
            ;;
    
            --extra-libs=*)
                add_extralibs $optval
    
            --disable-devices)
                disable $INDEV_LIST $OUTDEV_LIST
    
            --enable-debug=*)
                debuglevel="$optval"
    
            ;;
            --disable-programs)
                disable $PROGRAM_LIST
            ;;
            --disable-everything)
    
                map 'eval unset \${$(toupper ${v%s})_LIST}' $COMPONENT_LIST
    
                map 'eval unset \${$(toupper ${v%s})_LIST}' $COMPONENT_LIST
    
                disable $LIBRARY_LIST $PROGRAM_LIST doc
            ;;
    
            --enable-random|--disable-random)
                action=${opt%%-random}
                do_random ${action#--} $COMPONENT_LIST
            ;;
            --enable-random=*|--disable-random=*)
                action=${opt%%-random=*}
                do_random ${action#--} $optval
            ;;
            --enable-*=*|--disable-*=*)
                eval $(echo "${opt%%=*}" | sed 's/--/action=/;s/-/ thing=/')
                is_in "${thing}s" $COMPONENT_LIST || die_unknown "$opt"
                eval list=\$$(toupper $thing)_LIST
                name=$(echo "${optval}" | sed "s/,/_${thing}|/g")_${thing}
                $action $(filter "$name" $list)
            ;;
    
    Anton Khirnov's avatar
    Anton Khirnov committed
            --enable-avserver|--disable-avserver*)
                warn "avserver has been removed, the ${opt} option is only"\
                     "provided for compatibility and will be removed in the future"
            ;;
    
            --enable-yasm|--disable-yasm)
                warn "The ${opt} option is only provided for compatibility and will be\n"\
                     "removed in the future. Use --enable-x86asm / --disable-x86asm instead."
                test $opt = --enable-yasm && x86asm=yes || x86asm=no
            ;;
    
            --enable-?*|--disable-?*)
                eval $(echo "$opt" | sed 's/--/action=/;s/-/ option=/;s/-/_/g')
                if is_in $option $COMPONENT_LIST; then
    
                    test $action = disable && action=unset
    
                    eval $action \$$(toupper ${option%s})_LIST
                elif is_in $option $CMDLINE_SELECT; then
                    $action $option
                else
                    die_unknown $opt
                fi
            ;;
            --list-*)
                NAME="${opt#--list-}"
                is_in $NAME $COMPONENT_LIST || die_unknown $opt
                NAME=${NAME%s}
                eval show_list $NAME \$$(toupper $NAME)_LIST
            ;;
            --help|-h) show_help
            ;;
    
            *)
                optname="${opt%%=*}"
                optname="${optname#--}"
                optname=$(echo "$optname" | sed 's/-/_/g')
                if is_in $optname $CMDLINE_SET; then
                    eval $optname='$optval'
                elif is_in $optname $CMDLINE_APPEND; then
                    append $optname "$optval"
                else
                    die_unknown $opt
                fi
            ;;
    
    Måns Rullgård's avatar
    Måns Rullgård committed
    disabled logging && logfile=/dev/null
    
    
    # Die early if licensing-related configure options are incompatible.
    die_license_disabled() {
        enabled $1 || { enabled $v && die "$v is $1 and --enable-$1 is not specified."; }
    }
    
    map "die_license_disabled gpl"      $EXTERNAL_LIBRARY_GPL_LIST
    map "die_license_disabled nonfree"  $EXTERNAL_LIBRARY_NONFREE_LIST $HWACCEL_LIBRARY_NONFREE_LIST
    map "die_license_disabled version3" $EXTERNAL_LIBRARY_VERSION3_LIST
    
    enabled version3 && { enabled gpl && enable gplv3 || enable lgplv3; }
    
    
    # Disable all the library-specific components if the library itself
    # is disabled, see AVCODEC_LIST and following _LIST variables.
    
    disable_components(){
    
            eval components="\$$(toupper ${1})_COMPONENTS"
            map 'eval echo \${$(toupper ${v%s})_LIST}' $components
        )
    }
    
    map 'disable_components $v' $LIBRARY_LIST
    
    
    echo "# $0 $LIBAV_CONFIGURATION" > $logfile
    
    Måns Rullgård's avatar
    Måns Rullgård committed
    set >> $logfile
    
    
    case "$toolchain" in
    
        *-asan)
            cc_default="${toolchain%-asan}"
    
            add_cflags  -fsanitize=address
            add_ldflags -fsanitize=address
    
        *-msan)
            cc_default="${toolchain%-msan}"
            add_cflags  -fsanitize=memory -fsanitize-memory-track-origins
            add_ldflags -fsanitize=memory
        ;;
    
        *-tsan)
            cc_default="${toolchain%-tsan}"
    
            add_cflags  -fsanitize=thread -fPIE
    
            add_ldflags -fsanitize=thread -pie
    
            case "$toolchain" in
                gcc-tsan)
                    add_cflags  -fPIC
                    add_ldflags -fPIC
                    ;;
            esac
    
        *-usan)
            cc_default="${toolchain%-usan}"
    
            add_cflags  -fsanitize=undefined
            add_ldflags -fsanitize=undefined
    
            case "$toolchain" in
                clang-usan)
                    add_cflags -O1
                    ;;
            esac
    
            target_exec_default="valgrind"
    
            case "$toolchain" in
                valgrind-massif)
                    target_exec_args="--alloc-fn=av_malloc --alloc-fn=av_mallocz"
                    ;;
                valgrind-memcheck)
                    target_exec_args="--track-origins=yes --leak-check=full"
                    ;;
            esac
    
            # Check whether the current MSVC version needs the C99 converter.
            # From MSVC 2013 (compiler major version 18) onwards, it does actually
    
            # support enough of C99 to build libav. Default to the new
    
            # behaviour if the regexp was unable to match anything, since this
            # successfully parses the version number of existing supported
            # versions that require the converter (MSVC 2010 and 2012).
            cl_major_ver=$(cl 2>&1 | sed -n 's/.*Version \([[:digit:]]\{1,\}\)\..*/\1/p')
            if [ -z "$cl_major_ver" ] || [ $cl_major_ver -ge 18 ]; then
    
            ld_default="$source_path/compat/windows/mslink"
    
            nm_default="dumpbin -symbols"
    
            target_os_default="win32"
    
            # Use a relative path for TMPDIR. This makes sure all the
            # ffconf temp files are written with a relative path, avoiding
            # issues with msys/win32 path conversion for MSVC parameters
            # such as -Fo<file> or -out:<file>.
            TMPDIR=.
    
            nm_default="dumpbin -symbols"
            ar_default="xilib"
            target_os_default="win32"
    
        gcov)
            add_cflags  -fprofile-arcs -ftest-coverage
            add_ldflags -fprofile-arcs -ftest-coverage
        ;;
    
        llvm-cov)
            add_cflags -fprofile-arcs -ftest-coverage
            add_ldflags --coverage
        ;;
    
            add_cppflags -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2
            add_cflags   -fno-strict-overflow -fstack-protector-all
            add_ldflags  -Wl,-z,relro -Wl,-z,now
    
        ?*)
            die "Unknown toolchain $toolchain"
        ;;
    esac
    
    
    test -n "$cross_prefix" && enable cross_compile
    
    if enabled cross_compile; then
        test -n "$arch" && test -n "$target_os" ||
    
            die "Must specify target arch (--arch) and OS (--target-os) when cross-compiling"
    
    ar_default="${cross_prefix}${ar_default}"
    cc_default="${cross_prefix}${cc_default}"