diff --git a/.gitlab-ci/meson/build.sh b/.gitlab-ci/meson/build.sh index 69657aa56078d..fe62941d7c8c9 100755 --- a/.gitlab-ci/meson/build.sh +++ b/.gitlab-ci/meson/build.sh @@ -87,7 +87,7 @@ meson setup _build \ -D gallium-opencl=disabled \ -D gallium-drivers=${GALLIUM_DRIVERS:-[]} \ -D vulkan-drivers=${VULKAN_DRIVERS:-[]} \ - -D video-codecs=h264dec,h264enc,h265dec,h265enc,vc1dec,av1dec,av1enc,vp9dec \ + -D video-codecs=all \ -D werror=true \ ${EXTRA_OPTION} cd _build diff --git a/.gitlab-ci/windows/mesa_build.ps1 b/.gitlab-ci/windows/mesa_build.ps1 index e0c4252f87d54..a54c180d853bc 100644 --- a/.gitlab-ci/windows/mesa_build.ps1 +++ b/.gitlab-ci/windows/mesa_build.ps1 @@ -50,7 +50,7 @@ meson setup ` -Dvulkan-drivers="swrast,amd,microsoft-experimental" ` -Dgallium-drivers="swrast,d3d12,zink" ` -Dgallium-va=enabled ` --Dvideo-codecs="h264dec,h264enc,h265dec,h265enc,vc1dec,av1dec,av1enc,vp9dec" ` +-Dvideo-codecs="all" ` -Dshared-glapi=enabled ` -Dgles1=enabled ` -Dgles2=enabled ` diff --git a/meson.build b/meson.build index a69e4a7d16155..552ff196aa868 100644 --- a/meson.build +++ b/meson.build @@ -338,7 +338,22 @@ if with_vulkan_beta endif _codecs = get_option('video-codecs') -foreach c : ['vc1dec', 'h264dec', 'h264enc', 'h265dec', 'h265enc', 'av1dec', 'av1enc', 'vp9dec'] +patent_codecs = ['vc1dec', 'h264dec', 'h264enc', 'h265dec', 'h265enc'] +free_codecs = ['av1dec', 'av1enc', 'vp9dec'] +all_codecs = patent_codecs + free_codecs + +if _codecs.contains('all') + _codecs = all_codecs +elif _codecs.contains('all_free') + selected_codecs = _codecs + _codecs = free_codecs + foreach c : patent_codecs + if selected_codecs.contains(c) + _codecs += c + endif + endforeach +endif +foreach c : all_codecs pre_args += '-DVIDEO_CODEC_@0@=@1@'.format(c.to_upper(), _codecs.contains(c).to_int()) endforeach diff --git a/meson_options.txt b/meson_options.txt index adf2363c0e39f..c76fa6d338260 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -629,15 +629,15 @@ option( option( 'video-codecs', type : 'array', - value : [], + value : ['all_free'], choices: [ - 'vc1dec', 'h264dec', 'h264enc', 'h265dec', 'h265enc', 'av1dec', 'av1enc', 'vp9dec' + 'all', 'all_free', 'vc1dec', 'h264dec', 'h264enc', 'h265dec', 'h265enc', 'av1dec', 'av1enc', 'vp9dec' ], - description : 'List of patent encumbered codecs to build support for. ' + + description : 'List of codecs to build support for. ' + 'Distros might want to consult their legal department before ' + 'enabling these. This is used for all video APIs (vaapi, ' + 'vdpau, vulkan). Non-patent encumbered codecs will be ' + - 'enabled by default.' + 'enabled by default with the all_free default value.' ) option(