summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorElliott Karpilovsky <elliottk@google.com>2021-01-28 11:22:58 -0800
committerElliott Karpilovsky <elliottk@google.com>2021-01-28 11:52:41 -0800
commitebb5ffc1d462c70dfb2283a5c7afcb75288c7692 (patch)
tree28e5286a933596b5ff58d6e27d934c2e4c53dde2 /test
parentdeff7ddd27f1135d59b2d7ca524928654230174c (diff)
downloadlibvpx-ebb5ffc1d462c70dfb2283a5c7afcb75288c7692.tar
libvpx-ebb5ffc1d462c70dfb2283a5c7afcb75288c7692.tar.gz
libvpx-ebb5ffc1d462c70dfb2283a5c7afcb75288c7692.tar.bz2
libvpx-ebb5ffc1d462c70dfb2283a5c7afcb75288c7692.zip
Relax constraints on Y4M header parsing
Previous parser assumed that the header would not exceed 80 characters. However, with latest FFMPEG changes, the header of Y4M files can exceed this limit. New parser can parse up to ~200 characters. Arbitrary parsing in future commit. BUG=aomedia:2876 Change-Id: I2ab8a7930cb5b76004e6731321d0ea20ddf333c1
Diffstat (limited to 'test')
-rw-r--r--test/y4m_test.cc26
1 files changed, 26 insertions, 0 deletions
diff --git a/test/y4m_test.cc b/test/y4m_test.cc
index 5df389f52..8272263f6 100644
--- a/test/y4m_test.cc
+++ b/test/y4m_test.cc
@@ -213,4 +213,30 @@ TEST(Y4MHeaderTest, RegularHeader) {
y4m_input_close(&y4m);
}
+// Testing that headers over 100 characters can be parsed.
+static const char kY4MLongHeader[] =
+ "YUV4MPEG2 W4 H4 F30:1 Ip A0:0 C420jpeg XYSCSS=420JPEG "
+ "XCOLORRANGE=LIMITED XSOME_UNKNOWN_METADATA XOTHER_UNKNOWN_METADATA\n"
+ "FRAME\n"
+ "012345678912345601230123";
+
+TEST(Y4MHeaderTest, LongHeader) {
+ libvpx_test::TempOutFile f;
+ fwrite(kY4MLongHeader, 1, sizeof(kY4MLongHeader), f.file());
+ fflush(f.file());
+ EXPECT_EQ(fseek(f.file(), 0, 0), 0);
+
+ y4m_input y4m;
+ EXPECT_EQ(y4m_input_open(&y4m, f.file(), /*skip_buffer=*/NULL,
+ /*num_skip=*/0, /*only_420=*/0),
+ 0);
+ EXPECT_EQ(y4m.pic_w, 4);
+ EXPECT_EQ(y4m.pic_h, 4);
+ EXPECT_EQ(y4m.fps_n, 30);
+ EXPECT_EQ(y4m.fps_d, 1);
+ EXPECT_EQ(y4m.interlace, 'p');
+ EXPECT_EQ(strcmp("420jpeg", y4m.chroma_type), 0);
+ y4m_input_close(&y4m);
+}
+
} // namespace