Changeset 1096 in SHVCSoftware for branches/SHM-dev/source/Lib/TLibDecoder/SEIread.cpp
- Timestamp:
- 2 Jul 2015, 22:35:17 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/SHM-dev/source/Lib/TLibDecoder/SEIread.cpp
r1037 r1096 350 350 xParseSEIBspInitialArrivalTime((SEIBspInitialArrivalTime&) *sei, vps, sps, *nestingSei, *bspNestingSei, pDecodedMessageOutputStream); 351 351 break; 352 #if !REMOVE_BSP_HRD_SEI353 case SEI::BSP_HRD:354 sei = new SEIBspHrd;355 xParseSEIBspHrd((SEIBspHrd&) *sei, sps, *nestingSei, pDecodedMessageOutputStream);356 break;357 #endif358 352 #endif 359 353 #if Q0078_ADD_LAYER_SETS … … 1664 1658 } 1665 1659 1666 #if !REMOVE_BSP_HRD_SEI1667 Void SEIReader::xParseSEIBspHrd(SEIBspHrd &sei, TComSPS *sps, const SEIScalableNesting &nestingSei, std::ostream *pDecodedMessageOutputStream)1668 {1669 UInt uiCode;1670 sei_read_uvlc( pDecodedMessageOutputStream, uiCode, "sei_num_bsp_hrd_parameters_minus1" ); sei.m_seiNumBspHrdParametersMinus1 = uiCode;1671 for (UInt i = 0; i <= sei.m_seiNumBspHrdParametersMinus1; i++)1672 {1673 if (i > 0)1674 {1675 sei_read_flag( pDecodedMessageOutputStream, uiCode, "sei_bsp_cprms_present_flag" ); sei.m_seiBspCprmsPresentFlag[i] = uiCode;1676 }1677 xParseHrdParameters(sei.hrd, i==0 ? 1 : sei.m_seiBspCprmsPresentFlag[i], nestingSei.m_nestingMaxTemporalIdPlus1[0]-1);1678 }1679 for (UInt h = 0; h <= nestingSei.m_nestingNumOpsMinus1; h++)1680 {1681 UInt lsIdx = nestingSei.m_nestingOpIdx[h];1682 sei_read_uvlc( pDecodedMessageOutputStream, uiCode, "num_sei_bitstream_partitions_minus1[i]"); sei.m_seiNumBitstreamPartitionsMinus1[lsIdx] = uiCode;1683 #if HRD_BPB1684 Int chkPart=0;1685 #endif1686 UInt i;1687 for(i = 0; i <= sei.m_seiNumBitstreamPartitionsMinus1[lsIdx]; i++)1688 {1689 #if HRD_BPB1690 UInt nl=0; UInt j;1691 for(j = 0; j < sei.m_vpsMaxLayers; j++)1692 {1693 if (sei.m_layerIdIncludedFlag[lsIdx][j])1694 {1695 nl++;1696 }1697 }1698 for (j = 0; j < nl; j++)1699 {1700 #else1701 for (UInt j = 0; j < sei.m_vpsMaxLayers; j++)1702 {1703 if (sei.m_layerIdIncludedFlag[lsIdx][j])1704 {1705 #endif1706 sei_read_flag( pDecodedMessageOutputStream, uiCode, "sei_layer_in_bsp_flag[lsIdx][i][j]" ); sei.m_seiLayerInBspFlag[lsIdx][i][j] = uiCode;1707 }1708 #if !HRD_BPB1709 }1710 #endif1711 #if HRD_BPB1712 chkPart+=sei.m_seiLayerInBspFlag[lsIdx][i][j];1713 #endif1714 }1715 #if HRD_BPB1716 assert(chkPart<=1);1717 #endif1718 #if HRD_BPB1719 if(sei.m_seiNumBitstreamPartitionsMinus1[lsIdx]==0)1720 {1721 Int chkPartition1=0; Int chkPartition2=0;1722 for (UInt j = 0; j < sei.m_vpsMaxLayers; j++)1723 {1724 if( sei.m_layerIdIncludedFlag[lsIdx][j] )1725 {1726 chkPartition1+=sei.m_seiLayerInBspFlag[lsIdx][0][j];1727 chkPartition2++;1728 }1729 }1730 assert(chkPartition1!=chkPartition2);1731 }1732 #endif1733 1734 sei_read_uvlc( pDecodedMessageOutputStream, uiCode, "sei_num_bsp_sched_combinations_minus1[i]"); sei.m_seiNumBspSchedCombinationsMinus1[lsIdx] = uiCode;1735 for (i = 0; i <= sei.m_seiNumBspSchedCombinationsMinus1[lsIdx]; i++)1736 {1737 for (UInt j = 0; j <= sei.m_seiNumBitstreamPartitionsMinus1[lsIdx]; j++)1738 {1739 sei_read_uvlc( pDecodedMessageOutputStream, uiCode, "sei_bsp_comb_hrd_idx[lsIdx][i][j]"); sei.m_seiBspCombHrdIdx[lsIdx][i][j] = uiCode;1740 #if HRD_BPB1741 assert(uiCode <= sei.m_seiNumBspHrdParametersMinus1);1742 #endif1743 sei_read_uvlc( pDecodedMessageOutputStream, uiCode, "sei_bsp_comb_sched_idx[lsIdx][i][j]"); sei.m_seiBspCombScheddx[lsIdx][i][j] = uiCode;1744 #if HRD_BPB1745 assert(uiCode <= sei.hrd->getCpbCntMinus1( sps->getMaxTLayers()-1 ));1746 #endif1747 1748 }1749 }1750 }1751 }1752 #endif1753 1754 1660 Void SEIReader::xParseHrdParameters(TComHRD *hrd, Bool commonInfPresentFlag, UInt maxNumSubLayersMinus1, std::ostream *pDecodedMessageOutputStream) 1755 1661 {
Note: See TracChangeset for help on using the changeset viewer.