1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
media / gpu / args.gni [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 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 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/wayland linux devices
# using x86/x64.
use_vaapi = (is_chromeos_lacros ||
(is_linux && !is_castos &&
(ozone_platform_x11 || ozone_platform_wayland))) &&
(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
# A platform that is capable of hardware av1 decoding.
use_av1_hw_decoder = is_chromeos || is_linux || is_win || is_apple
}
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
}