Index: webrtc/common_video/h264/profile_level_id.h |
diff --git a/webrtc/common_video/h264/profile_level_id.h b/webrtc/common_video/h264/profile_level_id.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..84f0005785bb04c2394d07d37a3f4b09bb45a81d |
--- /dev/null |
+++ b/webrtc/common_video/h264/profile_level_id.h |
@@ -0,0 +1,62 @@ |
+/* |
+ * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved. |
+ * |
+ * Use of this source code is governed by a BSD-style license |
+ * that can be found in the LICENSE file in the root of the source |
+ * tree. An additional intellectual property rights grant can be found |
+ * in the file PATENTS. All contributing project authors may |
+ * be found in the AUTHORS file in the root of the source tree. |
+ */ |
+ |
+#ifndef WEBRTC_COMMON_VIDEO_H264_PROFILE_LEVEL_ID_H_ |
+#define WEBRTC_COMMON_VIDEO_H264_PROFILE_LEVEL_ID_H_ |
+ |
+#include "webrtc/base/optional.h" |
+ |
+namespace webrtc { |
+namespace H264 { |
+ |
+enum Profile { |
+ kProfileConstrainedBaseline, |
+ kProfileBaseline, |
+ kProfileMain, |
+ kProfileConstrainedHigh, |
+ kProfileHigh, |
+}; |
+ |
+// All values are equal to ten times the level number, except level 1b which is |
+// special. |
+enum Level { |
+ kLevel1_b = 0, |
+ kLevel1 = 10, |
+ kLevel1_1 = 11, |
+ kLevel1_2 = 12, |
+ kLevel1_3 = 13, |
+ kLevel2 = 20, |
+ kLevel2_1 = 21, |
+ kLevel2_2 = 22, |
+ kLevel3 = 30, |
+ kLevel3_1 = 31, |
+ kLevel3_2 = 32, |
+ kLevel4 = 40, |
+ kLevel4_1 = 41, |
+ kLevel4_2 = 42, |
+ kLevel5 = 50, |
+ kLevel5_1 = 51, |
+ kLevel5_2 = 52 |
+}; |
+ |
+struct ProfileLevelId { |
+ Profile profile; |
+ Level level; |
+}; |
+ |
+// Parse profile level id that is represented as a string of 3 hex bytes. |
+// Nothing will be returned if the string is not a recognized H264 |
+// profile level id. |
+rtc::Optional<ProfileLevelId> ParseProfileLevelId(const char* str); |
+ |
+} // namespace H264 |
+} // namespace webrtc |
+ |
+#endif // WEBRTC_COMMON_VIDEO_H264_PROFILE_LEVEL_ID_H_ |