From e6109dbd41a8680d9a3b4d254dec877f57dccaa8 Mon Sep 17 00:00:00 2001 From: Adrian Grange Date: Tue, 2 Oct 2012 11:27:29 -0700 Subject: [PATCH] Added handler for PSNR packets to EncoderTest class Added a virtual function to handle PSNR packets. Change-Id: Id2a6372c691a14f19bbeed217a93a9df03e81e75 --- test/encode_test_driver.cc | 25 +++++++++++++++++-------- test/encode_test_driver.h | 3 +++ 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/test/encode_test_driver.cc b/test/encode_test_driver.cc index 182d1ea..8dbc88b 100644 --- a/test/encode_test_driver.cc +++ b/test/encode_test_driver.cc @@ -159,16 +159,25 @@ void EncoderTest::RunLoop(VideoSource *video) { while (const vpx_codec_cx_pkt_t *pkt = iter.Next()) { again = true; - if (pkt->kind != VPX_CODEC_CX_FRAME_PKT) - continue; + switch (pkt->kind) { + case VPX_CODEC_CX_FRAME_PKT: #if CONFIG_VP8_DECODER - has_cxdata = true; - decoder.DecodeFrame((const uint8_t*)pkt->data.frame.buf, - pkt->data.frame.sz); + has_cxdata = true; + decoder.DecodeFrame((const uint8_t*)pkt->data.frame.buf, + pkt->data.frame.sz); #endif - ASSERT_GE(pkt->data.frame.pts, last_pts_); - last_pts_ = pkt->data.frame.pts; - FramePktHook(pkt); + ASSERT_GE(pkt->data.frame.pts, last_pts_); + last_pts_ = pkt->data.frame.pts; + FramePktHook(pkt); + break; + + case VPX_CODEC_PSNR_PKT: + PSNRPktHook(pkt); + break; + + default: + break; + } } #if CONFIG_VP8_DECODER diff --git a/test/encode_test_driver.h b/test/encode_test_driver.h index 7b95a8d..0141fa9 100644 --- a/test/encode_test_driver.h +++ b/test/encode_test_driver.h @@ -176,6 +176,9 @@ class EncoderTest { // Hook to be called on every compressed data packet. virtual void FramePktHook(const vpx_codec_cx_pkt_t *pkt) {} + // Hook to be called on every PSNR packet. + virtual void PSNRPktHook(const vpx_codec_cx_pkt_t *pkt) {} + // Hook to determine whether the encode loop should continue. virtual bool Continue() const { return !abort_; } -- 2.7.4