xref: /aosp_15_r20/external/libvpx/test/config_test.cc (revision fb1b10ab9aebc7c7068eedab379b749d7e3900be)
1*fb1b10abSAndroid Build Coastguard Worker /*
2*fb1b10abSAndroid Build Coastguard Worker  *  Copyright (c) 2012 The WebM project authors. All Rights Reserved.
3*fb1b10abSAndroid Build Coastguard Worker  *
4*fb1b10abSAndroid Build Coastguard Worker  *  Use of this source code is governed by a BSD-style license
5*fb1b10abSAndroid Build Coastguard Worker  *  that can be found in the LICENSE file in the root of the source
6*fb1b10abSAndroid Build Coastguard Worker  *  tree. An additional intellectual property rights grant can be found
7*fb1b10abSAndroid Build Coastguard Worker  *  in the file PATENTS.  All contributing project authors may
8*fb1b10abSAndroid Build Coastguard Worker  *  be found in the AUTHORS file in the root of the source tree.
9*fb1b10abSAndroid Build Coastguard Worker  */
10*fb1b10abSAndroid Build Coastguard Worker #include "gtest/gtest.h"
11*fb1b10abSAndroid Build Coastguard Worker #include "test/codec_factory.h"
12*fb1b10abSAndroid Build Coastguard Worker #include "test/encode_test_driver.h"
13*fb1b10abSAndroid Build Coastguard Worker #include "test/util.h"
14*fb1b10abSAndroid Build Coastguard Worker #include "test/video_source.h"
15*fb1b10abSAndroid Build Coastguard Worker 
16*fb1b10abSAndroid Build Coastguard Worker namespace {
17*fb1b10abSAndroid Build Coastguard Worker 
18*fb1b10abSAndroid Build Coastguard Worker class ConfigTest
19*fb1b10abSAndroid Build Coastguard Worker     : public ::libvpx_test::EncoderTest,
20*fb1b10abSAndroid Build Coastguard Worker       public ::libvpx_test::CodecTestWithParam<libvpx_test::TestMode> {
21*fb1b10abSAndroid Build Coastguard Worker  protected:
ConfigTest()22*fb1b10abSAndroid Build Coastguard Worker   ConfigTest()
23*fb1b10abSAndroid Build Coastguard Worker       : EncoderTest(GET_PARAM(0)), frame_count_in_(0), frame_count_out_(0),
24*fb1b10abSAndroid Build Coastguard Worker         frame_count_max_(0) {}
25*fb1b10abSAndroid Build Coastguard Worker   ~ConfigTest() override = default;
26*fb1b10abSAndroid Build Coastguard Worker 
SetUp()27*fb1b10abSAndroid Build Coastguard Worker   void SetUp() override {
28*fb1b10abSAndroid Build Coastguard Worker     InitializeConfig();
29*fb1b10abSAndroid Build Coastguard Worker     SetMode(GET_PARAM(1));
30*fb1b10abSAndroid Build Coastguard Worker   }
31*fb1b10abSAndroid Build Coastguard Worker 
BeginPassHook(unsigned int)32*fb1b10abSAndroid Build Coastguard Worker   void BeginPassHook(unsigned int /*pass*/) override {
33*fb1b10abSAndroid Build Coastguard Worker     frame_count_in_ = 0;
34*fb1b10abSAndroid Build Coastguard Worker     frame_count_out_ = 0;
35*fb1b10abSAndroid Build Coastguard Worker   }
36*fb1b10abSAndroid Build Coastguard Worker 
PreEncodeFrameHook(libvpx_test::VideoSource *)37*fb1b10abSAndroid Build Coastguard Worker   void PreEncodeFrameHook(libvpx_test::VideoSource * /*video*/) override {
38*fb1b10abSAndroid Build Coastguard Worker     ++frame_count_in_;
39*fb1b10abSAndroid Build Coastguard Worker     abort_ |= (frame_count_in_ >= frame_count_max_);
40*fb1b10abSAndroid Build Coastguard Worker   }
41*fb1b10abSAndroid Build Coastguard Worker 
FramePktHook(const vpx_codec_cx_pkt_t *)42*fb1b10abSAndroid Build Coastguard Worker   void FramePktHook(const vpx_codec_cx_pkt_t * /*pkt*/) override {
43*fb1b10abSAndroid Build Coastguard Worker     ++frame_count_out_;
44*fb1b10abSAndroid Build Coastguard Worker   }
45*fb1b10abSAndroid Build Coastguard Worker 
46*fb1b10abSAndroid Build Coastguard Worker   unsigned int frame_count_in_;
47*fb1b10abSAndroid Build Coastguard Worker   unsigned int frame_count_out_;
48*fb1b10abSAndroid Build Coastguard Worker   unsigned int frame_count_max_;
49*fb1b10abSAndroid Build Coastguard Worker };
50*fb1b10abSAndroid Build Coastguard Worker 
TEST_P(ConfigTest,LagIsDisabled)51*fb1b10abSAndroid Build Coastguard Worker TEST_P(ConfigTest, LagIsDisabled) {
52*fb1b10abSAndroid Build Coastguard Worker   frame_count_max_ = 2;
53*fb1b10abSAndroid Build Coastguard Worker   cfg_.g_lag_in_frames = 15;
54*fb1b10abSAndroid Build Coastguard Worker 
55*fb1b10abSAndroid Build Coastguard Worker   libvpx_test::DummyVideoSource video;
56*fb1b10abSAndroid Build Coastguard Worker   ASSERT_NO_FATAL_FAILURE(RunLoop(&video));
57*fb1b10abSAndroid Build Coastguard Worker 
58*fb1b10abSAndroid Build Coastguard Worker   EXPECT_EQ(frame_count_in_, frame_count_out_);
59*fb1b10abSAndroid Build Coastguard Worker }
60*fb1b10abSAndroid Build Coastguard Worker 
61*fb1b10abSAndroid Build Coastguard Worker VP8_INSTANTIATE_TEST_SUITE(ConfigTest, ONE_PASS_TEST_MODES);
62*fb1b10abSAndroid Build Coastguard Worker }  // namespace
63