1// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef CONTENT_PUBLIC_COMMON_EME_CODEC_H_
6#define CONTENT_PUBLIC_COMMON_EME_CODEC_H_
7
8namespace content {
9
10// Defines bitmask values that specify codecs used in Encrypted Media Extension
11// (EME). Each value represents a codec within a specific container.
12// The mask values are stored in a SupportedCodecs.
13enum EmeCodec {
14  EME_CODEC_NONE = 0,
15  EME_CODEC_WEBM_VORBIS = 1 << 0,
16  EME_CODEC_WEBM_AUDIO_ALL = EME_CODEC_WEBM_VORBIS,
17  EME_CODEC_WEBM_VP8 = 1 << 1,
18  EME_CODEC_WEBM_VP9 = 1 << 2,
19  EME_CODEC_WEBM_VIDEO_ALL = (EME_CODEC_WEBM_VP8 | EME_CODEC_WEBM_VP9),
20  EME_CODEC_WEBM_ALL = (EME_CODEC_WEBM_AUDIO_ALL | EME_CODEC_WEBM_VIDEO_ALL),
21#if defined(USE_PROPRIETARY_CODECS)
22  EME_CODEC_MP4_AAC = 1 << 3,
23  EME_CODEC_MP4_AUDIO_ALL = EME_CODEC_MP4_AAC,
24  EME_CODEC_MP4_AVC1 = 1 << 4,
25  EME_CODEC_MP4_VIDEO_ALL = EME_CODEC_MP4_AVC1,
26  EME_CODEC_MP4_ALL = (EME_CODEC_MP4_AUDIO_ALL | EME_CODEC_MP4_VIDEO_ALL),
27  EME_CODEC_ALL = (EME_CODEC_WEBM_ALL | EME_CODEC_MP4_ALL),
28#else
29  EME_CODEC_ALL = EME_CODEC_WEBM_ALL,
30#endif  // defined(USE_PROPRIETARY_CODECS)
31};
32
33typedef uint32 SupportedCodecs;
34
35}  // namespace content
36
37#endif  // CONTENT_PUBLIC_COMMON_EME_CODEC_H_
38