Index: webrtc/media/base/codec_unittest.cc |
diff --git a/webrtc/media/base/codec_unittest.cc b/webrtc/media/base/codec_unittest.cc |
index 53880043b19da66a1f8ad6a296f0c83dc15d54d1..488eeba76e58bf5a1e435c1856c5c19167df1618 100644 |
--- a/webrtc/media/base/codec_unittest.cc |
+++ b/webrtc/media/base/codec_unittest.cc |
@@ -9,6 +9,7 @@ |
*/ |
#include "webrtc/base/gunit.h" |
+#include "webrtc/common_types.h" |
#include "webrtc/media/base/codec.h" |
using cricket::AudioCodec; |
@@ -317,3 +318,67 @@ TEST_F(CodecTest, TestToCodecParameters) { |
EXPECT_EQ(44100, codec_params_2.clock_rate); |
EXPECT_EQ(2, codec_params_2.channels); |
} |
+ |
+TEST(H264ProfileLevelIdParsing, TestInvalid) { |
+ // Malformed strings. |
tommi
2016/10/28 10:09:47
test too long strings too?
magjed_webrtc
2016/10/28 14:59:27
Done, I added a test with 8 hex characters. I also
|
+ EXPECT_FALSE(webrtc::ParseH264ProfileLevelId("")); |
+ EXPECT_FALSE(webrtc::ParseH264ProfileLevelId(" 42e01f")); |
+ EXPECT_FALSE(webrtc::ParseH264ProfileLevelId("e01f")); |
+ EXPECT_FALSE(webrtc::ParseH264ProfileLevelId("gggggg")); |
+ |
+ // Invalid level. |
+ EXPECT_FALSE(webrtc::ParseH264ProfileLevelId("42e000")); |
+ EXPECT_FALSE(webrtc::ParseH264ProfileLevelId("42e00f")); |
+ EXPECT_FALSE(webrtc::ParseH264ProfileLevelId("42e0ff")); |
+ |
+ // Invalid profile. |
+ EXPECT_FALSE(webrtc::ParseH264ProfileLevelId("42e11f")); |
+ EXPECT_FALSE(webrtc::ParseH264ProfileLevelId("58601f")); |
+ EXPECT_FALSE(webrtc::ParseH264ProfileLevelId("64e01f")); |
+} |
+ |
+TEST(H264ProfileLevelIdParsing, TestLevel) { |
+ EXPECT_EQ(webrtc::kH264Level3_1, |
+ webrtc::ParseH264ProfileLevelId("42e01f")->level); |
+ EXPECT_EQ(webrtc::kH264Level1_1, |
+ webrtc::ParseH264ProfileLevelId("42e00b")->level); |
+ EXPECT_EQ(webrtc::kH264Level1_b, |
+ webrtc::ParseH264ProfileLevelId("42f00b")->level); |
+ EXPECT_EQ(webrtc::kH264Level4_2, |
+ webrtc::ParseH264ProfileLevelId("42C02A")->level); |
+ EXPECT_EQ(webrtc::kH264Level5_2, |
+ webrtc::ParseH264ProfileLevelId("640c34")->level); |
+} |
+ |
+TEST(H264ProfileLevelIdParsing, TestConstrainedBaseline) { |
+ EXPECT_EQ(webrtc::kProfileConstrainedBaseline, |
+ webrtc::ParseH264ProfileLevelId("42e01f")->profile); |
+ EXPECT_EQ(webrtc::kProfileConstrainedBaseline, |
+ webrtc::ParseH264ProfileLevelId("42C02A")->profile); |
+ EXPECT_EQ(webrtc::kProfileConstrainedBaseline, |
+ webrtc::ParseH264ProfileLevelId("4de01f")->profile); |
+ EXPECT_EQ(webrtc::kProfileConstrainedBaseline, |
+ webrtc::ParseH264ProfileLevelId("58f01f")->profile); |
+} |
+ |
+TEST(H264ProfileLevelIdParsing, TestBaseline) { |
+ EXPECT_EQ(webrtc::kProfileBaseline, |
+ webrtc::ParseH264ProfileLevelId("42a01f")->profile); |
+ EXPECT_EQ(webrtc::kProfileBaseline, |
+ webrtc::ParseH264ProfileLevelId("58A01F")->profile); |
+} |
+ |
+TEST(H264ProfileLevelIdParsing, TestMain) { |
+ EXPECT_EQ(webrtc::kProfileMain, |
+ webrtc::ParseH264ProfileLevelId("4D401f")->profile); |
+} |
+ |
+TEST(H264ProfileLevelIdParsing, TestHigh) { |
+ EXPECT_EQ(webrtc::kProfileHigh, |
+ webrtc::ParseH264ProfileLevelId("64001f")->profile); |
+} |
+ |
+TEST(H264ProfileLevelIdParsing, TestConstrainedHigh) { |
+ EXPECT_EQ(webrtc::kProfileConstrainedHigh, |
+ webrtc::ParseH264ProfileLevelId("640c1f")->profile); |
+} |