* DecodeNalHeaderExt * Trigger condition: NAL_UNIT_TYPE = NAL_UNIT_PREFIX or NAL_UNIT_CODED_SLICE_EXT * Parameter: * pNal: target NALUnit ptr * pSrc: NAL Unit bitstream */
| 829 | * pSrc: NAL Unit bitstream |
| 830 | */ |
| 831 | void DecodeNalHeaderExt (PNalUnit pNal, uint8_t* pSrc) { |
| 832 | PNalUnitHeaderExt pHeaderExt = &pNal->sNalHeaderExt; |
| 833 | |
| 834 | uint8_t uiCurByte = *pSrc; |
| 835 | pHeaderExt->bIdrFlag = !! (uiCurByte & 0x40); |
| 836 | pHeaderExt->uiPriorityId = uiCurByte & 0x3F; |
| 837 | |
| 838 | uiCurByte = * (++pSrc); |
| 839 | pHeaderExt->iNoInterLayerPredFlag = uiCurByte >> 7; |
| 840 | pHeaderExt->uiDependencyId = (uiCurByte & 0x70) >> 4; |
| 841 | pHeaderExt->uiQualityId = uiCurByte & 0x0F; |
| 842 | uiCurByte = * (++pSrc); |
| 843 | pHeaderExt->uiTemporalId = uiCurByte >> 5; |
| 844 | pHeaderExt->bUseRefBasePicFlag = !! (uiCurByte & 0x10); |
| 845 | pHeaderExt->bDiscardableFlag = !! (uiCurByte & 0x08); |
| 846 | pHeaderExt->bOutputFlag = !! (uiCurByte & 0x04); |
| 847 | pHeaderExt->uiReservedThree2Bits = uiCurByte & 0x03; |
| 848 | pHeaderExt->uiLayerDqId = (pHeaderExt->uiDependencyId << 4) | pHeaderExt->uiQualityId; |
| 849 | } |
| 850 | |
| 851 | |
| 852 | void UpdateDecoderStatisticsForActiveParaset (SDecoderStatistics* pDecoderStatistics, |