Revert "wscript: Require recent FFmpeg by default"

This reverts commit b51957fab5.

Breaks big time. It appears to ignore explicitly configured paths within
the libav* .pc files, which for example breaks mpv-build.
This commit is contained in:
wm4 2016-06-09 21:05:33 +02:00
parent d38d26057a
commit 1c5fd2d901
1 changed files with 24 additions and 45 deletions

69
wscript
View File

@ -389,14 +389,6 @@ iconv support use --disable-iconv.",
}
]
ffmpeg_pkg_config_checks = [
'libavutil', '>= 55.17.103',
'libavcodec', '>= 57.24.102',
'libavformat', '>= 57.25.100',
'libswscale', '>= 4.0.100'
]
ffmpeg_versions_string = "FFmpeg 3.0.2"
libav_pkg_config_checks = [
'libavutil', '>= 54.02.0',
'libavcodec', '>= 56.1.0',
@ -405,27 +397,14 @@ libav_pkg_config_checks = [
]
libav_versions_string = "FFmpeg 2.4 or Libav 11"
ffmpeg_dependencies = [
libav_dependencies = [
{
'name': 'recent-ffmpeg',
'desc': 'recent ffmpeg',
'func': check_pkg_config(*ffmpeg_pkg_config_checks),
}, {
'name': '--unsupported-ffmpeg',
'desc': 'old libav/ffmpeg',
'name': 'libav',
'desc': 'libav/ffmpeg',
'func': check_pkg_config(*libav_pkg_config_checks),
'default': 'disable',
}, {
'name': 'ffmpeg',
'desc': 'ffmpeg',
'deps_any': [ 'recent-ffmpeg', 'unsupported-ffmpeg' ],
'func': check_true,
'req': True,
'fmsg': "Unable to find development files for some of the required \
FFmpeg/Libav libraries. Only {0} or newer is supported.\nIf you wish to build \
mpv with older versions (at least {1}), use --enable-unsupported-ffmpeg.\n\
This is NOT SUPPORTED, and some player features will not work correctly. \
Aborting.".format(ffmpeg_versions_string, libav_versions_string),
FFmpeg/Libav libraries. You need at least {0}. Aborting.".format(libav_versions_string)
}, {
'name': '--libswresample',
'desc': 'libswresample',
@ -456,79 +435,79 @@ Aborting.".format(ffmpeg_versions_string, libav_versions_string),
'desc': 'libavcodec avcodec_enum_to_chroma_pos API',
'func': check_statement('libavcodec/avcodec.h', """int x, y;
avcodec_enum_to_chroma_pos(&x, &y, AVCHROMA_LOC_UNSPECIFIED)""",
use='ffmpeg')
use='libav')
}, {
'name': 'avframe-metadata',
'desc': 'libavutil AVFrame metadata',
'func': check_statement('libavutil/frame.h',
'av_frame_get_metadata(NULL)',
use='ffmpeg')
use='libav')
}, {
'name': 'avframe-skip-samples',
'desc': 'libavutil AVFrame skip samples metadata',
'func': check_statement('libavutil/frame.h',
'enum AVFrameSideDataType type = AV_FRAME_DATA_SKIP_SAMPLES',
use='ffmpeg')
use='libav')
}, {
'name': 'av-pix-fmt-mmal',
'desc': 'libavutil AV_PIX_FMT_MMAL',
'func': check_statement('libavutil/pixfmt.h',
'int x = AV_PIX_FMT_MMAL',
use='ffmpeg'),
use='libav'),
}, {
'name': 'av-version-info',
'desc': 'libavtuil av_version_info()',
'func': check_statement('libavutil/avutil.h',
'const char *x = av_version_info()',
use='ffmpeg'),
use='libav'),
}, {
'name': 'av-new-pixdesc',
'desc': 'libavutil new pixdesc fields',
'func': check_statement('libavutil/pixdesc.h',
'AVComponentDescriptor d; int x = d.depth',
use='ffmpeg'),
use='libav'),
}, {
'name': 'av-avpacket-int64-duration',
'desc': 'libavcodec 64 bit AVPacket.duration',
'func': check_statement('libavcodec/avcodec.h',
'int x[(int)sizeof(((AVPacket){0}).duration) - 7]',
use='ffmpeg'),
use='libav'),
}, {
'name': 'av-subtitle-nopict',
'desc': 'libavcodec AVSubtitleRect AVPicture removal',
'func': check_statement('libavcodec/avcodec.h',
'AVSubtitleRect r = {.linesize={0}}',
use='ffmpeg'),
use='libav'),
}, {
'name': 'avcodec-profile-name',
'desc': 'libavcodec avcodec_profile_name()',
'func': check_statement('libavcodec/avcodec.h',
'avcodec_profile_name(0,0)',
use='ffmpeg'),
use='libav'),
}, {
'name': 'avcodec-new-codec-api',
'desc': 'libavcodec decode/encode API',
'func': check_statement('libavcodec/avcodec.h',
'avcodec_send_packet(0,0)',
use='ffmpeg'),
use='libav'),
}, {
'name': 'avcodec-has-codecpar',
'desc': 'libavcodec AVCodecParameters API',
'func': check_statement('libavformat/avformat.h',
'(void)offsetof(AVStream, codecpar)',
use='ffmpeg'),
use='libav'),
}, {
'name': 'avutil-has-hwcontext',
'desc': 'libavutil AVHWFramesContext API',
'func': check_statement('libavutil/frame.h',
'(void)offsetof(AVFrame, hw_frames_ctx)',
use='ffmpeg'),
use='libav'),
}, {
'name': 'avutil-st2084',
'desc': 'libavutil AVCOL_TRC_SMPTEST2084',
'func': check_statement('libavutil/pixfmt.h',
'AVCOL_TRC_SMPTEST2084',
use='ffmpeg'),
use='libav'),
}
]
@ -863,7 +842,7 @@ hwaccel_features = [
'name': '--vaapi-hwaccel',
'desc': 'libavcodec VAAPI hwaccel',
'deps': [ 'vaapi' ],
'func': check_headers('libavcodec/vaapi.h', use='ffmpeg'),
'func': check_headers('libavcodec/vaapi.h', use='libav'),
}, {
'name': '--videotoolbox-hwaccel',
'desc': 'libavcodec videotoolbox hwaccel',
@ -872,7 +851,7 @@ hwaccel_features = [
check_statement('libavcodec/videotoolbox.h',
'av_videotoolbox_alloc_context()',
framework='IOSurface',
use='ffmpeg')),
use='libav')),
} , {
'name': '--videotoolbox-gl',
'desc': 'Videotoolbox with OpenGL',
@ -884,14 +863,14 @@ hwaccel_features = [
'deps': [ 'vdpau' ],
'func': check_statement('libavcodec/vdpau.h',
'av_vdpau_bind_context(0,0,0,AV_HWACCEL_FLAG_ALLOW_HIGH_DEPTH)',
use='ffmpeg'),
use='libav'),
}, {
'name': '--d3d-hwaccel',
'desc': 'libavcodec DXVA2 and D3D11VA hwaccel',
'deps': [ 'win32' ],
'func': compose_checks(
check_headers('libavcodec/dxva2.h', use='ffmpeg'),
check_headers('libavcodec/d3d11va.h', use='ffmpeg')),
check_headers('libavcodec/dxva2.h', use='libav'),
check_headers('libavcodec/d3d11va.h', use='libav')),
}, {
'name': 'sse4-intrinsics',
'desc': 'GCC SSE4 intrinsics for GPU memcpy',
@ -985,7 +964,7 @@ def options(opt):
help = 'variant name for saving configuration and build results')
opt.parse_features('build and install options', build_options)
optional_features = main_dependencies + ffmpeg_dependencies
optional_features = main_dependencies + libav_dependencies
opt.parse_features('optional features', optional_features)
opt.parse_features('audio outputs', audio_output_features)
opt.parse_features('video outputs', video_output_features)
@ -1046,7 +1025,7 @@ def configure(ctx):
ctx.parse_dependencies(main_dependencies)
ctx.parse_dependencies(audio_output_features)
ctx.parse_dependencies(video_output_features)
ctx.parse_dependencies(ffmpeg_dependencies)
ctx.parse_dependencies(libav_dependencies)
ctx.parse_dependencies(hwaccel_features)
ctx.parse_dependencies(radio_and_tv_features)