Showing the changes to test/simple_encode_test.cc (1 of 10 files). Show all
Unified · Split
| @@ -0,0 +1,36 @@ | |||
| 1 | #include <memory> | ||
| 2 | #include <vector> | ||
| 3 | #include "third_party/googletest/src/include/gtest/gtest.h" | ||
| 4 | #include "vp9/simple_encode.h" | ||
| 5 | |||
| 6 | namespace { | ||
| 7 | |||
| 8 | TEST(SimpleEncode, ComputeFirstPassStats) { | ||
| 9 | int w = 352; | ||
| 10 | int h = 288; | ||
| 11 | int frame_rate_num = 30; | ||
| 12 | int frame_rate_den = 1; | ||
| 13 | int target_bitrate = 200; | ||
| 14 | int num_frames = 17; | ||
| 15 | // TODO(angiebird): Figure out how to upload test video to our codebase | ||
| 16 | FILE *file = fopen("bus_352x288_420_f20_b8.yuv", "r"); | ||
| 17 | SimpleEncode simple_encode(w, h, frame_rate_num, frame_rate_den, | ||
| 18 | target_bitrate, num_frames, file); | ||
| 19 | simple_encode.ComputeFirstPassStats(); | ||
| 20 | std::vector<std::vector<double>> frame_stats = | ||
| 21 | simple_encode.ObserveFirstPassStats(); | ||
| 22 | EXPECT_EQ(frame_stats.size(), static_cast<size_t>(num_frames)); | ||
| 23 | size_t data_num = frame_stats[0].size(); | ||
| 24 | // Read ObserveFirstPassStats before changing FIRSTPASS_STATS. | ||
| 25 | EXPECT_EQ(data_num, static_cast<size_t>(25)); | ||
| 26 | for (size_t i = 0; i < frame_stats.size(); ++i) { | ||
| 27 | EXPECT_EQ(frame_stats[i].size(), data_num); | ||
| 28 | // FIRSTPASS_STATS's first element is frame | ||
| 29 | EXPECT_EQ(frame_stats[i][0], i); | ||
| 30 | // FIRSTPASS_STATS's last element is count, and the count is 1 for single | ||
| 31 | // frame stats | ||
| 32 | EXPECT_EQ(frame_stats[i][data_num - 1], 1); | ||
| 33 | } | ||
| 34 | } | ||
| 35 | |||
| 36 | } // namespace | ||