diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/simple_encode_test.cc | 36 | ||||
-rw-r--r-- | test/test-data.mk | 1 | ||||
-rw-r--r-- | test/test-data.sha1 | 1 | ||||
-rw-r--r-- | test/test.mk | 1 |
4 files changed, 39 insertions, 0 deletions
diff --git a/test/simple_encode_test.cc b/test/simple_encode_test.cc new file mode 100644 index 000000000..48f68a9a4 --- /dev/null +++ b/test/simple_encode_test.cc @@ -0,0 +1,36 @@ +#include <memory> +#include <vector> +#include "third_party/googletest/src/include/gtest/gtest.h" +#include "vp9/simple_encode.h" + +namespace { + +TEST(SimpleEncode, ComputeFirstPassStats) { + int w = 352; + int h = 288; + int frame_rate_num = 30; + int frame_rate_den = 1; + int target_bitrate = 200; + int num_frames = 17; + // TODO(angiebird): Figure out how to upload test video to our codebase + FILE *file = fopen("bus_352x288_420_f20_b8.yuv", "r"); + SimpleEncode simple_encode(w, h, frame_rate_num, frame_rate_den, + target_bitrate, num_frames, file); + simple_encode.ComputeFirstPassStats(); + std::vector<std::vector<double>> frame_stats = + simple_encode.ObserveFirstPassStats(); + EXPECT_EQ(frame_stats.size(), static_cast<size_t>(num_frames)); + size_t data_num = frame_stats[0].size(); + // Read ObserveFirstPassStats before changing FIRSTPASS_STATS. + EXPECT_EQ(data_num, static_cast<size_t>(25)); + for (size_t i = 0; i < frame_stats.size(); ++i) { + EXPECT_EQ(frame_stats[i].size(), data_num); + // FIRSTPASS_STATS's first element is frame + EXPECT_EQ(frame_stats[i][0], i); + // FIRSTPASS_STATS's last element is count, and the count is 1 for single + // frame stats + EXPECT_EQ(frame_stats[i][data_num - 1], 1); + } +} + +} // namespace diff --git a/test/test-data.mk b/test/test-data.mk index 27a955760..905f0138e 100644 --- a/test/test-data.mk +++ b/test/test-data.mk @@ -26,6 +26,7 @@ LIBVPX_TEST_DATA-$(CONFIG_VP9_ENCODER) += noisy_clip_640_360.y4m LIBVPX_TEST_DATA-$(CONFIG_VP9_ENCODER) += rush_hour_444.y4m LIBVPX_TEST_DATA-$(CONFIG_VP9_ENCODER) += screendata.y4m LIBVPX_TEST_DATA-$(CONFIG_VP9_ENCODER) += niklas_640_480_30.yuv +LIBVPX_TEST_DATA-$(CONFIG_RATE_CTRL) += bus_352x288_420_f20_b8.yuv # Test vectors LIBVPX_TEST_DATA-$(CONFIG_VP8_DECODER) += vp80-00-comprehensive-001.ivf diff --git a/test/test-data.sha1 b/test/test-data.sha1 index 88f1e10d7..8f0084c47 100644 --- a/test/test-data.sha1 +++ b/test/test-data.sha1 @@ -1,3 +1,4 @@ +3eaf216d9fc8b4b9bb8c3956311f49a85974806c *bus_352x288_420_f20_b8.yuv d5dfb0151c9051f8c85999255645d7a23916d3c0 *hantro_collage_w352h288.yuv b87815bf86020c592ccc7a846ba2e28ec8043902 *hantro_odd.yuv 76024eb753cdac6a5e5703aaea189d35c3c30ac7 *invalid-vp90-2-00-quantizer-00.webm.ivf.s5861_r01-05_b6-.v2.ivf diff --git a/test/test.mk b/test/test.mk index 88bd2a3b6..b4a5ea0cb 100644 --- a/test/test.mk +++ b/test/test.mk @@ -58,6 +58,7 @@ LIBVPX_TEST_SRCS-$(CONFIG_VP9_ENCODER) += svc_test.cc LIBVPX_TEST_SRCS-$(CONFIG_VP9_ENCODER) += svc_test.h LIBVPX_TEST_SRCS-$(CONFIG_VP9_ENCODER) += svc_end_to_end_test.cc LIBVPX_TEST_SRCS-$(CONFIG_VP9_ENCODER) += timestamp_test.cc +LIBVPX_TEST_SRCS-$(CONFIG_RATE_CTRL) += simple_encode_test.cc LIBVPX_TEST_SRCS-yes += decode_test_driver.cc LIBVPX_TEST_SRCS-yes += decode_test_driver.h |