]> granicus.if.org Git - libvpx/commitdiff
EncoderTest: check that timestamps are monotonic
authorJames Zern <jzern@google.com>
Wed, 8 Aug 2012 21:16:08 +0000 (14:16 -0700)
committerJames Zern <jzern@google.com>
Wed, 8 Aug 2012 21:16:08 +0000 (14:16 -0700)
Change-Id: I813fa94c83df6282f382b24bbaccb1fe2fa94276

test/encode_test_driver.cc
test/encode_test_driver.h

index d40256aaa345c77d44aa812d7ff5ced57b0a263e..ce7e5b35e86d0dc66fe75d5c5b3e2ac9d1c19084 100644 (file)
@@ -94,6 +94,8 @@ void EncoderTest::SetMode(TestMode mode) {
 
 void EncoderTest::RunLoop(VideoSource *video) {
   for (unsigned int pass = 0; pass < passes_; pass++) {
+    last_pts_ = 0;
+
     if (passes_ == 1)
       cfg_.g_pass = VPX_RC_ONE_PASS;
     else if (pass == 0)
@@ -120,6 +122,8 @@ void EncoderTest::RunLoop(VideoSource *video) {
         if (pkt->kind != VPX_CODEC_CX_FRAME_PKT)
           continue;
 
+        ASSERT_GE(pkt->data.frame.pts, last_pts_);
+        last_pts_ = pkt->data.frame.pts;
         FramePktHook(pkt);
       }
 
index f00fe3c359ac12a1c1e1361d17bc222fb766a44a..d9a79ec318beb1662e27b913cd3cae0e178723f3 100644 (file)
@@ -138,7 +138,7 @@ class Encoder {
 // classes directly, so that tests can be parameterized differently.
 class EncoderTest {
  protected:
-  EncoderTest() : abort_(false), flags_(0) {}
+  EncoderTest() : abort_(false), flags_(0), last_pts_(0) {}
 
   virtual ~EncoderTest() {}
 
@@ -177,6 +177,7 @@ class EncoderTest {
   unsigned long        deadline_;
   TwopassStatsStore    stats_;
   unsigned long        flags_;
+  vpx_codec_pts_t      last_pts_;
 };
 
 }  // namespace libvpx_test