History

add single function for new seq detection

huili2 committed 12 years ago

Commit 7c6debb1 parent 3e258ea2 files · +14 −2Browse files

Showing the changes to codec/decoder (2 of 2 files). Show all

Unified · Split

2 files
  1. codec/decoder/core/inc/au_parser.h +2 −0
  2. codec/decoder/core/src/au_parser.cpp +12 −2
codec/decoder/core/inc/au_parser.h+2−0
@@ -96,6 +96,8 @@ bool CheckAccessUnitBoundary (PWelsDecoderContext pCtx, const PNalUnit kpCurNal, · 95 unmodified lines
9696 const PSps kpSps);
9797 bool CheckAccessUnitBoundaryExt (PNalUnitHeaderExt pLastNalHdrExt, PNalUnitHeaderExt pCurNalHeaderExt,
9898 PSliceHeader pLastSliceHeader, PSliceHeader pCurSliceHeader);
99+bool CheckNextAuNewSeq (PWelsDecoderContext pCtx, const PNalUnit kpCurNal, const PSps kpSps);
100+
99101 /*!
100102 *************************************************************************************
101103 * \brief to parse Sequence Parameter Set (SPS)
codec/decoder/core/src/au_parser.cpp+12−2
@@ -331,7 +331,7 @@ uint8_t* ParseNalHeader (PWelsDecoderContext pCtx, SNalUnitHeader* pNalUnitHeade · 330 unmodified lines
331331 pCurAu->pNalUnitsList[uiAvailNalNum - 1]->sNalData.sVclNal.sSliceHeaderExt.sSliceHeader.pSps)) {
332332 pCurAu->uiEndPos = uiAvailNalNum - 2;
333333 pCtx->bAuReadyFlag = true;
334−
334+ pCtx->bNextNewSeqBegin = CheckNextAuNewSeq (pCtx, pCurNal, pCurNal->sNalData.sVclNal.sSliceHeaderExt.sSliceHeader.pSps);
335335
336336 }
337337 }
@@ -411,7 +411,6 @@ bool CheckAccessUnitBoundary (PWelsDecoderContext pCtx, const PNalUnit kpCurNal, · 73 unmodified lines
411411 const SSliceHeader* kpCurSliceHeader = &kpCurNal->sNalData.sVclNal.sSliceHeaderExt.sSliceHeader;
412412 if (pCtx->pActiveLayerSps[kpCurNalHeaderExt->uiDependencyId] != NULL
413413 && pCtx->pActiveLayerSps[kpCurNalHeaderExt->uiDependencyId] != kpSps) {
414− pCtx->bNextNewSeqBegin = true;
415414 return true; // the active sps changed, new sequence begins, so the current au is ready
416415 }
417416
@@ -460,6 +459,17 @@ bool CheckAccessUnitBoundary (PWelsDecoderContext pCtx, const PNalUnit kpCurNal, · 42 unmodified lines
460459 return false;
461460 }
462461
462+bool CheckNextAuNewSeq (PWelsDecoderContext pCtx, const PNalUnit kpCurNal, const PSps kpSps) {
463+ const PNalUnitHeaderExt kpCurNalHeaderExt = &kpCurNal->sNalHeaderExt;
464+ if (pCtx->pActiveLayerSps[kpCurNalHeaderExt->uiDependencyId] != NULL
465+ && pCtx->pActiveLayerSps[kpCurNalHeaderExt->uiDependencyId] != kpSps)
466+ return true;
467+ if (kpCurNalHeaderExt->bIdrFlag)
468+ return true;
469+
470+ return false;
471+}
472+
463473 /*!
464474 *************************************************************************************
465475 * \brief to parse NON VCL NAL Units

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