modify dec API from void to explicit type, and some comments
This commit is contained in:
@@ -109,7 +109,7 @@ class ISVCDecoder {
|
|||||||
*/
|
*/
|
||||||
virtual DECODING_STATE EXTAPI DecodeFrame2 (const unsigned char* pSrc,
|
virtual DECODING_STATE EXTAPI DecodeFrame2 (const unsigned char* pSrc,
|
||||||
const int iSrcLen,
|
const int iSrcLen,
|
||||||
void** ppDst,
|
unsigned char** ppDst,
|
||||||
SBufferInfo* pDstInfo) = 0;
|
SBufferInfo* pDstInfo) = 0;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -174,7 +174,7 @@ DECODING_STATE (*DecodeFrame) (ISVCDecoder*, const unsigned char* pSrc,
|
|||||||
|
|
||||||
DECODING_STATE (*DecodeFrame2) (ISVCDecoder*, const unsigned char* pSrc,
|
DECODING_STATE (*DecodeFrame2) (ISVCDecoder*, const unsigned char* pSrc,
|
||||||
const int iSrcLen,
|
const int iSrcLen,
|
||||||
void** ppDst,
|
unsigned char** ppDst,
|
||||||
SBufferInfo* pDstInfo);
|
SBufferInfo* pDstInfo);
|
||||||
|
|
||||||
DECODING_STATE (*DecodeFrameEx) (ISVCDecoder*, const unsigned char* pSrc,
|
DECODING_STATE (*DecodeFrameEx) (ISVCDecoder*, const unsigned char* pSrc,
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ void H264DecodeInstance (ISVCDecoder* pDecoder, const char* kpH264FileName, cons
|
|||||||
uint8_t* pBuf = NULL;
|
uint8_t* pBuf = NULL;
|
||||||
uint8_t uiStartCode[4] = {0, 0, 0, 1};
|
uint8_t uiStartCode[4] = {0, 0, 0, 1};
|
||||||
|
|
||||||
void* pData[3] = {NULL};
|
uint8_t* pData[3] = {NULL};
|
||||||
uint8_t* pDst[3] = {NULL};
|
uint8_t* pDst[3] = {NULL};
|
||||||
SBufferInfo sDstBufInfo;
|
SBufferInfo sDstBufInfo;
|
||||||
|
|
||||||
@@ -212,9 +212,9 @@ void H264DecodeInstance (ISVCDecoder* pDecoder, const char* kpH264FileName, cons
|
|||||||
pDecoder->DecodeFrame2 (pBuf + iBufPos, iSliceSize, pData, &sDstBufInfo);
|
pDecoder->DecodeFrame2 (pBuf + iBufPos, iSliceSize, pData, &sDstBufInfo);
|
||||||
|
|
||||||
if (sDstBufInfo.iBufferStatus == 1) {
|
if (sDstBufInfo.iBufferStatus == 1) {
|
||||||
pDst[0] = (uint8_t*)pData[0];
|
pDst[0] = pData[0];
|
||||||
pDst[1] = (uint8_t*)pData[1];
|
pDst[1] = pData[1];
|
||||||
pDst[2] = (uint8_t*)pData[2];
|
pDst[2] = pData[2];
|
||||||
}
|
}
|
||||||
iEnd = WelsTime();
|
iEnd = WelsTime();
|
||||||
iTotal += iEnd - iStart;
|
iTotal += iEnd - iStart;
|
||||||
@@ -247,9 +247,9 @@ void H264DecodeInstance (ISVCDecoder* pDecoder, const char* kpH264FileName, cons
|
|||||||
|
|
||||||
pDecoder->DecodeFrame2 (NULL, 0, pData, &sDstBufInfo);
|
pDecoder->DecodeFrame2 (NULL, 0, pData, &sDstBufInfo);
|
||||||
if (sDstBufInfo.iBufferStatus == 1) {
|
if (sDstBufInfo.iBufferStatus == 1) {
|
||||||
pDst[0] = (uint8_t*)pData[0];
|
pDst[0] = pData[0];
|
||||||
pDst[1] = (uint8_t*)pData[1];
|
pDst[1] = pData[1];
|
||||||
pDst[2] = (uint8_t*)pData[2];
|
pDst[2] = pData[2];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sDstBufInfo.iBufferStatus == 1) {
|
if (sDstBufInfo.iBufferStatus == 1) {
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ class CWelsDecoder : public ISVCDecoder {
|
|||||||
|
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
* Description:
|
* Description:
|
||||||
* Decompress one frame, and output RGB24 or YV12 decoded stream and its length.
|
* Decompress one frame, and output I420 or RGB24(in the future) decoded stream and its length.
|
||||||
* Input parameters:
|
* Input parameters:
|
||||||
* Parameter TYPE Description
|
* Parameter TYPE Description
|
||||||
* pSrc unsigned char* the h264 stream to decode
|
* pSrc unsigned char* the h264 stream to decode
|
||||||
@@ -83,7 +83,7 @@ class CWelsDecoder : public ISVCDecoder {
|
|||||||
|
|
||||||
virtual DECODING_STATE EXTAPI DecodeFrame2 (const unsigned char* kpSrc,
|
virtual DECODING_STATE EXTAPI DecodeFrame2 (const unsigned char* kpSrc,
|
||||||
const int kiSrcLen,
|
const int kiSrcLen,
|
||||||
void** ppDst,
|
unsigned char** ppDst,
|
||||||
SBufferInfo* pDstInfo);
|
SBufferInfo* pDstInfo);
|
||||||
virtual DECODING_STATE EXTAPI DecodeFrameEx (const unsigned char* kpSrc,
|
virtual DECODING_STATE EXTAPI DecodeFrameEx (const unsigned char* kpSrc,
|
||||||
const int kiSrcLen,
|
const int kiSrcLen,
|
||||||
|
|||||||
@@ -320,7 +320,7 @@ long CWelsDecoder::GetOption (DECODER_OPTION eOptID, void* pOption) {
|
|||||||
|
|
||||||
DECODING_STATE CWelsDecoder::DecodeFrame2 (const unsigned char* kpSrc,
|
DECODING_STATE CWelsDecoder::DecodeFrame2 (const unsigned char* kpSrc,
|
||||||
const int kiSrcLen,
|
const int kiSrcLen,
|
||||||
void** ppDst,
|
unsigned char** ppDst,
|
||||||
SBufferInfo* pDstInfo) {
|
SBufferInfo* pDstInfo) {
|
||||||
if (kiSrcLen > MAX_ACCESS_UNIT_CAPACITY - MAX_MACROBLOCK_CAPACITY) {//prevent from residual reading overflow
|
if (kiSrcLen > MAX_ACCESS_UNIT_CAPACITY - MAX_MACROBLOCK_CAPACITY) {//prevent from residual reading overflow
|
||||||
m_pDecContext->iErrorCode |= dsOutOfMemory;
|
m_pDecContext->iErrorCode |= dsOutOfMemory;
|
||||||
@@ -361,7 +361,7 @@ DECODING_STATE CWelsDecoder::DecodeFrame2 (const unsigned char* kpSrc,
|
|||||||
|
|
||||||
m_pDecContext->iFeedbackTidInAu = -1; //initialize
|
m_pDecContext->iFeedbackTidInAu = -1; //initialize
|
||||||
|
|
||||||
WelsDecodeBs (m_pDecContext, kpSrc, kiSrcLen, (unsigned char**)ppDst,
|
WelsDecodeBs (m_pDecContext, kpSrc, kiSrcLen, ppDst,
|
||||||
pDstInfo); //iErrorCode has been modified in this function
|
pDstInfo); //iErrorCode has been modified in this function
|
||||||
|
|
||||||
if (m_pDecContext->iErrorCode) {
|
if (m_pDecContext->iErrorCode) {
|
||||||
@@ -406,7 +406,7 @@ DECODING_STATE CWelsDecoder::DecodeFrame (const unsigned char* kpSrc,
|
|||||||
DstInfo.UsrData.sSystemBuffer.iWidth = iWidth;
|
DstInfo.UsrData.sSystemBuffer.iWidth = iWidth;
|
||||||
DstInfo.UsrData.sSystemBuffer.iHeight = iHeight;
|
DstInfo.UsrData.sSystemBuffer.iHeight = iHeight;
|
||||||
|
|
||||||
eDecState = DecodeFrame2 (kpSrc, kiSrcLen, (void**)ppDst, &DstInfo);
|
eDecState = DecodeFrame2 (kpSrc, kiSrcLen, ppDst, &DstInfo);
|
||||||
if (eDecState == dsErrorFree) {
|
if (eDecState == dsErrorFree) {
|
||||||
pStride[0] = DstInfo.UsrData.sSystemBuffer.iStride[0];
|
pStride[0] = DstInfo.UsrData.sSystemBuffer.iStride[0];
|
||||||
pStride[1] = DstInfo.UsrData.sSystemBuffer.iStride[1];
|
pStride[1] = DstInfo.UsrData.sSystemBuffer.iStride[1];
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ void BaseDecoderTest::TearDown() {
|
|||||||
|
|
||||||
|
|
||||||
void BaseDecoderTest::DecodeFrame(const uint8_t* src, int sliceSize, Callback* cbk) {
|
void BaseDecoderTest::DecodeFrame(const uint8_t* src, int sliceSize, Callback* cbk) {
|
||||||
void* data[3];
|
uint8_t* data[3];
|
||||||
SBufferInfo bufInfo;
|
SBufferInfo bufInfo;
|
||||||
memset(data, 0, sizeof(data));
|
memset(data, 0, sizeof(data));
|
||||||
memset(&bufInfo, 0, sizeof(SBufferInfo));
|
memset(&bufInfo, 0, sizeof(SBufferInfo));
|
||||||
@@ -82,19 +82,19 @@ void BaseDecoderTest::DecodeFrame(const uint8_t* src, int sliceSize, Callback* c
|
|||||||
if (bufInfo.iBufferStatus == 1 && cbk != NULL) {
|
if (bufInfo.iBufferStatus == 1 && cbk != NULL) {
|
||||||
const Frame frame = {
|
const Frame frame = {
|
||||||
{ // y plane
|
{ // y plane
|
||||||
static_cast<uint8_t*>(data[0]),
|
data[0],
|
||||||
bufInfo.UsrData.sSystemBuffer.iWidth,
|
bufInfo.UsrData.sSystemBuffer.iWidth,
|
||||||
bufInfo.UsrData.sSystemBuffer.iHeight,
|
bufInfo.UsrData.sSystemBuffer.iHeight,
|
||||||
bufInfo.UsrData.sSystemBuffer.iStride[0]
|
bufInfo.UsrData.sSystemBuffer.iStride[0]
|
||||||
},
|
},
|
||||||
{ // u plane
|
{ // u plane
|
||||||
static_cast<uint8_t*>(data[1]),
|
data[1],
|
||||||
bufInfo.UsrData.sSystemBuffer.iWidth / 2,
|
bufInfo.UsrData.sSystemBuffer.iWidth / 2,
|
||||||
bufInfo.UsrData.sSystemBuffer.iHeight / 2,
|
bufInfo.UsrData.sSystemBuffer.iHeight / 2,
|
||||||
bufInfo.UsrData.sSystemBuffer.iStride[1]
|
bufInfo.UsrData.sSystemBuffer.iStride[1]
|
||||||
},
|
},
|
||||||
{ // v plane
|
{ // v plane
|
||||||
static_cast<uint8_t*>(data[2]),
|
data[2],
|
||||||
bufInfo.UsrData.sSystemBuffer.iWidth / 2,
|
bufInfo.UsrData.sSystemBuffer.iWidth / 2,
|
||||||
bufInfo.UsrData.sSystemBuffer.iHeight / 2,
|
bufInfo.UsrData.sSystemBuffer.iHeight / 2,
|
||||||
bufInfo.UsrData.sSystemBuffer.iStride[1]
|
bufInfo.UsrData.sSystemBuffer.iStride[1]
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ struct SVCDecoderImpl : public ISVCDecoder {
|
|||||||
return static_cast<DECODING_STATE>(3);
|
return static_cast<DECODING_STATE>(3);
|
||||||
}
|
}
|
||||||
virtual DECODING_STATE EXTAPI DecodeFrame2(const unsigned char* pSrc,
|
virtual DECODING_STATE EXTAPI DecodeFrame2(const unsigned char* pSrc,
|
||||||
const int iSrcLen, void** ppDst, SBufferInfo* pDstInfo) {
|
const int iSrcLen, unsigned char** ppDst, SBufferInfo* pDstInfo) {
|
||||||
EXPECT_TRUE(gThis == this);
|
EXPECT_TRUE(gThis == this);
|
||||||
return static_cast<DECODING_STATE>(4);
|
return static_cast<DECODING_STATE>(4);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user