Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / media / base / video_codecs.h
blob4053902de6ffb3664ea3f237ae5d8096552c931d
1 // Copyright 2012 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.
5 #ifndef MEDIA_BASE_VIDEO_CODECS_H_
6 #define MEDIA_BASE_VIDEO_CODECS_H_
8 namespace media {
10 enum VideoCodec {
11 // These values are histogrammed over time; do not change their ordinal
12 // values. When deleting a codec replace it with a dummy value; when adding a
13 // codec, do so at the bottom (and update kVideoCodecMax).
14 kUnknownVideoCodec = 0,
15 kCodecH264,
16 kCodecVC1,
17 kCodecMPEG2,
18 kCodecMPEG4,
19 kCodecTheora,
20 kCodecVP8,
21 kCodecVP9,
22 kCodecHEVC,
23 // DO NOT ADD RANDOM VIDEO CODECS!
25 // The only acceptable time to add a new codec is if there is production code
26 // that uses said codec in the same CL.
28 kVideoCodecMax = kCodecHEVC // Must equal the last "real" codec above.
31 // Video stream profile. This *must* match PP_VideoDecoder_Profile.
32 // (enforced in webkit/plugins/ppapi/ppb_video_decoder_impl.cc) and
33 // gpu::VideoCodecProfile.
34 enum VideoCodecProfile {
35 // Keep the values in this enum unique, as they imply format (h.264 vs. VP8,
36 // for example), and keep the values for a particular format grouped
37 // together for clarity.
38 VIDEO_CODEC_PROFILE_UNKNOWN = -1,
39 VIDEO_CODEC_PROFILE_MIN = VIDEO_CODEC_PROFILE_UNKNOWN,
40 H264PROFILE_MIN = 0,
41 H264PROFILE_BASELINE = H264PROFILE_MIN,
42 H264PROFILE_MAIN = 1,
43 H264PROFILE_EXTENDED = 2,
44 H264PROFILE_HIGH = 3,
45 H264PROFILE_HIGH10PROFILE = 4,
46 H264PROFILE_HIGH422PROFILE = 5,
47 H264PROFILE_HIGH444PREDICTIVEPROFILE = 6,
48 H264PROFILE_SCALABLEBASELINE = 7,
49 H264PROFILE_SCALABLEHIGH = 8,
50 H264PROFILE_STEREOHIGH = 9,
51 H264PROFILE_MULTIVIEWHIGH = 10,
52 H264PROFILE_MAX = H264PROFILE_MULTIVIEWHIGH,
53 VP8PROFILE_MIN = 11,
54 VP8PROFILE_ANY = VP8PROFILE_MIN,
55 VP8PROFILE_MAX = VP8PROFILE_ANY,
56 VP9PROFILE_MIN = 12,
57 VP9PROFILE_ANY = VP9PROFILE_MIN,
58 VP9PROFILE_MAX = VP9PROFILE_ANY,
59 VIDEO_CODEC_PROFILE_MAX = VP9PROFILE_MAX,
62 } // namespace media
64 #endif // MEDIA_BASE_VIDEO_CODECS_H_