History

fix new sequence&EC order, and prefix parse bug

huili2 committed 12 years ago

Commit 5e6ef171 parent c27c02b4 files · +20 −14Browse files

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

Unified · Split

codec/decoder/core/src/au_parser.cpp+16−9
@@ -188,12 +188,14 @@ uint8_t* ParseNalHeader (PWelsDecoderContext pCtx, SNalUnitHeader* pNalUnitHeade · 187 unmodified lines
188 188
189 PAccessUnit pCurAu = pCtx->pAccessUnitList;189 PAccessUnit pCurAu = pCtx->pAccessUnitList;
190 uint32_t uiAvailNalNum = pCurAu->uiAvailUnitsNum;190 uint32_t uiAvailNalNum = pCurAu->uiAvailUnitsNum;
191 ForceClearCurrentNal (pCurAu);
192 191
193 if (uiAvailNalNum > 1) {192 if (uiAvailNalNum > 0) {
194 pCurAu->uiEndPos = uiAvailNalNum - 2;193 pCurAu->uiEndPos = uiAvailNalNum - 1;
195 pCtx->bAuReadyFlag = true;194 if (pCtx->iErrorConMethod == ERROR_CON_DISABLE) {
195 pCtx->bAuReadyFlag = true;
196 }
196 }197 }
198 pCurNal->sNalData.sPrefixNal.bPrefixNalCorrectFlag = false;
197 return NULL;199 return NULL;
198 }200 }
199 201
@@ -204,12 +206,14 @@ uint8_t* ParseNalHeader (PWelsDecoderContext pCtx, SNalUnitHeader* pNalUnitHeade · 4 unmodified lines
204 pCurNal->sNalHeaderExt.uiQualityId, pCurNal->sNalHeaderExt.bUseRefBasePicFlag);206 pCurNal->sNalHeaderExt.uiQualityId, pCurNal->sNalHeaderExt.bUseRefBasePicFlag);
205 PAccessUnit pCurAu = pCtx->pAccessUnitList;207 PAccessUnit pCurAu = pCtx->pAccessUnitList;
206 uint32_t uiAvailNalNum = pCurAu->uiAvailUnitsNum;208 uint32_t uiAvailNalNum = pCurAu->uiAvailUnitsNum;
207 ForceClearCurrentNal (pCurAu);
208 209
209 if (uiAvailNalNum > 1) {210 if (uiAvailNalNum > 0) {
210 pCurAu->uiEndPos = uiAvailNalNum - 2;211 pCurAu->uiEndPos = uiAvailNalNum - 1;
211 pCtx->bAuReadyFlag = true;212 if (pCtx->iErrorConMethod == ERROR_CON_DISABLE) {
213 pCtx->bAuReadyFlag = true;
214 }
212 }215 }
216 pCurNal->sNalData.sPrefixNal.bPrefixNalCorrectFlag = false;
213 pCtx->iErrorCode |= dsInvalidArgument;217 pCtx->iErrorCode |= dsInvalidArgument;
214 return NULL;218 return NULL;
215 }219 }
@@ -229,6 +233,7 @@ uint8_t* ParseNalHeader (PWelsDecoderContext pCtx, SNalUnitHeader* pNalUnitHeade · 13 unmodified lines
229 InitBits (pBs, pNal, iBitSize);233 InitBits (pBs, pNal, iBitSize);
230 234
231 ParsePrefixNalUnit (pCtx, pBs);235 ParsePrefixNalUnit (pCtx, pBs);
236 pCurNal->sNalData.sPrefixNal.bPrefixNalCorrectFlag = true;
232 237
233 break;238 break;
234 case NAL_UNIT_CODED_SLICE_EXT:239 case NAL_UNIT_CODED_SLICE_EXT:
@@ -291,7 +296,9 @@ uint8_t* ParseNalHeader (PWelsDecoderContext pCtx, SNalUnitHeader* pNalUnitHeade · 56 unmodified lines
291 296
292 297
293 if (NAL_UNIT_PREFIX == pCtx->sPrefixNal.sNalHeaderExt.sNalUnitHeader.eNalUnitType) {298 if (NAL_UNIT_PREFIX == pCtx->sPrefixNal.sNalHeaderExt.sNalUnitHeader.eNalUnitType) {
294 PrefetchNalHeaderExtSyntax (pCtx, pCurNal, &pCtx->sPrefixNal);299 if (pCtx->sPrefixNal.sNalData.sPrefixNal.bPrefixNalCorrectFlag) {
300 PrefetchNalHeaderExtSyntax (pCtx, pCurNal, &pCtx->sPrefixNal);
301 }
295 }302 }
296 303
297 pCurNal->sNalHeaderExt.bIdrFlag = (NAL_UNIT_CODED_SLICE_IDR == pNalUnitHeader->eNalUnitType) ? true :304 pCurNal->sNalHeaderExt.bIdrFlag = (NAL_UNIT_CODED_SLICE_IDR == pNalUnitHeader->eNalUnitType) ? true :

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