Index: media/base/video_codecs.cc |
diff --git a/media/base/video_codecs.cc b/media/base/video_codecs.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..7b3f77f04ecc451e2b831f010c47ea7a6ab26030 |
--- /dev/null |
+++ b/media/base/video_codecs.cc |
@@ -0,0 +1,72 @@ |
+// Copyright 2015 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "media/base/video_codecs.h" |
+ |
+#include "base/logging.h" |
+ |
+namespace media { |
+ |
+// The names come from src/third_party/ffmpeg/libavcodec/codec_desc.c |
+std::string GetCodecName(VideoCodec codec) { |
+ switch (codec) { |
+ case kUnknownVideoCodec: |
+ return "unknown"; |
+ case kCodecH264: |
+ return "h264"; |
+ case kCodecHEVC: |
+ return "hevc"; |
+ case kCodecVC1: |
+ return "vc1"; |
+ case kCodecMPEG2: |
+ return "mpeg2video"; |
+ case kCodecMPEG4: |
+ return "mpeg4"; |
+ case kCodecTheora: |
+ return "theora"; |
+ case kCodecVP8: |
+ return "vp8"; |
+ case kCodecVP9: |
+ return "vp9"; |
+ } |
+ NOTREACHED(); |
+ return ""; |
+} |
+ |
+std::string GetProfileName(VideoCodecProfile profile) { |
+ switch (profile) { |
+ case VIDEO_CODEC_PROFILE_UNKNOWN: |
+ return "unknown"; |
+ case H264PROFILE_BASELINE: |
+ return "h264 baseline"; |
+ case H264PROFILE_MAIN: |
+ return "h264 main"; |
+ case H264PROFILE_EXTENDED: |
+ return "h264 extended"; |
+ case H264PROFILE_HIGH: |
+ return "h264 high"; |
+ case H264PROFILE_HIGH10PROFILE: |
+ return "h264 high 10"; |
+ case H264PROFILE_HIGH422PROFILE: |
+ return "h264 high 4:2:2"; |
+ case H264PROFILE_HIGH444PREDICTIVEPROFILE: |
+ return "h264 high 4:4:4 predictive"; |
+ case H264PROFILE_SCALABLEBASELINE: |
+ return "h264 scalable baseline"; |
+ case H264PROFILE_SCALABLEHIGH: |
+ return "h264 scalable high"; |
+ case H264PROFILE_STEREOHIGH: |
+ return "h264 stereo high"; |
+ case H264PROFILE_MULTIVIEWHIGH: |
+ return "h264 multiview high"; |
+ case VP8PROFILE_ANY: |
+ return "vp8"; |
+ case VP9PROFILE_ANY: |
+ return "vp9"; |
+ } |
+ NOTREACHED(); |
+ return ""; |
+} |
+ |
+} // namespace media |