remove API data format in decoder in 1.6
This commit is contained in:
@@ -148,8 +148,7 @@ typedef enum {
|
|||||||
* @brief Option types introduced in decoder application
|
* @brief Option types introduced in decoder application
|
||||||
*/
|
*/
|
||||||
typedef enum {
|
typedef enum {
|
||||||
DECODER_OPTION_DATAFORMAT = 0, ///< color format, now supports 23 only (I420)
|
DECODER_OPTION_END_OF_STREAM = 1, ///< end of stream flag
|
||||||
DECODER_OPTION_END_OF_STREAM, ///< end of stream flag
|
|
||||||
DECODER_OPTION_VCL_NAL, ///< feedback whether or not have VCL NAL in current AU for application layer
|
DECODER_OPTION_VCL_NAL, ///< feedback whether or not have VCL NAL in current AU for application layer
|
||||||
DECODER_OPTION_TEMPORAL_ID, ///< feedback temporal id for application layer
|
DECODER_OPTION_TEMPORAL_ID, ///< feedback temporal id for application layer
|
||||||
DECODER_OPTION_FRAME_NUM, ///< feedback current decoded frame number
|
DECODER_OPTION_FRAME_NUM, ///< feedback current decoded frame number
|
||||||
@@ -477,7 +476,6 @@ typedef struct {
|
|||||||
typedef struct TagSVCDecodingParam {
|
typedef struct TagSVCDecodingParam {
|
||||||
char* pFileNameRestructed; ///< file name of reconstructed frame used for PSNR calculation based debug
|
char* pFileNameRestructed; ///< file name of reconstructed frame used for PSNR calculation based debug
|
||||||
|
|
||||||
EVideoFormatType eOutputColorFormat; ///< color space format to be outputed, EVideoFormatType specified in codec_def.h
|
|
||||||
unsigned int uiCpuLoad; ///< CPU load
|
unsigned int uiCpuLoad; ///< CPU load
|
||||||
unsigned char uiTargetDqLayer; ///< setting target dq layer id
|
unsigned char uiTargetDqLayer; ///< setting target dq layer id
|
||||||
|
|
||||||
|
|||||||
@@ -102,7 +102,6 @@ void H264DecodeInstance (ISVCDecoder* pDecoder, const char* kpH264FileName, cons
|
|||||||
int32_t iLastWidth = 0, iLastHeight = 0;
|
int32_t iLastWidth = 0, iLastHeight = 0;
|
||||||
int32_t iFrameCount = 0;
|
int32_t iFrameCount = 0;
|
||||||
int32_t iEndOfStreamFlag = 0;
|
int32_t iEndOfStreamFlag = 0;
|
||||||
int32_t iColorFormat = videoFormatInternal;
|
|
||||||
//for coverage test purpose
|
//for coverage test purpose
|
||||||
int32_t iErrorConMethod = (int32_t) ERROR_CON_SLICE_MV_COPY_CROSS_IDR_FREEZE_RES_CHANGE;
|
int32_t iErrorConMethod = (int32_t) ERROR_CON_SLICE_MV_COPY_CROSS_IDR_FREEZE_RES_CHANGE;
|
||||||
pDecoder->SetOption (DECODER_OPTION_ERROR_CON_IDC, &iErrorConMethod);
|
pDecoder->SetOption (DECODER_OPTION_ERROR_CON_IDC, &iErrorConMethod);
|
||||||
@@ -168,11 +167,6 @@ void H264DecodeInstance (ISVCDecoder* pDecoder, const char* kpH264FileName, cons
|
|||||||
|
|
||||||
memcpy (pBuf + iFileSize, &uiStartCode[0], 4); //confirmed_safe_unsafe_usage
|
memcpy (pBuf + iFileSize, &uiStartCode[0], 4); //confirmed_safe_unsafe_usage
|
||||||
|
|
||||||
if (pDecoder->SetOption (DECODER_OPTION_DATAFORMAT, &iColorFormat)) {
|
|
||||||
fprintf (stderr, "SetOption() failed, opt_id : %d ..\n", DECODER_OPTION_DATAFORMAT);
|
|
||||||
goto label_exit;
|
|
||||||
}
|
|
||||||
|
|
||||||
while (true) {
|
while (true) {
|
||||||
|
|
||||||
if (iBufPos >= iFileSize) {
|
if (iBufPos >= iFileSize) {
|
||||||
@@ -201,8 +195,6 @@ void H264DecodeInstance (ISVCDecoder* pDecoder, const char* kpH264FileName, cons
|
|||||||
}
|
}
|
||||||
|
|
||||||
//for coverage test purpose
|
//for coverage test purpose
|
||||||
int32_t iOutputColorFormat;
|
|
||||||
pDecoder->GetOption (DECODER_OPTION_DATAFORMAT, &iOutputColorFormat);
|
|
||||||
int32_t iEndOfStreamFlag;
|
int32_t iEndOfStreamFlag;
|
||||||
pDecoder->GetOption (DECODER_OPTION_END_OF_STREAM, &iEndOfStreamFlag);
|
pDecoder->GetOption (DECODER_OPTION_END_OF_STREAM, &iEndOfStreamFlag);
|
||||||
int32_t iCurIdrPicId;
|
int32_t iCurIdrPicId;
|
||||||
@@ -376,8 +368,6 @@ int32_t main (int32_t iArgC, char* pArgV[]) {
|
|||||||
strncpy (sDecParam.pFileNameRestructed, strReconFile.c_str(), iLen); //confirmed_safe_unsafe_usage
|
strncpy (sDecParam.pFileNameRestructed, strReconFile.c_str(), iLen); //confirmed_safe_unsafe_usage
|
||||||
} else if (strTag[0].compare ("TargetDQID") == 0) {
|
} else if (strTag[0].compare ("TargetDQID") == 0) {
|
||||||
sDecParam.uiTargetDqLayer = (uint8_t)atol (strTag[1].c_str());
|
sDecParam.uiTargetDqLayer = (uint8_t)atol (strTag[1].c_str());
|
||||||
} else if (strTag[0].compare ("OutColorFormat") == 0) {
|
|
||||||
sDecParam.eOutputColorFormat = (EVideoFormatType) atoi (strTag[1].c_str());
|
|
||||||
} else if (strTag[0].compare ("ErrorConcealmentIdc") == 0) {
|
} else if (strTag[0].compare ("ErrorConcealmentIdc") == 0) {
|
||||||
sDecParam.eEcActiveIdc = (ERROR_CON_IDC)atol (strTag[1].c_str());
|
sDecParam.eEcActiveIdc = (ERROR_CON_IDC)atol (strTag[1].c_str());
|
||||||
} else if (strTag[0].compare ("CPULoad") == 0) {
|
} else if (strTag[0].compare ("CPULoad") == 0) {
|
||||||
@@ -394,7 +384,6 @@ int32_t main (int32_t iArgC, char* pArgV[]) {
|
|||||||
} else if (strstr (pArgV[1],
|
} else if (strstr (pArgV[1],
|
||||||
".264")) { // no output dump yuv file, just try to render the decoded pictures //confirmed_safe_unsafe_usage
|
".264")) { // no output dump yuv file, just try to render the decoded pictures //confirmed_safe_unsafe_usage
|
||||||
strInputFile = pArgV[1];
|
strInputFile = pArgV[1];
|
||||||
sDecParam.eOutputColorFormat = videoFormatI420;
|
|
||||||
sDecParam.uiTargetDqLayer = (uint8_t) - 1;
|
sDecParam.uiTargetDqLayer = (uint8_t) - 1;
|
||||||
sDecParam.eEcActiveIdc = ERROR_CON_SLICE_COPY;
|
sDecParam.eEcActiveIdc = ERROR_CON_SLICE_COPY;
|
||||||
sDecParam.sVideoProperty.eVideoBsType = VIDEO_BITSTREAM_DEFAULT;
|
sDecParam.sVideoProperty.eVideoBsType = VIDEO_BITSTREAM_DEFAULT;
|
||||||
@@ -402,7 +391,6 @@ int32_t main (int32_t iArgC, char* pArgV[]) {
|
|||||||
} else { //iArgC > 2
|
} else { //iArgC > 2
|
||||||
strInputFile = pArgV[1];
|
strInputFile = pArgV[1];
|
||||||
strOutputFile = pArgV[2];
|
strOutputFile = pArgV[2];
|
||||||
sDecParam.eOutputColorFormat = videoFormatI420;
|
|
||||||
sDecParam.uiTargetDqLayer = (uint8_t) - 1;
|
sDecParam.uiTargetDqLayer = (uint8_t) - 1;
|
||||||
sDecParam.eEcActiveIdc = ERROR_CON_SLICE_COPY;
|
sDecParam.eEcActiveIdc = ERROR_CON_SLICE_COPY;
|
||||||
sDecParam.sVideoProperty.eVideoBsType = VIDEO_BITSTREAM_DEFAULT;
|
sDecParam.sVideoProperty.eVideoBsType = VIDEO_BITSTREAM_DEFAULT;
|
||||||
|
|||||||
@@ -114,11 +114,6 @@ int32_t WelsRequestMem (PWelsDecoderContext pCtx, const int32_t kiMbWidth, const
|
|||||||
*/
|
*/
|
||||||
void WelsFreeMem (PWelsDecoderContext pCtx);
|
void WelsFreeMem (PWelsDecoderContext pCtx);
|
||||||
|
|
||||||
/*
|
|
||||||
* set colorspace format in decoder
|
|
||||||
*/
|
|
||||||
int32_t DecoderSetCsp (PWelsDecoderContext pCtx, const int32_t kiColorFormat);
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief make sure synchonozization picture resolution (get from slice header) among different parts (i.e, memory related and so on)
|
* \brief make sure synchonozization picture resolution (get from slice header) among different parts (i.e, memory related and so on)
|
||||||
* over decoder internal
|
* over decoder internal
|
||||||
|
|||||||
@@ -242,7 +242,6 @@ typedef struct TagWelsDecoderContext {
|
|||||||
SDecodingParam* pParam;
|
SDecodingParam* pParam;
|
||||||
uint32_t uiCpuFlag; // CPU compatibility detected
|
uint32_t uiCpuFlag; // CPU compatibility detected
|
||||||
|
|
||||||
EVideoFormatType eOutputColorFormat; // color space format to be outputed
|
|
||||||
VIDEO_BITSTREAM_TYPE eVideoType; //indicate the type of video to decide whether or not to do qp_delta error detection.
|
VIDEO_BITSTREAM_TYPE eVideoType; //indicate the type of video to decide whether or not to do qp_delta error detection.
|
||||||
bool bHaveGotMemory; // global memory for decoder context related ever requested?
|
bool bHaveGotMemory; // global memory for decoder context related ever requested?
|
||||||
|
|
||||||
|
|||||||
@@ -283,7 +283,6 @@ void WelsDecoderDefaults (PWelsDecoderContext pCtx, SLogContext* pLogCtx, CMemor
|
|||||||
|
|
||||||
pCtx->pArgDec = NULL;
|
pCtx->pArgDec = NULL;
|
||||||
|
|
||||||
pCtx->eOutputColorFormat = videoFormatI420; // yuv in default
|
|
||||||
pCtx->bHaveGotMemory = false; // not ever request memory blocks for decoder context related
|
pCtx->bHaveGotMemory = false; // not ever request memory blocks for decoder context related
|
||||||
pCtx->uiCpuFlag = 0;
|
pCtx->uiCpuFlag = 0;
|
||||||
|
|
||||||
@@ -530,12 +529,6 @@ int32_t DecoderConfigParam (PWelsDecoderContext pCtx, const SDecodingParam* kpPa
|
|||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
memcpy (pCtx->pParam, kpParam, sizeof (SDecodingParam));
|
memcpy (pCtx->pParam, kpParam, sizeof (SDecodingParam));
|
||||||
pCtx->eOutputColorFormat = pCtx->pParam->eOutputColorFormat;
|
|
||||||
if (!pCtx->bParseOnly) {
|
|
||||||
int32_t iRet = DecoderSetCsp (pCtx, pCtx->pParam->eOutputColorFormat);
|
|
||||||
if (iRet)
|
|
||||||
return iRet;
|
|
||||||
}
|
|
||||||
if ((pCtx->pParam->eEcActiveIdc > ERROR_CON_SLICE_MV_COPY_CROSS_IDR_FREEZE_RES_CHANGE)
|
if ((pCtx->pParam->eEcActiveIdc > ERROR_CON_SLICE_MV_COPY_CROSS_IDR_FREEZE_RES_CHANGE)
|
||||||
|| (pCtx->pParam->eEcActiveIdc < ERROR_CON_DISABLE)) {
|
|| (pCtx->pParam->eEcActiveIdc < ERROR_CON_DISABLE)) {
|
||||||
WelsLog (& (pCtx->sLogCtx), WELS_LOG_WARNING,
|
WelsLog (& (pCtx->sLogCtx), WELS_LOG_WARNING,
|
||||||
@@ -803,29 +796,6 @@ int32_t WelsDecodeBs (PWelsDecoderContext pCtx, const uint8_t* kpBsBuf, const in
|
|||||||
return pCtx->iErrorCode;
|
return pCtx->iErrorCode;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* set colorspace format in decoder
|
|
||||||
*/
|
|
||||||
int32_t DecoderSetCsp (PWelsDecoderContext pCtx, const int32_t kiColorFormat) {
|
|
||||||
WELS_VERIFY_RETURN_IF (1, (NULL == pCtx));
|
|
||||||
|
|
||||||
pCtx->eOutputColorFormat = (EVideoFormatType) kiColorFormat;
|
|
||||||
if (pCtx->pParam != NULL) {
|
|
||||||
pCtx->pParam->eOutputColorFormat = (EVideoFormatType) kiColorFormat;
|
|
||||||
}
|
|
||||||
|
|
||||||
//For now, support only videoFormatI420!
|
|
||||||
if (kiColorFormat == (int32_t) videoFormatInternal) {
|
|
||||||
pCtx->pParam->eOutputColorFormat = pCtx->eOutputColorFormat = videoFormatI420;
|
|
||||||
} else if (kiColorFormat != (int32_t) videoFormatI420) {
|
|
||||||
WelsLog (& (pCtx->sLogCtx), WELS_LOG_WARNING, "Support I420 output only for now! Change to I420...");
|
|
||||||
pCtx->pParam->eOutputColorFormat = pCtx->eOutputColorFormat = videoFormatI420;
|
|
||||||
return cmUnsupportedData;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief make sure synchonozization picture resolution (get from slice header) among different parts (i.e, memory related and so on)
|
* \brief make sure synchonozization picture resolution (get from slice header) among different parts (i.e, memory related and so on)
|
||||||
* over decoder internal
|
* over decoder internal
|
||||||
|
|||||||
@@ -289,20 +289,7 @@ long CWelsDecoder::SetOption (DECODER_OPTION eOptID, void* pOption) {
|
|||||||
if (m_pDecContext == NULL && eOptID != DECODER_OPTION_TRACE_LEVEL &&
|
if (m_pDecContext == NULL && eOptID != DECODER_OPTION_TRACE_LEVEL &&
|
||||||
eOptID != DECODER_OPTION_TRACE_CALLBACK && eOptID != DECODER_OPTION_TRACE_CALLBACK_CONTEXT)
|
eOptID != DECODER_OPTION_TRACE_CALLBACK && eOptID != DECODER_OPTION_TRACE_CALLBACK_CONTEXT)
|
||||||
return dsInitialOptExpected;
|
return dsInitialOptExpected;
|
||||||
|
if (eOptID == DECODER_OPTION_END_OF_STREAM) { // Indicate bit-stream of the final frame to be decoded
|
||||||
if (eOptID == DECODER_OPTION_DATAFORMAT) { // Set color space of decoding output frame
|
|
||||||
if (m_pDecContext->bParseOnly) {
|
|
||||||
WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_WARNING,
|
|
||||||
"CWelsDecoder::SetOption for data format meaningless for parseonly.");
|
|
||||||
return cmResultSuccess;
|
|
||||||
}
|
|
||||||
if (pOption == NULL)
|
|
||||||
return cmInitParaError;
|
|
||||||
|
|
||||||
iVal = * ((int*)pOption); // is_rgb
|
|
||||||
|
|
||||||
return DecoderSetCsp (m_pDecContext, iVal);
|
|
||||||
} else if (eOptID == DECODER_OPTION_END_OF_STREAM) { // Indicate bit-stream of the final frame to be decoded
|
|
||||||
if (pOption == NULL)
|
if (pOption == NULL)
|
||||||
return cmInitParaError;
|
return cmInitParaError;
|
||||||
|
|
||||||
@@ -371,11 +358,7 @@ long CWelsDecoder::GetOption (DECODER_OPTION eOptID, void* pOption) {
|
|||||||
if (pOption == NULL)
|
if (pOption == NULL)
|
||||||
return cmInitParaError;
|
return cmInitParaError;
|
||||||
|
|
||||||
if (DECODER_OPTION_DATAFORMAT == eOptID) {
|
if (DECODER_OPTION_END_OF_STREAM == eOptID) {
|
||||||
iVal = (int32_t) m_pDecContext->eOutputColorFormat;
|
|
||||||
* ((int*)pOption) = iVal;
|
|
||||||
return cmResultSuccess;
|
|
||||||
} else if (DECODER_OPTION_END_OF_STREAM == eOptID) {
|
|
||||||
iVal = m_pDecContext->bEndOfStreamFlag;
|
iVal = m_pDecContext->bEndOfStreamFlag;
|
||||||
* ((int*)pOption) = iVal;
|
* ((int*)pOption) = iVal;
|
||||||
return cmResultSuccess;
|
return cmResultSuccess;
|
||||||
|
|||||||
@@ -622,7 +622,6 @@ class OpenH264VideoDecoder : public GMPVideoDecoder, public RefCounted {
|
|||||||
|
|
||||||
SDecodingParam param;
|
SDecodingParam param;
|
||||||
memset (¶m, 0, sizeof (param));
|
memset (¶m, 0, sizeof (param));
|
||||||
param.eOutputColorFormat = videoFormatI420;
|
|
||||||
param.uiTargetDqLayer = UCHAR_MAX; // Default value
|
param.uiTargetDqLayer = UCHAR_MAX; // Default value
|
||||||
param.eEcActiveIdc = ERROR_CON_SLICE_MV_COPY_CROSS_IDR_FREEZE_RES_CHANGE; // Error concealment on.
|
param.eEcActiveIdc = ERROR_CON_SLICE_MV_COPY_CROSS_IDR_FREEZE_RES_CHANGE; // Error concealment on.
|
||||||
param.sVideoProperty.size = sizeof(param.sVideoProperty);
|
param.sVideoProperty.size = sizeof(param.sVideoProperty);
|
||||||
|
|||||||
@@ -53,7 +53,6 @@ void BaseDecoderTest::SetUp() {
|
|||||||
|
|
||||||
SDecodingParam decParam;
|
SDecodingParam decParam;
|
||||||
memset (&decParam, 0, sizeof (SDecodingParam));
|
memset (&decParam, 0, sizeof (SDecodingParam));
|
||||||
decParam.eOutputColorFormat = videoFormatI420;
|
|
||||||
decParam.uiTargetDqLayer = UCHAR_MAX;
|
decParam.uiTargetDqLayer = UCHAR_MAX;
|
||||||
decParam.eEcActiveIdc = ERROR_CON_SLICE_COPY;
|
decParam.eEcActiveIdc = ERROR_CON_SLICE_COPY;
|
||||||
decParam.sVideoProperty.eVideoBsType = VIDEO_BITSTREAM_DEFAULT;
|
decParam.sVideoProperty.eVideoBsType = VIDEO_BITSTREAM_DEFAULT;
|
||||||
|
|||||||
@@ -500,7 +500,7 @@ void EncodeDecodeTestAPIBase::ValidateParamExtCombination() {
|
|||||||
|
|
||||||
//for slice mode = SM_RASTER_SLICE
|
//for slice mode = SM_RASTER_SLICE
|
||||||
if (SM_RASTER_SLICE == pSpatialLayer->sSliceArgument.uiSliceMode) {
|
if (SM_RASTER_SLICE == pSpatialLayer->sSliceArgument.uiSliceMode) {
|
||||||
if (0!=pSpatialLayer->sSliceArgument.uiSliceMbNum[0]) {
|
if (0 != pSpatialLayer->sSliceArgument.uiSliceMbNum[0]) {
|
||||||
SliceParamValidationForMode2 (iSpatialIdx);
|
SliceParamValidationForMode2 (iSpatialIdx);
|
||||||
} else {
|
} else {
|
||||||
SliceParamValidationForMode3 (iSpatialIdx);
|
SliceParamValidationForMode3 (iSpatialIdx);
|
||||||
@@ -1069,7 +1069,6 @@ TEST_P (EncodeDecodeTestAPI, SetOptionECFlag_ERROR_CON_DISABLE) {
|
|||||||
}
|
}
|
||||||
SDecodingParam decParam;
|
SDecodingParam decParam;
|
||||||
memset (&decParam, 0, sizeof (SDecodingParam));
|
memset (&decParam, 0, sizeof (SDecodingParam));
|
||||||
decParam.eOutputColorFormat = videoFormatI420;
|
|
||||||
decParam.uiTargetDqLayer = UCHAR_MAX;
|
decParam.uiTargetDqLayer = UCHAR_MAX;
|
||||||
decParam.eEcActiveIdc = ERROR_CON_DISABLE;
|
decParam.eEcActiveIdc = ERROR_CON_DISABLE;
|
||||||
decParam.sVideoProperty.eVideoBsType = VIDEO_BITSTREAM_DEFAULT;
|
decParam.sVideoProperty.eVideoBsType = VIDEO_BITSTREAM_DEFAULT;
|
||||||
@@ -2422,7 +2421,6 @@ TEST_F (DecodeCrashTestAPI, DecoderCrashTest) {
|
|||||||
|
|
||||||
SDecodingParam decParam;
|
SDecodingParam decParam;
|
||||||
memset (&decParam, 0, sizeof (SDecodingParam));
|
memset (&decParam, 0, sizeof (SDecodingParam));
|
||||||
decParam.eOutputColorFormat = videoFormatI420;
|
|
||||||
decParam.uiTargetDqLayer = UCHAR_MAX;
|
decParam.uiTargetDqLayer = UCHAR_MAX;
|
||||||
decParam.eEcActiveIdc = ERROR_CON_SLICE_COPY;
|
decParam.eEcActiveIdc = ERROR_CON_SLICE_COPY;
|
||||||
decParam.sVideoProperty.eVideoBsType = VIDEO_BITSTREAM_DEFAULT;
|
decParam.sVideoProperty.eVideoBsType = VIDEO_BITSTREAM_DEFAULT;
|
||||||
@@ -2526,7 +2524,6 @@ class DecodeParseAPI : public ::testing::TestWithParam<EncodeDecodeFileParamBase
|
|||||||
decoder_->Uninitialize();
|
decoder_->Uninitialize();
|
||||||
SDecodingParam decParam;
|
SDecodingParam decParam;
|
||||||
memset (&decParam, 0, sizeof (SDecodingParam));
|
memset (&decParam, 0, sizeof (SDecodingParam));
|
||||||
decParam.eOutputColorFormat = videoFormatRGB;
|
|
||||||
decParam.uiTargetDqLayer = UCHAR_MAX;
|
decParam.uiTargetDqLayer = UCHAR_MAX;
|
||||||
decParam.eEcActiveIdc = ERROR_CON_SLICE_COPY;
|
decParam.eEcActiveIdc = ERROR_CON_SLICE_COPY;
|
||||||
decParam.bParseOnly = true;
|
decParam.bParseOnly = true;
|
||||||
@@ -3182,7 +3179,6 @@ TEST_F (EncodeDecodeTestAPI, SimulcastSVC) {
|
|||||||
|
|
||||||
SDecodingParam decParam;
|
SDecodingParam decParam;
|
||||||
memset (&decParam, 0, sizeof (SDecodingParam));
|
memset (&decParam, 0, sizeof (SDecodingParam));
|
||||||
decParam.eOutputColorFormat = videoFormatI420;
|
|
||||||
decParam.uiTargetDqLayer = UCHAR_MAX;
|
decParam.uiTargetDqLayer = UCHAR_MAX;
|
||||||
decParam.eEcActiveIdc = ERROR_CON_SLICE_COPY;
|
decParam.eEcActiveIdc = ERROR_CON_SLICE_COPY;
|
||||||
decParam.sVideoProperty.eVideoBsType = VIDEO_BITSTREAM_DEFAULT;
|
decParam.sVideoProperty.eVideoBsType = VIDEO_BITSTREAM_DEFAULT;
|
||||||
@@ -3300,7 +3296,6 @@ TEST_F (EncodeDecodeTestAPI, SimulcastAVC) {
|
|||||||
|
|
||||||
SDecodingParam decParam;
|
SDecodingParam decParam;
|
||||||
memset (&decParam, 0, sizeof (SDecodingParam));
|
memset (&decParam, 0, sizeof (SDecodingParam));
|
||||||
decParam.eOutputColorFormat = videoFormatI420;
|
|
||||||
decParam.uiTargetDqLayer = UCHAR_MAX;
|
decParam.uiTargetDqLayer = UCHAR_MAX;
|
||||||
decParam.eEcActiveIdc = ERROR_CON_SLICE_COPY;
|
decParam.eEcActiveIdc = ERROR_CON_SLICE_COPY;
|
||||||
decParam.sVideoProperty.eVideoBsType = VIDEO_BITSTREAM_DEFAULT;
|
decParam.sVideoProperty.eVideoBsType = VIDEO_BITSTREAM_DEFAULT;
|
||||||
@@ -3377,8 +3372,8 @@ TEST_F (EncodeDecodeTestAPI, SimulcastAVC_SPS_PPS_LISTING) {
|
|||||||
float fFrameRate = rand() + 0.5f;
|
float fFrameRate = rand() + 0.5f;
|
||||||
int iEncFrameNum = WelsClip3 ((rand() % ENCODE_FRAME_NUM) + 1, 1, ENCODE_FRAME_NUM);
|
int iEncFrameNum = WelsClip3 ((rand() % ENCODE_FRAME_NUM) + 1, 1, ENCODE_FRAME_NUM);
|
||||||
int iSliceNum = 1;
|
int iSliceNum = 1;
|
||||||
iWidth = VALID_SIZE(iWidth);
|
iWidth = VALID_SIZE (iWidth);
|
||||||
iHeight = VALID_SIZE(iHeight);
|
iHeight = VALID_SIZE (iHeight);
|
||||||
// prepare params
|
// prepare params
|
||||||
SEncParamExt sParam1;
|
SEncParamExt sParam1;
|
||||||
SEncParamExt sParam2;
|
SEncParamExt sParam2;
|
||||||
@@ -3414,7 +3409,6 @@ TEST_F (EncodeDecodeTestAPI, SimulcastAVC_SPS_PPS_LISTING) {
|
|||||||
|
|
||||||
SDecodingParam decParam;
|
SDecodingParam decParam;
|
||||||
memset (&decParam, 0, sizeof (SDecodingParam));
|
memset (&decParam, 0, sizeof (SDecodingParam));
|
||||||
decParam.eOutputColorFormat = videoFormatI420;
|
|
||||||
decParam.uiTargetDqLayer = UCHAR_MAX;
|
decParam.uiTargetDqLayer = UCHAR_MAX;
|
||||||
decParam.eEcActiveIdc = ERROR_CON_SLICE_COPY;
|
decParam.eEcActiveIdc = ERROR_CON_SLICE_COPY;
|
||||||
decParam.sVideoProperty.eVideoBsType = VIDEO_BITSTREAM_DEFAULT;
|
decParam.sVideoProperty.eVideoBsType = VIDEO_BITSTREAM_DEFAULT;
|
||||||
@@ -3533,7 +3527,7 @@ TEST_P (EncodeTestAPI, SetEncOptionSize) {
|
|||||||
param_.sSpatialLayers[0].iVideoHeight = p.iHeight;
|
param_.sSpatialLayers[0].iVideoHeight = p.iHeight;
|
||||||
param_.sSpatialLayers[0].fFrameRate = p.fFramerate;
|
param_.sSpatialLayers[0].fFrameRate = p.fFramerate;
|
||||||
param_.sSpatialLayers[0].sSliceArgument.uiSliceMode = p.eSliceMode;
|
param_.sSpatialLayers[0].sSliceArgument.uiSliceMode = p.eSliceMode;
|
||||||
if ( SM_FIXEDSLCNUM_SLICE == p.eSliceMode ) {
|
if (SM_FIXEDSLCNUM_SLICE == p.eSliceMode) {
|
||||||
param_.sSpatialLayers[0].sSliceArgument.uiSliceNum = 8;
|
param_.sSpatialLayers[0].sSliceArgument.uiSliceNum = 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3554,7 +3548,7 @@ TEST_P (EncodeTestAPI, SetEncOptionSize) {
|
|||||||
unsigned char* pData[3] = { NULL };
|
unsigned char* pData[3] = { NULL };
|
||||||
|
|
||||||
//FIXME: remove this after the multi-thread case is correctly handled in encoder
|
//FIXME: remove this after the multi-thread case is correctly handled in encoder
|
||||||
if (p.iThreads>1 && SM_SIZELIMITED_SLICE == p.eSliceMode) {
|
if (p.iThreads > 1 && SM_SIZELIMITED_SLICE == p.eSliceMode) {
|
||||||
p.bAllRandom = false;
|
p.bAllRandom = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3635,7 +3629,6 @@ TEST_F (EncodeDecodeTestAPI, SimulcastAVCDiffFps) {
|
|||||||
|
|
||||||
SDecodingParam decParam;
|
SDecodingParam decParam;
|
||||||
memset (&decParam, 0, sizeof (SDecodingParam));
|
memset (&decParam, 0, sizeof (SDecodingParam));
|
||||||
decParam.eOutputColorFormat = videoFormatI420;
|
|
||||||
decParam.uiTargetDqLayer = UCHAR_MAX;
|
decParam.uiTargetDqLayer = UCHAR_MAX;
|
||||||
decParam.eEcActiveIdc = ERROR_CON_SLICE_COPY;
|
decParam.eEcActiveIdc = ERROR_CON_SLICE_COPY;
|
||||||
decParam.sVideoProperty.eVideoBsType = VIDEO_BITSTREAM_DEFAULT;
|
decParam.sVideoProperty.eVideoBsType = VIDEO_BITSTREAM_DEFAULT;
|
||||||
@@ -3729,7 +3722,8 @@ TEST_F (EncodeDecodeTestAPI, SimulcastAVCDiffFps) {
|
|||||||
TEST_F (EncodeDecodeTestAPI, DiffSlicingInDlayer) {
|
TEST_F (EncodeDecodeTestAPI, DiffSlicingInDlayer) {
|
||||||
int iSpatialLayerNum = 3;
|
int iSpatialLayerNum = 3;
|
||||||
int iWidth = WelsClip3 ((((rand() % MAX_WIDTH) >> 1) + 1) << 1, (64 << 2), MAX_WIDTH);
|
int iWidth = WelsClip3 ((((rand() % MAX_WIDTH) >> 1) + 1) << 1, (64 << 2), MAX_WIDTH);
|
||||||
int iHeight = WelsClip3 ((((rand() % MAX_HEIGHT) >> 1) + 1) << 1, (64 << 2), 2240);//TODO: use MAX_HEIGHT after the limit is removed
|
int iHeight = WelsClip3 ((((rand() % MAX_HEIGHT) >> 1) + 1) << 1, (64 << 2),
|
||||||
|
2240);//TODO: use MAX_HEIGHT after the limit is removed
|
||||||
float fFrameRate = rand() + 0.5f;
|
float fFrameRate = rand() + 0.5f;
|
||||||
int iEncFrameNum = WelsClip3 ((rand() % ENCODE_FRAME_NUM) + 1, 1, ENCODE_FRAME_NUM);
|
int iEncFrameNum = WelsClip3 ((rand() % ENCODE_FRAME_NUM) + 1, 1, ENCODE_FRAME_NUM);
|
||||||
|
|
||||||
@@ -3774,7 +3768,6 @@ TEST_F (EncodeDecodeTestAPI, DiffSlicingInDlayer) {
|
|||||||
|
|
||||||
SDecodingParam decParam;
|
SDecodingParam decParam;
|
||||||
memset (&decParam, 0, sizeof (SDecodingParam));
|
memset (&decParam, 0, sizeof (SDecodingParam));
|
||||||
decParam.eOutputColorFormat = videoFormatI420;
|
|
||||||
decParam.uiTargetDqLayer = UCHAR_MAX;
|
decParam.uiTargetDqLayer = UCHAR_MAX;
|
||||||
decParam.eEcActiveIdc = ERROR_CON_SLICE_COPY;
|
decParam.eEcActiveIdc = ERROR_CON_SLICE_COPY;
|
||||||
decParam.sVideoProperty.eVideoBsType = VIDEO_BITSTREAM_DEFAULT;
|
decParam.sVideoProperty.eVideoBsType = VIDEO_BITSTREAM_DEFAULT;
|
||||||
@@ -3838,7 +3831,6 @@ TEST_F (EncodeDecodeTestAPI, DiffSlicingInDlayerMixed) {
|
|||||||
|
|
||||||
SDecodingParam decParam;
|
SDecodingParam decParam;
|
||||||
memset (&decParam, 0, sizeof (SDecodingParam));
|
memset (&decParam, 0, sizeof (SDecodingParam));
|
||||||
decParam.eOutputColorFormat = videoFormatI420;
|
|
||||||
decParam.uiTargetDqLayer = UCHAR_MAX;
|
decParam.uiTargetDqLayer = UCHAR_MAX;
|
||||||
decParam.eEcActiveIdc = ERROR_CON_SLICE_COPY;
|
decParam.eEcActiveIdc = ERROR_CON_SLICE_COPY;
|
||||||
decParam.sVideoProperty.eVideoBsType = VIDEO_BITSTREAM_DEFAULT;
|
decParam.sVideoProperty.eVideoBsType = VIDEO_BITSTREAM_DEFAULT;
|
||||||
@@ -3899,7 +3891,6 @@ TEST_F (EncodeDecodeTestAPI, ThreadNumAndSliceNum) {
|
|||||||
|
|
||||||
SDecodingParam decParam;
|
SDecodingParam decParam;
|
||||||
memset (&decParam, 0, sizeof (SDecodingParam));
|
memset (&decParam, 0, sizeof (SDecodingParam));
|
||||||
decParam.eOutputColorFormat = videoFormatI420;
|
|
||||||
decParam.uiTargetDqLayer = UCHAR_MAX;
|
decParam.uiTargetDqLayer = UCHAR_MAX;
|
||||||
decParam.eEcActiveIdc = ERROR_CON_SLICE_COPY;
|
decParam.eEcActiveIdc = ERROR_CON_SLICE_COPY;
|
||||||
decParam.sVideoProperty.eVideoBsType = VIDEO_BITSTREAM_DEFAULT;
|
decParam.sVideoProperty.eVideoBsType = VIDEO_BITSTREAM_DEFAULT;
|
||||||
@@ -3961,7 +3952,6 @@ TEST_F (EncodeDecodeTestAPI, TriggerLoadBalancing) {
|
|||||||
|
|
||||||
SDecodingParam decParam;
|
SDecodingParam decParam;
|
||||||
memset (&decParam, 0, sizeof (SDecodingParam));
|
memset (&decParam, 0, sizeof (SDecodingParam));
|
||||||
decParam.eOutputColorFormat = videoFormatI420;
|
|
||||||
decParam.uiTargetDqLayer = UCHAR_MAX;
|
decParam.uiTargetDqLayer = UCHAR_MAX;
|
||||||
decParam.eEcActiveIdc = ERROR_CON_SLICE_COPY;
|
decParam.eEcActiveIdc = ERROR_CON_SLICE_COPY;
|
||||||
decParam.sVideoProperty.eVideoBsType = VIDEO_BITSTREAM_DEFAULT;
|
decParam.sVideoProperty.eVideoBsType = VIDEO_BITSTREAM_DEFAULT;
|
||||||
|
|||||||
@@ -50,7 +50,6 @@ TEST_F (EncodeDecodeTestAPI, LogEncoding) {
|
|||||||
|
|
||||||
SDecodingParam decParam;
|
SDecodingParam decParam;
|
||||||
memset (&decParam, 0, sizeof (SDecodingParam));
|
memset (&decParam, 0, sizeof (SDecodingParam));
|
||||||
decParam.eOutputColorFormat = videoFormatI420;
|
|
||||||
decParam.uiTargetDqLayer = UCHAR_MAX;
|
decParam.uiTargetDqLayer = UCHAR_MAX;
|
||||||
decParam.eEcActiveIdc = ERROR_CON_SLICE_COPY;
|
decParam.eEcActiveIdc = ERROR_CON_SLICE_COPY;
|
||||||
decParam.sVideoProperty.eVideoBsType = VIDEO_BITSTREAM_DEFAULT;
|
decParam.sVideoProperty.eVideoBsType = VIDEO_BITSTREAM_DEFAULT;
|
||||||
@@ -139,4 +138,4 @@ TEST_F (EncodeDecodeTestAPI, LogEncoding) {
|
|||||||
fclose (fEnc[i]);
|
fclose (fEnc[i]);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,8 +34,6 @@ class DecoderInterfaceTest : public ::testing::Test {
|
|||||||
void DecoderBs (const char* sFileName);
|
void DecoderBs (const char* sFileName);
|
||||||
//Test Initialize/Uninitialize
|
//Test Initialize/Uninitialize
|
||||||
void TestInitUninit();
|
void TestInitUninit();
|
||||||
//DECODER_OPTION_DATAFORMAT
|
|
||||||
void TestDataFormat();
|
|
||||||
//DECODER_OPTION_END_OF_STREAM
|
//DECODER_OPTION_END_OF_STREAM
|
||||||
void TestEndOfStream();
|
void TestEndOfStream();
|
||||||
//DECODER_OPTION_VCL_NAL
|
//DECODER_OPTION_VCL_NAL
|
||||||
@@ -78,7 +76,6 @@ void DecoderInterfaceTest::Init() {
|
|||||||
memset (&m_sBufferInfo, 0, sizeof (SBufferInfo));
|
memset (&m_sBufferInfo, 0, sizeof (SBufferInfo));
|
||||||
memset (&m_sDecParam, 0, sizeof (SDecodingParam));
|
memset (&m_sDecParam, 0, sizeof (SDecodingParam));
|
||||||
m_sDecParam.pFileNameRestructed = NULL;
|
m_sDecParam.pFileNameRestructed = NULL;
|
||||||
m_sDecParam.eOutputColorFormat = (EVideoFormatType) (rand() % 100);
|
|
||||||
m_sDecParam.uiCpuLoad = rand() % 100;
|
m_sDecParam.uiCpuLoad = rand() % 100;
|
||||||
m_sDecParam.uiTargetDqLayer = rand() % 100;
|
m_sDecParam.uiTargetDqLayer = rand() % 100;
|
||||||
m_sDecParam.eEcActiveIdc = (ERROR_CON_IDC) (rand() & 7);
|
m_sDecParam.eEcActiveIdc = (ERROR_CON_IDC) (rand() & 7);
|
||||||
@@ -90,11 +87,7 @@ void DecoderInterfaceTest::Init() {
|
|||||||
m_szBuffer[3] = 1;
|
m_szBuffer[3] = 1;
|
||||||
m_iBufLength = 4;
|
m_iBufLength = 4;
|
||||||
CM_RETURN eRet = (CM_RETURN) m_pDec->Initialize (&m_sDecParam);
|
CM_RETURN eRet = (CM_RETURN) m_pDec->Initialize (&m_sDecParam);
|
||||||
if ((m_sDecParam.eOutputColorFormat != videoFormatI420) &&
|
ASSERT_EQ (eRet, cmResultSuccess);
|
||||||
(m_sDecParam.eOutputColorFormat != videoFormatInternal))
|
|
||||||
ASSERT_EQ (eRet, cmUnsupportedData);
|
|
||||||
else
|
|
||||||
ASSERT_EQ (eRet, cmResultSuccess);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void DecoderInterfaceTest::Uninit() {
|
void DecoderInterfaceTest::Uninit() {
|
||||||
@@ -210,12 +203,8 @@ void DecoderInterfaceTest::TestInitUninit() {
|
|||||||
EXPECT_EQ (eRet, cmInitExpected);
|
EXPECT_EQ (eRet, cmInitExpected);
|
||||||
}
|
}
|
||||||
//Initialize first, can get input color format
|
//Initialize first, can get input color format
|
||||||
m_sDecParam.eOutputColorFormat = (EVideoFormatType) 20; //just for test
|
|
||||||
m_sDecParam.bParseOnly = false;
|
m_sDecParam.bParseOnly = false;
|
||||||
m_pDec->Initialize (&m_sDecParam);
|
m_pDec->Initialize (&m_sDecParam);
|
||||||
eRet = (CM_RETURN) m_pDec->GetOption (DECODER_OPTION_DATAFORMAT, &iOutput);
|
|
||||||
EXPECT_EQ (eRet, cmResultSuccess);
|
|
||||||
EXPECT_EQ ((int32_t) videoFormatI420, iOutput);
|
|
||||||
|
|
||||||
//Uninitialize, no GetOption can be done
|
//Uninitialize, no GetOption can be done
|
||||||
m_pDec->Uninitialize();
|
m_pDec->Uninitialize();
|
||||||
@@ -227,32 +216,6 @@ void DecoderInterfaceTest::TestInitUninit() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//DECODER_OPTION_DATAFORMAT
|
|
||||||
void DecoderInterfaceTest::TestDataFormat() {
|
|
||||||
int iTmp = rand();
|
|
||||||
int iOut;
|
|
||||||
CM_RETURN eRet;
|
|
||||||
|
|
||||||
Init();
|
|
||||||
|
|
||||||
//invalid input
|
|
||||||
eRet = (CM_RETURN) m_pDec->SetOption (DECODER_OPTION_DATAFORMAT, NULL);
|
|
||||||
EXPECT_EQ (eRet, cmInitParaError);
|
|
||||||
|
|
||||||
//valid input
|
|
||||||
eRet = (CM_RETURN) m_pDec->SetOption (DECODER_OPTION_DATAFORMAT, &iTmp);
|
|
||||||
if ((iTmp != (int32_t) videoFormatI420) && (iTmp != (int32_t) videoFormatInternal))
|
|
||||||
EXPECT_EQ (eRet, cmUnsupportedData);
|
|
||||||
else
|
|
||||||
EXPECT_EQ (eRet, cmResultSuccess);
|
|
||||||
eRet = (CM_RETURN) m_pDec->GetOption (DECODER_OPTION_DATAFORMAT, &iOut);
|
|
||||||
EXPECT_EQ (eRet, cmResultSuccess);
|
|
||||||
|
|
||||||
EXPECT_EQ (iOut, (int32_t) videoFormatI420);
|
|
||||||
|
|
||||||
Uninit();
|
|
||||||
}
|
|
||||||
|
|
||||||
//DECODER_OPTION_END_OF_STREAM
|
//DECODER_OPTION_END_OF_STREAM
|
||||||
void DecoderInterfaceTest::TestEndOfStream() {
|
void DecoderInterfaceTest::TestEndOfStream() {
|
||||||
int iTmp, iOut;
|
int iTmp, iOut;
|
||||||
@@ -515,8 +478,6 @@ TEST_F (DecoderInterfaceTest, DecoderInterfaceAll) {
|
|||||||
|
|
||||||
//Initialize Uninitialize
|
//Initialize Uninitialize
|
||||||
TestInitUninit();
|
TestInitUninit();
|
||||||
//DECODER_OPTION_DATAFORMAT
|
|
||||||
TestDataFormat();
|
|
||||||
//DECODER_OPTION_END_OF_STREAM
|
//DECODER_OPTION_END_OF_STREAM
|
||||||
TestEndOfStream();
|
TestEndOfStream();
|
||||||
//DECODER_OPTION_VCL_NAL
|
//DECODER_OPTION_VCL_NAL
|
||||||
|
|||||||
@@ -157,7 +157,6 @@ void DecoderParseSyntaxTest::Init() {
|
|||||||
memset (&m_sDecParam, 0, sizeof (SDecodingParam));
|
memset (&m_sDecParam, 0, sizeof (SDecodingParam));
|
||||||
memset (&m_sParserBsInfo, 0, sizeof (SParserBsInfo));
|
memset (&m_sParserBsInfo, 0, sizeof (SParserBsInfo));
|
||||||
m_sDecParam.pFileNameRestructed = NULL;
|
m_sDecParam.pFileNameRestructed = NULL;
|
||||||
m_sDecParam.eOutputColorFormat = videoFormatI420;
|
|
||||||
m_sDecParam.uiCpuLoad = rand() % 100;
|
m_sDecParam.uiCpuLoad = rand() % 100;
|
||||||
m_sDecParam.uiTargetDqLayer = rand() % 100;
|
m_sDecParam.uiTargetDqLayer = rand() % 100;
|
||||||
m_sDecParam.eEcActiveIdc = (ERROR_CON_IDC)7;
|
m_sDecParam.eEcActiveIdc = (ERROR_CON_IDC)7;
|
||||||
|
|||||||
Reference in New Issue
Block a user