File: cdm_manifest.h

package info (click to toggle)
chromium 139.0.7258.127-1
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 6,122,068 kB
  • sloc: cpp: 35,100,771; ansic: 7,163,530; javascript: 4,103,002; python: 1,436,920; asm: 946,517; xml: 746,709; pascal: 187,653; perl: 88,691; sh: 88,436; objc: 79,953; sql: 51,488; cs: 44,583; fortran: 24,137; makefile: 22,147; tcl: 15,277; php: 13,980; yacc: 8,984; ruby: 7,485; awk: 3,720; lisp: 3,096; lex: 1,327; ada: 727; jsp: 228; sed: 36
file content (42 lines) | stat: -rw-r--r-- 1,859 bytes parent folder | download | duplicates (6)
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
// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef COMPONENTS_CDM_COMMON_CDM_MANIFEST_H_
#define COMPONENTS_CDM_COMMON_CDM_MANIFEST_H_

#include "base/values.h"

namespace base {
class FilePath;
}  // namespace base

namespace media {
struct CdmCapability;
}

// Returns whether the CDM's API versions, as specified in the manifest, are
// supported in this Chrome binary and not disabled at run time.
// Checks the module API, CDM interface API, and Host API.
// This should never fail except in rare cases where the component has not been
// updated recently or the user downgrades Chrome.
bool IsCdmManifestCompatibleWithChrome(const base::Value::Dict& manifest);

// Extracts the necessary information from `manifest` and updates `capability`.
// Returns true on success, false if there are errors in the manifest.
// If this method returns false, `capability` may or may not be updated.
bool ParseCdmManifest(const base::Value::Dict& manifest,
                      media::CdmCapability* capability);

// Reads the file `manifest_path` which is assumed to be a CDM manifest and
// extracts the necessary information from it to update `capability`. All the
// fields in `capability` are optional except `version`, which must be
// specified. This also verifies that the read CDM manifest is compatible with
// Chrome (by calling IsCdmManifestCompatibleWithChrome()). Returns true on
// success, false if there are errors in the file or the manifest is not
// compatible with this version of Chrome. If this method returns false,
// `capability` may or may not be updated.
bool ParseCdmManifestFromPath(const base::FilePath& manifest_path,
                              media::CdmCapability* capability);

#endif  // COMPONENTS_CDM_COMMON_CDM_MANIFEST_H_