ref: d1e25d748fd5f7d9c2c5dba93c0ba3d7d1cb73ad
dir: /test/encoder/EncUT_SliceBufferReallocate.h/
#include <gtest/gtest.h> #include "utils/FileInputStream.h" #include "svc_encode_slice.h" //level 5.2, table A-6, Max frame rates setting #define MAX_WIDTH (4096) #define MAX_HEIGH (2304) #define MAX_SAMPLES_PER_SECOND (530841600) #define MAX_QP (51) #define MIN_QP (0) class CSliceBufferReallocatTest : public ::testing::Test { //WithParamInterface<EncodeFileParam>{ public: virtual void SetUp() { m_pEncoder = NULL; int32_t iRet = WelsCreateSVCEncoder(&m_pEncoder); ASSERT_EQ(0, iRet); EXPECT_TRUE(m_pEncoder != NULL); int32_t iCacheLineSize = 16; m_EncContext.pMemAlign = new CMemoryAlign(iCacheLineSize); EXPECT_TRUE(NULL != m_EncContext.pMemAlign); SWelsSvcCodingParam* pCodingParam = (SWelsSvcCodingParam*)m_EncContext.pMemAlign->WelsMalloc(sizeof(SWelsSvcCodingParam), "SWelsSvcCodingParam"); EXPECT_TRUE(NULL != pCodingParam); m_EncContext.pSvcParam = pCodingParam; iRet = m_pEncoder->GetDefaultParams(m_EncContext.pSvcParam); ASSERT_EQ(0, iRet); } virtual void TearDown() { WelsDestroySVCEncoder(m_pEncoder); m_pEncoder = NULL; if (NULL != m_EncContext.pSvcParam) { m_EncContext.pMemAlign->WelsFree(m_EncContext.pSvcParam, "SWelsSvcCodingParam"); m_EncContext.pSvcParam = NULL; } if (m_EncContext.pMemAlign != NULL) { delete m_EncContext.pMemAlign; m_EncContext.pMemAlign = NULL; } } void SimulateEncodedOneSlice(const int32_t kiSlcIdx, const int32_t kiThreadIdx); void SimulateSliceInOnePartition(const int32_t kiPartNum, const int32_t kiPartIdx, const int32_t kiSlcNumInPart); void SimulateSliceInOneLayer(); void InitParamForTestCase(int32_t iLayerIdx); void InitParamForSizeLimitSlcModeCase(int32_t iLayerIdx); void UnInitParamForTestCase(int32_t iLayerIdx); void InitParam(); void UnInitParam(); void InitFrameBsBuffer(); void UnInitFrameBsBuffer(); void InitLayerSliceBuffer(const int32_t iLayerIdx); void UnInitLayerSliceBuffer(const int32_t iLayerIdx); ISVCEncoder* m_pEncoder; sWelsEncCtx m_EncContext; private: };