History

add decoder cabac support and add UT

dong zhang committed 12 years ago

Commit cf857451 parent c7b505132 files · +2615 −470Browse files

Showing the changes to codec/decoder/core/src/bit_stream.cpp (1 of 32 files). Show all

Unified · Split

codec/decoder/core/src/bit_stream.cpp+13−7
@@ -38,6 +38,7 @@ · 37 unmodified lines
3838 *************************************************************************************
3939 */
4040 #include "bit_stream.h"
41+#include "error_code.h"
4142
4243 namespace WelsDec {
4344
@@ -47,10 +48,14 @@ inline uint32_t GetValue4Bytes (uint8_t* pDstNal) { · 3 unmodified lines
4748 return uiValue;
4849 }
4950
50−void InitReadBits (PBitStringAux pBitString) {
51+int32_t InitReadBits (PBitStringAux pBitString, intX_t iEndOffset) {
52+ if(pBitString->pCurBuf>=(pBitString->pEndBuf - iEndOffset)) {
53+ return ERR_INFO_INVALID_ACCESS;
54+ }
5155 pBitString->uiCurBits = GetValue4Bytes (pBitString->pCurBuf);
5256 pBitString->pCurBuf += 4;
5357 pBitString->iLeftBits = -16;
58+ return ERR_NONE;
5459 }
5560
5661 /*!
@@ -60,23 +65,24 @@ void InitReadBits (PBitStringAux pBitString) { · 3 unmodified lines
6065 * \param kpBuf bit-stream buffer
6166 * \param kiSize size in bits for decoder; size in bytes for encoder
6267 *
63− * \return size of buffer data in byte; failed in -1 return
68+ * \return 0: success, other: fail
6469 */
6570 int32_t InitBits (PBitStringAux pBitString, const uint8_t* kpBuf, const int32_t kiSize) {
6671 const int32_t kiSizeBuf = (kiSize + 7) >> 3;
6772 uint8_t* pTmp = (uint8_t*)kpBuf;
6873
6974 if (NULL == pTmp)
70− return -1;
75+ return ERR_INFO_INVALID_ACCESS;
7176
7277 pBitString->pStartBuf = pTmp; // buffer to start position
7378 pBitString->pEndBuf = pTmp + kiSizeBuf; // buffer + length
7479 pBitString->iBits = kiSize; // count bits of overall bitstreaming inputindex;
75−
7680 pBitString->pCurBuf = pBitString->pStartBuf;
77− InitReadBits (pBitString);
78−
79− return kiSizeBuf;
81+ int32_t iErr = InitReadBits (pBitString, 0);
82+ if(iErr) {
83+ return iErr;
84+ }
85+ return ERR_NONE;
8086 }
8187
8288 } // namespace WelsDec

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t