| 591 | |
| 592 | #if defined(MT_DEBUG) |
| 593 | void TrackSliceConsumeTime (sWelsEncCtx* pCtx, int32_t* pDidList, const int32_t iSpatialNum) { |
| 594 | SWelsSvcCodingParam* pPara = NULL; |
| 595 | int32_t iSpatialIdx = 0; |
| 596 | |
| 597 | if (iSpatialNum > MAX_DEPENDENCY_LAYER) |
| 598 | return; |
| 599 | |
| 600 | pPara = pCtx->pSvcParam; |
| 601 | while (iSpatialIdx < iSpatialNum) { |
| 602 | const int32_t kiDid = pDidList[iSpatialIdx]; |
| 603 | SSliceArgument* pSliceArgument = &pPara->sSpatialLayers[kiDid].sSliceArgument; |
| 604 | SDqLayer* pCurDq = pCtx->ppDqLayerList[kiDid]; |
| 605 | SSlice** ppSliceInLayer = pCurDq->ppSliceInLayer; |
| 606 | SSliceCtx* pSliceCtx = &pCurDq->sSliceEncCtx; |
| 607 | const uint32_t kuiCountSliceNum = pSliceCtx->iSliceNumInFrame; |
| 608 | if (pCtx->pSliceThreading) { |
| 609 | if (pCtx->pSliceThreading->pFSliceDiff |
| 610 | && ((pSliceArgument->uiSliceMode == SM_FIXEDSLCNUM_SLICE) || (pSliceArgument->uiSliceMode == SM_SIZELIMITED_SLICE)) |
| 611 | && pPara->iMultipleThreadIdc > 1 |
| 612 | && pPara->iMultipleThreadIdc >= kuiCountSliceNum) { |
| 613 | uint32_t i = 0; |
| 614 | uint32_t uiMaxT = 0; |
| 615 | int32_t iMaxI = 0; |
| 616 | while (i < kuiCountSliceNum) { |
| 617 | fprintf (pCtx->pSliceThreading->pFSliceDiff, "%6d us consume_time coding_idx %d iDid %d pSlice %d\n", |
| 618 | ppSliceInLayer[i]->uiSliceConsumeTime, pCtx->iCodingIndex, kiDid, i /*/ 1000*/); |
| 619 | if (ppSliceInLayer[i]->uiSliceConsumeTime > uiMaxT) { |
| 620 | uiMaxT = ppSliceInLayer[i]->uiSliceConsumeTime; |
| 621 | iMaxI = i; |
| 622 | } |
| 623 | ++ i; |
| 624 | } |
| 625 | fprintf (pCtx->pSliceThreading->pFSliceDiff, "%6d us consume_time_max coding_idx %d iDid %d pSlice %d\n", uiMaxT, |
| 626 | pCtx->iCodingIndex, kiDid, iMaxI /*/ 1000*/); |
| 627 | } |
| 628 | } |
| 629 | ++ iSpatialIdx; |
| 630 | } |
| 631 | } |
| 632 | #endif//#if defined(MT_DEBUG) |
| 633 | |
| 634 | void SetOneSliceBsBufferUnderMultithread (sWelsEncCtx* pCtx, const int32_t kiThreadIdx, SSlice* pSlice) { |
no outgoing calls
no test coverage detected