Commit 51ebb9a3 authored by James Zern's avatar James Zern
Browse files

EncoderTest: check that timestamps are monotonic

Change-Id: I813fa94c83df6282f382b24bbaccb1fe2fa94276
parent 3c37e7d2
...@@ -94,6 +94,8 @@ void EncoderTest::SetMode(TestMode mode) { ...@@ -94,6 +94,8 @@ void EncoderTest::SetMode(TestMode mode) {
void EncoderTest::RunLoop(VideoSource *video) { void EncoderTest::RunLoop(VideoSource *video) {
for (unsigned int pass = 0; pass < passes_; pass++) { for (unsigned int pass = 0; pass < passes_; pass++) {
last_pts_ = 0;
if (passes_ == 1) if (passes_ == 1)
cfg_.g_pass = VPX_RC_ONE_PASS; cfg_.g_pass = VPX_RC_ONE_PASS;
else if (pass == 0) else if (pass == 0)
...@@ -120,6 +122,8 @@ void EncoderTest::RunLoop(VideoSource *video) { ...@@ -120,6 +122,8 @@ void EncoderTest::RunLoop(VideoSource *video) {
if (pkt->kind != VPX_CODEC_CX_FRAME_PKT) if (pkt->kind != VPX_CODEC_CX_FRAME_PKT)
continue; continue;
ASSERT_GE(pkt->data.frame.pts, last_pts_);
last_pts_ = pkt->data.frame.pts;
FramePktHook(pkt); FramePktHook(pkt);
} }
......
...@@ -138,7 +138,7 @@ class Encoder { ...@@ -138,7 +138,7 @@ class Encoder {
// classes directly, so that tests can be parameterized differently. // classes directly, so that tests can be parameterized differently.
class EncoderTest { class EncoderTest {
protected: protected:
EncoderTest() : abort_(false), flags_(0) {} EncoderTest() : abort_(false), flags_(0), last_pts_(0) {}
virtual ~EncoderTest() {} virtual ~EncoderTest() {}
...@@ -177,6 +177,7 @@ class EncoderTest { ...@@ -177,6 +177,7 @@ class EncoderTest {
unsigned long deadline_; unsigned long deadline_;
TwopassStatsStore stats_; TwopassStatsStore stats_;
unsigned long flags_; unsigned long flags_;
vpx_codec_pts_t last_pts_;
}; };
} // namespace libvpx_test } // namespace libvpx_test
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment