remove API data format in decoder in 1.6

This commit is contained in:
huili2 2015-11-17 13:58:57 +08:00
parent 991b05fb69
commit dc2cbe4a22
12 changed files with 12 additions and 132 deletions

View File

@ -148,8 +148,7 @@ typedef enum {
* @brief Option types introduced in decoder application
*/
typedef enum {
DECODER_OPTION_DATAFORMAT = 0, ///< color format, now supports 23 only (I420)
DECODER_OPTION_END_OF_STREAM, ///< end of stream flag
DECODER_OPTION_END_OF_STREAM = 1, ///< end of stream flag
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_FRAME_NUM, ///< feedback current decoded frame number
@ -477,7 +476,6 @@ typedef struct {
typedef struct TagSVCDecodingParam {
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 char uiTargetDqLayer; ///< setting target dq layer id

View File

@ -102,7 +102,6 @@ void H264DecodeInstance (ISVCDecoder* pDecoder, const char* kpH264FileName, cons
int32_t iLastWidth = 0, iLastHeight = 0;
int32_t iFrameCount = 0;
int32_t iEndOfStreamFlag = 0;
int32_t iColorFormat = videoFormatInternal;
//for coverage test purpose
int32_t iErrorConMethod = (int32_t) ERROR_CON_SLICE_MV_COPY_CROSS_IDR_FREEZE_RES_CHANGE;
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
if (pDecoder->SetOption (DECODER_OPTION_DATAFORMAT, &iColorFormat)) {
fprintf (stderr, "SetOption() failed, opt_id : %d ..\n", DECODER_OPTION_DATAFORMAT);
goto label_exit;
}
while (true) {
if (iBufPos >= iFileSize) {
@ -201,8 +195,6 @@ void H264DecodeInstance (ISVCDecoder* pDecoder, const char* kpH264FileName, cons
}
//for coverage test purpose
int32_t iOutputColorFormat;
pDecoder->GetOption (DECODER_OPTION_DATAFORMAT, &iOutputColorFormat);
int32_t iEndOfStreamFlag;
pDecoder->GetOption (DECODER_OPTION_END_OF_STREAM, &iEndOfStreamFlag);
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
} else if (strTag[0].compare ("TargetDQID") == 0) {
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) {
sDecParam.eEcActiveIdc = (ERROR_CON_IDC)atol (strTag[1].c_str());
} else if (strTag[0].compare ("CPULoad") == 0) {
@ -394,7 +384,6 @@ int32_t main (int32_t iArgC, char* pArgV[]) {
} else if (strstr (pArgV[1],
".264")) { // no output dump yuv file, just try to render the decoded pictures //confirmed_safe_unsafe_usage
strInputFile = pArgV[1];
sDecParam.eOutputColorFormat = videoFormatI420;
sDecParam.uiTargetDqLayer = (uint8_t) - 1;
sDecParam.eEcActiveIdc = ERROR_CON_SLICE_COPY;
sDecParam.sVideoProperty.eVideoBsType = VIDEO_BITSTREAM_DEFAULT;
@ -402,7 +391,6 @@ int32_t main (int32_t iArgC, char* pArgV[]) {
} else { //iArgC > 2
strInputFile = pArgV[1];
strOutputFile = pArgV[2];
sDecParam.eOutputColorFormat = videoFormatI420;
sDecParam.uiTargetDqLayer = (uint8_t) - 1;
sDecParam.eEcActiveIdc = ERROR_CON_SLICE_COPY;
sDecParam.sVideoProperty.eVideoBsType = VIDEO_BITSTREAM_DEFAULT;

View File

@ -114,11 +114,6 @@ int32_t WelsRequestMem (PWelsDecoderContext pCtx, const int32_t kiMbWidth, const
*/
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)
* over decoder internal

View File

@ -242,7 +242,6 @@ typedef struct TagWelsDecoderContext {
SDecodingParam* pParam;
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.
bool bHaveGotMemory; // global memory for decoder context related ever requested?

View File

@ -283,7 +283,6 @@ void WelsDecoderDefaults (PWelsDecoderContext pCtx, SLogContext* pLogCtx, CMemor
pCtx->pArgDec = NULL;
pCtx->eOutputColorFormat = videoFormatI420; // yuv in default
pCtx->bHaveGotMemory = false; // not ever request memory blocks for decoder context related
pCtx->uiCpuFlag = 0;
@ -530,12 +529,6 @@ int32_t DecoderConfigParam (PWelsDecoderContext pCtx, const SDecodingParam* kpPa
return 1;
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)
|| (pCtx->pParam->eEcActiveIdc < ERROR_CON_DISABLE)) {
WelsLog (& (pCtx->sLogCtx), WELS_LOG_WARNING,
@ -803,29 +796,6 @@ int32_t WelsDecodeBs (PWelsDecoderContext pCtx, const uint8_t* kpBsBuf, const in
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)
* over decoder internal

View File

@ -289,20 +289,7 @@ long CWelsDecoder::SetOption (DECODER_OPTION eOptID, void* pOption) {
if (m_pDecContext == NULL && eOptID != DECODER_OPTION_TRACE_LEVEL &&
eOptID != DECODER_OPTION_TRACE_CALLBACK && eOptID != DECODER_OPTION_TRACE_CALLBACK_CONTEXT)
return dsInitialOptExpected;
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 (eOptID == DECODER_OPTION_END_OF_STREAM) { // Indicate bit-stream of the final frame to be decoded
if (pOption == NULL)
return cmInitParaError;
@ -371,11 +358,7 @@ long CWelsDecoder::GetOption (DECODER_OPTION eOptID, void* pOption) {
if (pOption == NULL)
return cmInitParaError;
if (DECODER_OPTION_DATAFORMAT == eOptID) {
iVal = (int32_t) m_pDecContext->eOutputColorFormat;
* ((int*)pOption) = iVal;
return cmResultSuccess;
} else if (DECODER_OPTION_END_OF_STREAM == eOptID) {
if (DECODER_OPTION_END_OF_STREAM == eOptID) {
iVal = m_pDecContext->bEndOfStreamFlag;
* ((int*)pOption) = iVal;
return cmResultSuccess;

View File

@ -622,7 +622,6 @@ class OpenH264VideoDecoder : public GMPVideoDecoder, public RefCounted {
SDecodingParam param;
memset (&param, 0, sizeof (param));
param.eOutputColorFormat = videoFormatI420;
param.uiTargetDqLayer = UCHAR_MAX; // Default value
param.eEcActiveIdc = ERROR_CON_SLICE_MV_COPY_CROSS_IDR_FREEZE_RES_CHANGE; // Error concealment on.
param.sVideoProperty.size = sizeof(param.sVideoProperty);

View File

@ -53,7 +53,6 @@ void BaseDecoderTest::SetUp() {
SDecodingParam decParam;
memset (&decParam, 0, sizeof (SDecodingParam));
decParam.eOutputColorFormat = videoFormatI420;
decParam.uiTargetDqLayer = UCHAR_MAX;
decParam.eEcActiveIdc = ERROR_CON_SLICE_COPY;
decParam.sVideoProperty.eVideoBsType = VIDEO_BITSTREAM_DEFAULT;

View File

@ -500,7 +500,7 @@ void EncodeDecodeTestAPIBase::ValidateParamExtCombination() {
//for slice mode = SM_RASTER_SLICE
if (SM_RASTER_SLICE == pSpatialLayer->sSliceArgument.uiSliceMode) {
if (0!=pSpatialLayer->sSliceArgument.uiSliceMbNum[0]) {
if (0 != pSpatialLayer->sSliceArgument.uiSliceMbNum[0]) {
SliceParamValidationForMode2 (iSpatialIdx);
} else {
SliceParamValidationForMode3 (iSpatialIdx);
@ -1069,7 +1069,6 @@ TEST_P (EncodeDecodeTestAPI, SetOptionECFlag_ERROR_CON_DISABLE) {
}
SDecodingParam decParam;
memset (&decParam, 0, sizeof (SDecodingParam));
decParam.eOutputColorFormat = videoFormatI420;
decParam.uiTargetDqLayer = UCHAR_MAX;
decParam.eEcActiveIdc = ERROR_CON_DISABLE;
decParam.sVideoProperty.eVideoBsType = VIDEO_BITSTREAM_DEFAULT;
@ -2422,7 +2421,6 @@ TEST_F (DecodeCrashTestAPI, DecoderCrashTest) {
SDecodingParam decParam;
memset (&decParam, 0, sizeof (SDecodingParam));
decParam.eOutputColorFormat = videoFormatI420;
decParam.uiTargetDqLayer = UCHAR_MAX;
decParam.eEcActiveIdc = ERROR_CON_SLICE_COPY;
decParam.sVideoProperty.eVideoBsType = VIDEO_BITSTREAM_DEFAULT;
@ -2526,7 +2524,6 @@ class DecodeParseAPI : public ::testing::TestWithParam<EncodeDecodeFileParamBase
decoder_->Uninitialize();
SDecodingParam decParam;
memset (&decParam, 0, sizeof (SDecodingParam));
decParam.eOutputColorFormat = videoFormatRGB;
decParam.uiTargetDqLayer = UCHAR_MAX;
decParam.eEcActiveIdc = ERROR_CON_SLICE_COPY;
decParam.bParseOnly = true;
@ -3182,7 +3179,6 @@ TEST_F (EncodeDecodeTestAPI, SimulcastSVC) {
SDecodingParam decParam;
memset (&decParam, 0, sizeof (SDecodingParam));
decParam.eOutputColorFormat = videoFormatI420;
decParam.uiTargetDqLayer = UCHAR_MAX;
decParam.eEcActiveIdc = ERROR_CON_SLICE_COPY;
decParam.sVideoProperty.eVideoBsType = VIDEO_BITSTREAM_DEFAULT;
@ -3300,7 +3296,6 @@ TEST_F (EncodeDecodeTestAPI, SimulcastAVC) {
SDecodingParam decParam;
memset (&decParam, 0, sizeof (SDecodingParam));
decParam.eOutputColorFormat = videoFormatI420;
decParam.uiTargetDqLayer = UCHAR_MAX;
decParam.eEcActiveIdc = ERROR_CON_SLICE_COPY;
decParam.sVideoProperty.eVideoBsType = VIDEO_BITSTREAM_DEFAULT;
@ -3377,8 +3372,8 @@ TEST_F (EncodeDecodeTestAPI, SimulcastAVC_SPS_PPS_LISTING) {
float fFrameRate = rand() + 0.5f;
int iEncFrameNum = WelsClip3 ((rand() % ENCODE_FRAME_NUM) + 1, 1, ENCODE_FRAME_NUM);
int iSliceNum = 1;
iWidth = VALID_SIZE(iWidth);
iHeight = VALID_SIZE(iHeight);
iWidth = VALID_SIZE (iWidth);
iHeight = VALID_SIZE (iHeight);
// prepare params
SEncParamExt sParam1;
SEncParamExt sParam2;
@ -3414,7 +3409,6 @@ TEST_F (EncodeDecodeTestAPI, SimulcastAVC_SPS_PPS_LISTING) {
SDecodingParam decParam;
memset (&decParam, 0, sizeof (SDecodingParam));
decParam.eOutputColorFormat = videoFormatI420;
decParam.uiTargetDqLayer = UCHAR_MAX;
decParam.eEcActiveIdc = ERROR_CON_SLICE_COPY;
decParam.sVideoProperty.eVideoBsType = VIDEO_BITSTREAM_DEFAULT;
@ -3533,7 +3527,7 @@ TEST_P (EncodeTestAPI, SetEncOptionSize) {
param_.sSpatialLayers[0].iVideoHeight = p.iHeight;
param_.sSpatialLayers[0].fFrameRate = p.fFramerate;
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;
}
@ -3554,7 +3548,7 @@ TEST_P (EncodeTestAPI, SetEncOptionSize) {
unsigned char* pData[3] = { NULL };
//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;
}
@ -3635,7 +3629,6 @@ TEST_F (EncodeDecodeTestAPI, SimulcastAVCDiffFps) {
SDecodingParam decParam;
memset (&decParam, 0, sizeof (SDecodingParam));
decParam.eOutputColorFormat = videoFormatI420;
decParam.uiTargetDqLayer = UCHAR_MAX;
decParam.eEcActiveIdc = ERROR_CON_SLICE_COPY;
decParam.sVideoProperty.eVideoBsType = VIDEO_BITSTREAM_DEFAULT;
@ -3729,7 +3722,8 @@ TEST_F (EncodeDecodeTestAPI, SimulcastAVCDiffFps) {
TEST_F (EncodeDecodeTestAPI, DiffSlicingInDlayer) {
int iSpatialLayerNum = 3;
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;
int iEncFrameNum = WelsClip3 ((rand() % ENCODE_FRAME_NUM) + 1, 1, ENCODE_FRAME_NUM);
@ -3774,7 +3768,6 @@ TEST_F (EncodeDecodeTestAPI, DiffSlicingInDlayer) {
SDecodingParam decParam;
memset (&decParam, 0, sizeof (SDecodingParam));
decParam.eOutputColorFormat = videoFormatI420;
decParam.uiTargetDqLayer = UCHAR_MAX;
decParam.eEcActiveIdc = ERROR_CON_SLICE_COPY;
decParam.sVideoProperty.eVideoBsType = VIDEO_BITSTREAM_DEFAULT;
@ -3838,7 +3831,6 @@ TEST_F (EncodeDecodeTestAPI, DiffSlicingInDlayerMixed) {
SDecodingParam decParam;
memset (&decParam, 0, sizeof (SDecodingParam));
decParam.eOutputColorFormat = videoFormatI420;
decParam.uiTargetDqLayer = UCHAR_MAX;
decParam.eEcActiveIdc = ERROR_CON_SLICE_COPY;
decParam.sVideoProperty.eVideoBsType = VIDEO_BITSTREAM_DEFAULT;
@ -3899,7 +3891,6 @@ TEST_F (EncodeDecodeTestAPI, ThreadNumAndSliceNum) {
SDecodingParam decParam;
memset (&decParam, 0, sizeof (SDecodingParam));
decParam.eOutputColorFormat = videoFormatI420;
decParam.uiTargetDqLayer = UCHAR_MAX;
decParam.eEcActiveIdc = ERROR_CON_SLICE_COPY;
decParam.sVideoProperty.eVideoBsType = VIDEO_BITSTREAM_DEFAULT;
@ -3961,7 +3952,6 @@ TEST_F (EncodeDecodeTestAPI, TriggerLoadBalancing) {
SDecodingParam decParam;
memset (&decParam, 0, sizeof (SDecodingParam));
decParam.eOutputColorFormat = videoFormatI420;
decParam.uiTargetDqLayer = UCHAR_MAX;
decParam.eEcActiveIdc = ERROR_CON_SLICE_COPY;
decParam.sVideoProperty.eVideoBsType = VIDEO_BITSTREAM_DEFAULT;

View File

@ -50,7 +50,6 @@ TEST_F (EncodeDecodeTestAPI, LogEncoding) {
SDecodingParam decParam;
memset (&decParam, 0, sizeof (SDecodingParam));
decParam.eOutputColorFormat = videoFormatI420;
decParam.uiTargetDqLayer = UCHAR_MAX;
decParam.eEcActiveIdc = ERROR_CON_SLICE_COPY;
decParam.sVideoProperty.eVideoBsType = VIDEO_BITSTREAM_DEFAULT;
@ -139,4 +138,4 @@ TEST_F (EncodeDecodeTestAPI, LogEncoding) {
fclose (fEnc[i]);
}
#endif
}
}

View File

@ -34,8 +34,6 @@ class DecoderInterfaceTest : public ::testing::Test {
void DecoderBs (const char* sFileName);
//Test Initialize/Uninitialize
void TestInitUninit();
//DECODER_OPTION_DATAFORMAT
void TestDataFormat();
//DECODER_OPTION_END_OF_STREAM
void TestEndOfStream();
//DECODER_OPTION_VCL_NAL
@ -78,7 +76,6 @@ void DecoderInterfaceTest::Init() {
memset (&m_sBufferInfo, 0, sizeof (SBufferInfo));
memset (&m_sDecParam, 0, sizeof (SDecodingParam));
m_sDecParam.pFileNameRestructed = NULL;
m_sDecParam.eOutputColorFormat = (EVideoFormatType) (rand() % 100);
m_sDecParam.uiCpuLoad = rand() % 100;
m_sDecParam.uiTargetDqLayer = rand() % 100;
m_sDecParam.eEcActiveIdc = (ERROR_CON_IDC) (rand() & 7);
@ -90,11 +87,7 @@ void DecoderInterfaceTest::Init() {
m_szBuffer[3] = 1;
m_iBufLength = 4;
CM_RETURN eRet = (CM_RETURN) m_pDec->Initialize (&m_sDecParam);
if ((m_sDecParam.eOutputColorFormat != videoFormatI420) &&
(m_sDecParam.eOutputColorFormat != videoFormatInternal))
ASSERT_EQ (eRet, cmUnsupportedData);
else
ASSERT_EQ (eRet, cmResultSuccess);
ASSERT_EQ (eRet, cmResultSuccess);
}
void DecoderInterfaceTest::Uninit() {
@ -210,12 +203,8 @@ void DecoderInterfaceTest::TestInitUninit() {
EXPECT_EQ (eRet, cmInitExpected);
}
//Initialize first, can get input color format
m_sDecParam.eOutputColorFormat = (EVideoFormatType) 20; //just for test
m_sDecParam.bParseOnly = false;
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
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
void DecoderInterfaceTest::TestEndOfStream() {
int iTmp, iOut;
@ -515,8 +478,6 @@ TEST_F (DecoderInterfaceTest, DecoderInterfaceAll) {
//Initialize Uninitialize
TestInitUninit();
//DECODER_OPTION_DATAFORMAT
TestDataFormat();
//DECODER_OPTION_END_OF_STREAM
TestEndOfStream();
//DECODER_OPTION_VCL_NAL

View File

@ -157,7 +157,6 @@ void DecoderParseSyntaxTest::Init() {
memset (&m_sDecParam, 0, sizeof (SDecodingParam));
memset (&m_sParserBsInfo, 0, sizeof (SParserBsInfo));
m_sDecParam.pFileNameRestructed = NULL;
m_sDecParam.eOutputColorFormat = videoFormatI420;
m_sDecParam.uiCpuLoad = rand() % 100;
m_sDecParam.uiTargetDqLayer = rand() % 100;
m_sDecParam.eEcActiveIdc = (ERROR_CON_IDC)7;