ref: 78a24171a63d7d43e2263543aa2d0435127645ee
parent: 36e767c1472d5eef3455626cee96de4d65900441
author: James Zern <jzern@google.com>
date: Fri Dec 23 09:10:13 EST 2016
Revert "vp9: SVC unittests: fix to use y4m source." This reverts commit f0b491a52405abb1b3dbb6b2c74dd6a4c7a7ddb1. This change results in unsigned integer overflows (as reported by -fsanitize=integer) in datarate_test.cc, for many of --gtest_filter=VP9/DatarateOnePassCbrSvc.OnePassCbrSvc*: unsigned integer overflow: 167198 - 185560 cannot be represented in type 'unsigned long' As the encoder didn't change, but the input with the change to (correctly) use Y4mVideoSource, this revert is merely masking the issue. BUG=webm:1352 Change-Id: Iecd9a6c83b3fca67c566732a5c92d36193cc2060
--- a/test/datarate_test.cc
+++ b/test/datarate_test.cc
@@ -1107,10 +1107,8 @@
const bool key_frame =
(pkt->data.frame.flags & VPX_FRAME_IS_KEY) ? true : false;
if (!key_frame) {
- // TODO(marpan): This check currently fails for some of the SVC tests,
- // re-enable when issue (webm:1350) is resolved.
- // ASSERT_GE(bits_in_buffer_model_, 0) << "Buffer Underrun at frame "
- // << pkt->data.frame.pts;
+ ASSERT_GE(bits_in_buffer_model_, 0) << "Buffer Underrun at frame "
+ << pkt->data.frame.pts;
}
const size_t frame_size_in_bits = pkt->data.frame.sz * 8;
bits_in_buffer_model_ -= frame_size_in_bits;
@@ -1288,7 +1286,8 @@
svc_params_.scaling_factor_den[1] = 288;
cfg_.rc_dropframe_thresh = 10;
cfg_.kf_max_dist = 9999;
- ::libvpx_test::Y4mVideoSource video("niklas_1280_720_30.y4m", 0, 300);
+ ::libvpx_test::I420VideoSource video("niklas_1280_720_30.y4m", 1280, 720, 30,
+ 1, 0, 300);
cfg_.rc_target_bitrate = 800;
ResetModel();
assign_layer_bitrates(&cfg_, &svc_params_, cfg_.ss_number_layers,
@@ -1327,7 +1326,8 @@
svc_params_.scaling_factor_den[2] = 288;
cfg_.rc_dropframe_thresh = 10;
cfg_.kf_max_dist = 9999;
- ::libvpx_test::Y4mVideoSource video("niklas_1280_720_30.y4m", 0, 300);
+ ::libvpx_test::I420VideoSource video("niklas_1280_720_30.y4m", 1280, 720, 30,
+ 1, 0, 300);
cfg_.rc_target_bitrate = 800;
ResetModel();
assign_layer_bitrates(&cfg_, &svc_params_, cfg_.ss_number_layers,
@@ -1365,7 +1365,8 @@
svc_params_.scaling_factor_num[2] = 288;
svc_params_.scaling_factor_den[2] = 288;
cfg_.rc_dropframe_thresh = 10;
- ::libvpx_test::Y4mVideoSource video("niklas_1280_720_30.y4m", 0, 300);
+ ::libvpx_test::I420VideoSource video("niklas_1280_720_30.y4m", 1280, 720, 30,
+ 1, 0, 300);
cfg_.rc_target_bitrate = 800;
// For this 3 temporal layer case, pattern repeats every 4 frames, so choose
// 4 key neighboring key frame periods (so key frame will land on 0-2-1-2).
@@ -1409,7 +1410,8 @@
svc_params_.scaling_factor_den[2] = 288;
cfg_.rc_dropframe_thresh = 10;
cfg_.kf_max_dist = 9999;
- ::libvpx_test::Y4mVideoSource video("niklas_1280_720_30.y4m", 0, 300);
+ ::libvpx_test::I420VideoSource video("niklas_1280_720_30.y4m", 1280, 720, 30,
+ 1, 0, 300);
cfg_.rc_target_bitrate = 800;
ResetModel();
assign_layer_bitrates(&cfg_, &svc_params_, cfg_.ss_number_layers,
@@ -1450,7 +1452,8 @@
cfg_.layer_target_bitrate[0] = 300;
cfg_.layer_target_bitrate[1] = 1400;
cfg_.rc_target_bitrate = 1700;
- ::libvpx_test::Y4mVideoSource video("niklas_1280_720_30.y4m", 0, 300);
+ ::libvpx_test::I420VideoSource video("niklas_1280_720_30.y4m", 1280, 720, 30,
+ 1, 0, 30);
ResetModel();
ASSERT_NO_FATAL_FAILURE(RunLoop(&video));
EXPECT_EQ(static_cast<unsigned int>(0), GetMismatchFrames());