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. 4 5 #ifndef VIDEO_CODECS_H_ 6 #define VIDEO_CODECS_H_ 7 8 #include <string> 9 10 namespace media { 11 12 // Video codec profiles. Keep in sync with mojo::VideoCodecProfile (see 13 // media/mojo/interfaces/media_types.mojom), gpu::VideoCodecProfile (see 14 // gpu/config/gpu_info.h), and PP_VideoDecoder_Profile (translation is performed 15 // in content/renderer/pepper/ppb_video_decoder_impl.cc). 16 // NOTE: These values are histogrammed over time in UMA so the values must never 17 // ever change (add new values to tools/metrics/histograms/histograms.xml) 18 // GENERATED_JAVA_ENUM_PACKAGE: org.chromium.media 19 enum VideoCodecProfile { 20 // Keep the values in this enum unique, as they imply format (h.264 vs. VP8, 21 // for example), and keep the values for a particular format grouped 22 // together for clarity. 23 VIDEO_CODEC_PROFILE_UNKNOWN = -1, 24 VIDEO_CODEC_PROFILE_MIN = VIDEO_CODEC_PROFILE_UNKNOWN, 25 H264PROFILE_MIN = 0, 26 H264PROFILE_BASELINE = H264PROFILE_MIN, 27 H264PROFILE_MAIN = 1, 28 H264PROFILE_EXTENDED = 2, 29 H264PROFILE_HIGH = 3, 30 H264PROFILE_HIGH10PROFILE = 4, 31 H264PROFILE_HIGH422PROFILE = 5, 32 H264PROFILE_HIGH444PREDICTIVEPROFILE = 6, 33 H264PROFILE_SCALABLEBASELINE = 7, 34 H264PROFILE_SCALABLEHIGH = 8, 35 H264PROFILE_STEREOHIGH = 9, 36 H264PROFILE_MULTIVIEWHIGH = 10, 37 H264PROFILE_MAX = H264PROFILE_MULTIVIEWHIGH, 38 VP8PROFILE_MIN = 11, 39 VP8PROFILE_ANY = VP8PROFILE_MIN, 40 VP8PROFILE_MAX = VP8PROFILE_ANY, 41 VP9PROFILE_MIN = 12, 42 VP9PROFILE_PROFILE0 = VP9PROFILE_MIN, 43 VP9PROFILE_PROFILE1 = 13, 44 VP9PROFILE_PROFILE2 = 14, 45 VP9PROFILE_PROFILE3 = 15, 46 VP9PROFILE_MAX = VP9PROFILE_PROFILE3, 47 HEVCPROFILE_MIN = 16, 48 HEVCPROFILE_MAIN = HEVCPROFILE_MIN, 49 HEVCPROFILE_MAIN10 = 17, 50 HEVCPROFILE_MAIN_STILL_PICTURE = 18, 51 HEVCPROFILE_MAX = HEVCPROFILE_MAIN_STILL_PICTURE, 52 DOLBYVISION_MIN = 19, 53 DOLBYVISION_PROFILE0 = DOLBYVISION_MIN, 54 DOLBYVISION_PROFILE4 = 20, 55 DOLBYVISION_PROFILE5 = 21, 56 DOLBYVISION_PROFILE7 = 22, 57 DOLBYVISION_MAX = DOLBYVISION_PROFILE7, 58 VIDEO_CODEC_PROFILE_MAX = DOLBYVISION_MAX, 59 }; 60 61 std::string GetProfileName(VideoCodecProfile profile); 62 63 } // namespace media 64 65 #endif // VIDEO_CODECS_H_ 66