| 606 | } |
| 607 | |
| 608 | int32_t FindExistingPps (SWelsSPS* pSps, SSubsetSps* pSubsetSps, const bool kbUseSubsetSps, const int32_t iSpsId, |
| 609 | const bool kbEntropyCodingFlag, const int32_t iPpsNumInUse, |
| 610 | SWelsPPS* pPpsArray) { |
| 611 | #if !defined(DISABLE_FMO_FEATURE) |
| 612 | // feature not supported yet |
| 613 | return INVALID_ID; |
| 614 | #endif//!DISABLE_FMO_FEATURE |
| 615 | |
| 616 | SWelsPPS sTmpPps; |
| 617 | WelsInitPps (&sTmpPps, |
| 618 | pSps, |
| 619 | pSubsetSps, |
| 620 | 0, |
| 621 | true, |
| 622 | kbUseSubsetSps, |
| 623 | kbEntropyCodingFlag); |
| 624 | |
| 625 | assert (iPpsNumInUse <= MAX_PPS_COUNT); |
| 626 | for (int32_t iId = 0; iId < iPpsNumInUse; iId++) { |
| 627 | if ((sTmpPps.iSpsId == pPpsArray[iId].iSpsId) |
| 628 | && (sTmpPps.bEntropyCodingModeFlag == pPpsArray[iId].bEntropyCodingModeFlag) |
| 629 | && (sTmpPps.iPicInitQp == pPpsArray[iId].iPicInitQp) |
| 630 | && (sTmpPps.iPicInitQs == pPpsArray[iId].iPicInitQs) |
| 631 | && (sTmpPps.uiChromaQpIndexOffset == pPpsArray[iId].uiChromaQpIndexOffset) |
| 632 | && (sTmpPps.bDeblockingFilterControlPresentFlag == pPpsArray[iId].bDeblockingFilterControlPresentFlag) |
| 633 | ) { |
| 634 | return iId; |
| 635 | } |
| 636 | } |
| 637 | |
| 638 | return INVALID_ID; |
| 639 | } |
| 640 | |
| 641 | uint32_t CWelsParametersetSpsPpsListing::InitPps (sWelsEncCtx* pCtx, uint32_t kiSpsId, |
| 642 | SWelsSPS* pSps, |