| # Copyright 2016 The Chromium Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import("//build/config/chromeos/ui_mode.gni") |
| import("//build/config/ozone.gni") |
| |
| declare_args() { |
| # Indicates if X11 VA-API-based hardware acceleration is to be used. |
| # See also the comment near the |use_vaapi| arg. |
| use_vaapi_x11 = is_linux && ozone_platform_x11 && |
| (target_cpu == "x86" || target_cpu == "x64") && !is_castos |
| } |
| |
| declare_args() { |
| # Indicates if V4L plugin is used. |
| use_v4lplugin = false |
| |
| # Indicates if Video4Linux2 codec is used. This is used for all CrOS |
| # platforms which have v4l2 hardware encoder / decoder. |
| use_v4l2_codec = |
| is_chromeos_lacros && (target_cpu == "arm" || target_cpu == "arm64") |
| |
| # Indicates if Video4Linux2 AML encoder is used. This is used for AML |
| # platforms which have v4l2 hardware encoder |
| use_v4l2_codec_aml = false |
| |
| # Indicates if VA-API-based hardware acceleration is to be used. This |
| # is typically the case on x86-based ChromeOS devices. |
| # VA-API should also be compiled by default on x11-using linux devices |
| # using x86/x64. |
| use_vaapi = use_vaapi_x11 || (is_chromeos_lacros && |
| (target_cpu == "x86" || target_cpu == "x64")) |
| |
| # Indicates if ChromeOS protected media support exists. This is used |
| # to enable the CDM daemon in Chrome OS as well as support for |
| # encrypted content with HW video decoders. This is always enabled for Lacros |
| # because it detects support at runtime. |
| use_chromeos_protected_media = is_chromeos_lacros |
| |
| # Indicates if the ChromeOS protected media functionality should also be |
| # utilized by HW video decoding for ARC. |
| use_arc_protected_media = false |
| |
| # Indicates if ChromeOS protected media supports the AV1 codec. By default |
| # H.264, VP9 and HEVC are enabled if protected media is enabled; AV1 is |
| # optional. |
| use_chromeos_protected_av1 = false |
| } |
| |
| if (use_arc_protected_media) { |
| assert( |
| use_chromeos_protected_media, |
| "use_chromeos_protected_media must be set if use_arc_protected_media is") |
| } |
| |
| if (use_chromeos_protected_av1) { |
| assert( |
| use_chromeos_protected_media, |
| "use_chromeos_protected_media must be set if use_chromeos_protected_av1 is") |
| } |
| |
| # GN requires args that depend on other args to be declared in successive |
| # declare_args() blocks. |
| declare_args() { |
| # VA-API also allows decoding of images, but we don't want to use this |
| # outside of chromeos, even if video decoding is enabled. |
| use_vaapi_image_codecs = use_vaapi && is_chromeos_ash |
| } |