meson: Add all, all_free (default) options for video-codecs option.

- Adds new 'all' value to the video-codecs option
- Adds 'all_free' value to video-codecs and sets
   it as default value for non patent-encumbered
   codecs, restoring the behavior for these codecs
   before existing as options in commit 7b22dd8bfd

Fixes: 7b22dd8bfd ("meson: add vp9 and av1 codec support options")
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26320>
This commit is contained in:
Sil Vilerino 2023-11-21 11:08:15 -05:00 committed by Marge Bot
parent e126e82c79
commit d0c3556011
4 changed files with 22 additions and 7 deletions

View File

@ -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

View File

@ -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 `

View File

@ -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

View File

@ -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(