OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
11 #include "webrtc/common_video/h264/profile_level_id.h" | 11 #include "webrtc/common_video/h264/profile_level_id.h" |
12 | 12 |
13 #include "webrtc/test/gtest.h" | 13 #include "webrtc/test/gtest.h" |
14 | 14 |
15 namespace webrtc { | 15 namespace webrtc { |
16 namespace H264 { | 16 namespace H264 { |
17 | 17 |
18 TEST(H264ProfileLevelIdParsing, TestInvalid) { | 18 TEST(H264ProfileLevelId, TestParsingInvalid) { |
19 // Malformed strings. | 19 // Malformed strings. |
20 EXPECT_FALSE(ParseProfileLevelId("")); | 20 EXPECT_FALSE(ParseProfileLevelId("")); |
21 EXPECT_FALSE(ParseProfileLevelId(" 42e01f")); | 21 EXPECT_FALSE(ParseProfileLevelId(" 42e01f")); |
22 EXPECT_FALSE(ParseProfileLevelId("4242e01f")); | 22 EXPECT_FALSE(ParseProfileLevelId("4242e01f")); |
23 EXPECT_FALSE(ParseProfileLevelId("e01f")); | 23 EXPECT_FALSE(ParseProfileLevelId("e01f")); |
24 EXPECT_FALSE(ParseProfileLevelId("gggggg")); | 24 EXPECT_FALSE(ParseProfileLevelId("gggggg")); |
25 | 25 |
26 // Invalid level. | 26 // Invalid level. |
27 EXPECT_FALSE(ParseProfileLevelId("42e000")); | 27 EXPECT_FALSE(ParseProfileLevelId("42e000")); |
28 EXPECT_FALSE(ParseProfileLevelId("42e00f")); | 28 EXPECT_FALSE(ParseProfileLevelId("42e00f")); |
29 EXPECT_FALSE(ParseProfileLevelId("42e0ff")); | 29 EXPECT_FALSE(ParseProfileLevelId("42e0ff")); |
30 | 30 |
31 // Invalid profile. | 31 // Invalid profile. |
32 EXPECT_FALSE(ParseProfileLevelId("42e11f")); | 32 EXPECT_FALSE(ParseProfileLevelId("42e11f")); |
33 EXPECT_FALSE(ParseProfileLevelId("58601f")); | 33 EXPECT_FALSE(ParseProfileLevelId("58601f")); |
34 EXPECT_FALSE(ParseProfileLevelId("64e01f")); | 34 EXPECT_FALSE(ParseProfileLevelId("64e01f")); |
35 } | 35 } |
36 | 36 |
37 TEST(H264ProfileLevelIdParsing, TestLevel) { | 37 TEST(H264ProfileLevelId, TestParsingLevel) { |
38 EXPECT_EQ(kLevel3_1, ParseProfileLevelId("42e01f")->level); | 38 EXPECT_EQ(kLevel3_1, ParseProfileLevelId("42e01f")->level); |
39 EXPECT_EQ(kLevel1_1, ParseProfileLevelId("42e00b")->level); | 39 EXPECT_EQ(kLevel1_1, ParseProfileLevelId("42e00b")->level); |
40 EXPECT_EQ(kLevel1_b, ParseProfileLevelId("42f00b")->level); | 40 EXPECT_EQ(kLevel1_b, ParseProfileLevelId("42f00b")->level); |
41 EXPECT_EQ(kLevel4_2, ParseProfileLevelId("42C02A")->level); | 41 EXPECT_EQ(kLevel4_2, ParseProfileLevelId("42C02A")->level); |
42 EXPECT_EQ(kLevel5_2, ParseProfileLevelId("640c34")->level); | 42 EXPECT_EQ(kLevel5_2, ParseProfileLevelId("640c34")->level); |
43 } | 43 } |
44 | 44 |
45 TEST(H264ProfileLevelIdParsing, TestConstrainedBaseline) { | 45 TEST(H264ProfileLevelId, TestParsingConstrainedBaseline) { |
46 EXPECT_EQ(kProfileConstrainedBaseline, | 46 EXPECT_EQ(kProfileConstrainedBaseline, |
47 ParseProfileLevelId("42e01f")->profile); | 47 ParseProfileLevelId("42e01f")->profile); |
48 EXPECT_EQ(kProfileConstrainedBaseline, | 48 EXPECT_EQ(kProfileConstrainedBaseline, |
49 ParseProfileLevelId("42C02A")->profile); | 49 ParseProfileLevelId("42C02A")->profile); |
50 EXPECT_EQ(kProfileConstrainedBaseline, | 50 EXPECT_EQ(kProfileConstrainedBaseline, |
51 ParseProfileLevelId("4de01f")->profile); | 51 ParseProfileLevelId("4de01f")->profile); |
52 EXPECT_EQ(kProfileConstrainedBaseline, | 52 EXPECT_EQ(kProfileConstrainedBaseline, |
53 ParseProfileLevelId("58f01f")->profile); | 53 ParseProfileLevelId("58f01f")->profile); |
54 } | 54 } |
55 | 55 |
56 TEST(H264ProfileLevelIdParsing, TestBaseline) { | 56 TEST(H264ProfileLevelId, TestParsingBaseline) { |
57 EXPECT_EQ(kProfileBaseline, ParseProfileLevelId("42a01f")->profile); | 57 EXPECT_EQ(kProfileBaseline, ParseProfileLevelId("42a01f")->profile); |
58 EXPECT_EQ(kProfileBaseline, ParseProfileLevelId("58A01F")->profile); | 58 EXPECT_EQ(kProfileBaseline, ParseProfileLevelId("58A01F")->profile); |
59 } | 59 } |
60 | 60 |
61 TEST(H264ProfileLevelIdParsing, TestMain) { | 61 TEST(H264ProfileLevelId, TestParsingMain) { |
62 EXPECT_EQ(kProfileMain, ParseProfileLevelId("4D401f")->profile); | 62 EXPECT_EQ(kProfileMain, ParseProfileLevelId("4D401f")->profile); |
63 } | 63 } |
64 | 64 |
65 TEST(H264ProfileLevelIdParsing, TestHigh) { | 65 TEST(H264ProfileLevelId, TestParsingHigh) { |
66 EXPECT_EQ(kProfileHigh, ParseProfileLevelId("64001f")->profile); | 66 EXPECT_EQ(kProfileHigh, ParseProfileLevelId("64001f")->profile); |
67 } | 67 } |
68 | 68 |
69 TEST(H264ProfileLevelIdParsing, TestConstrainedHigh) { | 69 TEST(H264ProfileLevelId, TestParsingConstrainedHigh) { |
70 EXPECT_EQ(kProfileConstrainedHigh, ParseProfileLevelId("640c1f")->profile); | 70 EXPECT_EQ(kProfileConstrainedHigh, ParseProfileLevelId("640c1f")->profile); |
71 } | 71 } |
72 | 72 |
| 73 TEST(H264ProfileLevelId, TestToString) { |
| 74 EXPECT_EQ("42e01f", ProfileLevelIdToString(ProfileLevelId( |
| 75 kProfileConstrainedBaseline, kLevel3_1))); |
| 76 EXPECT_EQ("42000a", |
| 77 ProfileLevelIdToString(ProfileLevelId(kProfileBaseline, kLevel1))); |
| 78 EXPECT_EQ("4D001f", |
| 79 ProfileLevelIdToString(ProfileLevelId(kProfileMain, kLevel3_1))); |
| 80 EXPECT_EQ("640c2a", ProfileLevelIdToString( |
| 81 ProfileLevelId(kProfileConstrainedHigh, kLevel4_2))); |
| 82 EXPECT_EQ("64002a", |
| 83 ProfileLevelIdToString(ProfileLevelId(kProfileHigh, kLevel4_2))); |
| 84 } |
| 85 |
| 86 TEST(H264ProfileLevelId, TestToStringLevel1b) { |
| 87 EXPECT_EQ("42f00b", ProfileLevelIdToString(ProfileLevelId( |
| 88 kProfileConstrainedBaseline, kLevel1_b))); |
| 89 EXPECT_EQ("42100b", ProfileLevelIdToString( |
| 90 ProfileLevelId(kProfileBaseline, kLevel1_b))); |
| 91 EXPECT_EQ("4D100b", |
| 92 ProfileLevelIdToString(ProfileLevelId(kProfileMain, kLevel1_b))); |
| 93 } |
| 94 |
| 95 TEST(H264ProfileLevelId, TestToStringInvalid) { |
| 96 EXPECT_EQ("", |
| 97 ProfileLevelIdToString(ProfileLevelId(kProfileHigh, kLevel1_b))); |
| 98 EXPECT_EQ("", ProfileLevelIdToString( |
| 99 ProfileLevelId(kProfileConstrainedHigh, kLevel1_b))); |
| 100 EXPECT_EQ("", ProfileLevelIdToString( |
| 101 ProfileLevelId(static_cast<Profile>(255), kLevel3_1))); |
| 102 } |
| 103 |
73 } // namespace H264 | 104 } // namespace H264 |
74 } // namespace webrtc | 105 } // namespace webrtc |
OLD | NEW |