File: bitstream_audio_codecs.h

package info (click to toggle)
chromium 120.0.6099.224-1~deb11u1
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 6,112,112 kB
  • sloc: cpp: 32,907,025; ansic: 8,148,123; javascript: 3,679,536; python: 2,031,248; asm: 959,718; java: 804,675; xml: 617,256; sh: 111,417; objc: 100,835; perl: 88,443; cs: 53,032; makefile: 29,579; fortran: 24,137; php: 21,162; tcl: 21,147; sql: 20,809; ruby: 17,735; pascal: 12,864; yacc: 8,045; lisp: 3,388; lex: 1,323; ada: 727; awk: 329; jsp: 267; csh: 117; exp: 43; sed: 37
file content (46 lines) | stat: -rw-r--r-- 1,619 bytes parent folder | download
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
// Copyright 2018 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef CHROMECAST_BASE_BITSTREAM_AUDIO_CODECS_H_
#define CHROMECAST_BASE_BITSTREAM_AUDIO_CODECS_H_

#include <string>

namespace chromecast {

constexpr int kBitstreamAudioCodecNone = 0b000000;
constexpr int kBitstreamAudioCodecAc3 = 0b000001;
constexpr int kBitstreamAudioCodecDts = 0b000010;
constexpr int kBitstreamAudioCodecDtsHd = 0b000100;
constexpr int kBitstreamAudioCodecEac3 = 0b001000;
constexpr int kBitstreamAudioCodecPcmSurround = 0b010000;
constexpr int kBitstreamAudioCodecMpegHAudio = 0b100000;
constexpr int kBitstreamAudioCodecDtsXP2 = 0b1000000;
constexpr int kBitstreamAudioCodecAll = 0b1111111;

// Supported bitstream audio codecs and their associated properties.
struct BitstreamAudioCodecsInfo {
  // Bitmap of supported bitstream audio codecs.
  int codecs = kBitstreamAudioCodecNone;

  // Bitmap specifying which of the corresponding codecs in |codecs| support
  // spatial rendering.
  int spatial_rendering = kBitstreamAudioCodecNone;

  BitstreamAudioCodecsInfo operator&(
      const BitstreamAudioCodecsInfo& other) const;

  bool operator==(const BitstreamAudioCodecsInfo& other) const;
  bool operator!=(const BitstreamAudioCodecsInfo& other) const;

  BitstreamAudioCodecsInfo ApplyCodecMask(int mask) const;
};

std::string BitstreamAudioCodecsToString(int codecs);
std::string BitstreamAudioCodecsInfoToString(
    const BitstreamAudioCodecsInfo& info);

}  // namespace chromecast

#endif  // CHROMECAST_BASE_BITSTREAM_AUDIO_CODECS_H_