blob: 0e2f1b47bd190854c6d619e93dccbbe3c37fa37b [file] [log] [blame]
# 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
}