Changeset 608 in 3DVCSoftware for trunk/source/Lib/TLibExtractor/TExtrTop.cpp
- Timestamp:
- 1 Sep 2013, 22:47:26 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/Lib/TLibExtractor/TExtrTop.cpp
r332 r608 37 37 38 38 #include "TExtrTop.h" 39 39 #if H_MV 40 40 TExtrTop::TExtrTop() 41 41 { … … 55 55 Bool TExtrTop::extract( InputNALUnit& nalu, std::set<UInt>& rsuiExtractLayerIds ) 56 56 { 57 #if VIDYO_VPS_INTEGRATION|QC_MVHEVC_B004658 57 //extraction now has to be done using layer_id 59 UInt uiLayerId = nalu.m_layerId; 60 #else 61 UInt uiLayerId = xGetLayerId( nalu.m_viewId, nalu.m_isDepth ); 62 #endif 58 UInt uiLayerId = nalu.m_layerId; 59 60 63 61 // Initialize entropy decoder 64 62 m_cEntropyDecoder.setEntropyDecoder( &m_cCavlcDecoder ); 65 63 m_cEntropyDecoder.setBitstream ( nalu.m_Bitstream ); 66 64 67 #if VIDYO_VPS_INTEGRATION|QC_MVHEVC_B004668 65 if ( nalu.m_nalUnitType == NAL_UNIT_VPS ) 69 66 { 70 67 // a hack for now assuming there's only one VPS in the bitstream 71 m_cEntropyDecoder.decodeVPS( &m_cVPS ); 72 68 m_cEntropyDecoder.decodeVPS( &m_cVPS ); 73 69 } 74 #endif75 70 76 71 if ( nalu.m_nalUnitType == NAL_UNIT_SPS ) 77 72 { 78 TComSPS cSPS; 79 TComRPSList cRPS; 80 cSPS.setRPSList( &cRPS ); 81 #if HHI_MPI || H3D_QTL 82 #if VIDYO_VPS_INTEGRATION 83 m_cEntropyDecoder.decodeSPS( &cSPS, m_cVPS.getDepthFlag(uiLayerId) ); 73 TComSPS cSPS; 74 #if H_3D 75 Int layerIdInVPS = m_cVPS.getLayerIdInVps( uiLayerId ); 76 m_cEntropyDecoder .decodeSPS( &cSPS, m_cVPS.getViewIndex( layerIdInVPS ), ( m_cVPS.getDepthId( layerIdInVPS ) == 1 ) ); 84 77 #else 85 m_cEntropyDecoder .decodeSPS( &cSPS, nalu.m_isDepth);78 m_cEntropyDecoder .decodeSPS( &cSPS ); 86 79 #endif 87 #else 88 m_cEntropyDecoder.decodeSPS( &cSPS ); 89 #endif 90 91 m_acSPSBuffer.push_back( cSPS ); 80 m_acSPSBuffer .push_back( cSPS ); 92 81 } 93 82 … … 97 86 98 87 Void TExtrTop::dumpSpsInfo( std::ostream& rcSpsInfoHandle ) 99 { 88 { 100 89 rcSpsInfoHandle << "NumSPS = " << m_acSPSBuffer.size() << std::endl; 90 91 std::list<Int>::iterator iterSPSLayerId = m_aiSPSLayerIdBuffer.begin(); 101 92 102 for( std::list<TComSPS>::iterator iterSPS = m_acSPSBuffer.begin(); iterSPS != m_acSPSBuffer.end(); iterSPS++ ) 103 { 104 rcSpsInfoHandle << std::endl; 105 rcSpsInfoHandle << "layer_id = " << xGetLayerId( iterSPS->getViewId(), iterSPS->isDepth() ) << std::endl; 93 for( std::list<TComSPS>::iterator iterSPS = m_acSPSBuffer.begin(); iterSPS != m_acSPSBuffer.end(); iterSPS++, iterSPSLayerId++ ) 94 { 95 rcSpsInfoHandle << "layer_id = " << *iterSPSLayerId << std::endl; 106 96 rcSpsInfoHandle << "seq_parameter_set_id = " << iterSPS->getSPSId() << std::endl; 107 rcSpsInfoHandle << "view_id = " << iterSPS->getViewId() << std::endl;108 rcSpsInfoHandle << "view_order_idx = " << iterSPS->getViewOrderIdx() << std::endl;109 rcSpsInfoHandle << "is_depth = " << iterSPS->isDepth() << std::endl;110 97 } 111 98 } 99 100 Void TExtrTop::dumpVpsInfo( std::ostream& rcVpsInfoHandle ) 101 { 102 rcVpsInfoHandle << "MaxLayers = " << m_cVPS.getMaxLayers() << std::endl; 103 rcVpsInfoHandle << "MaxNuhLayerId = " << m_cVPS.getVpsMaxLayerId() << std::endl; 104 105 for ( Int layerIdxInVps = 0; layerIdxInVps < m_cVPS.getMaxLayers(); layerIdxInVps++ ) 106 { 107 rcVpsInfoHandle << "LayerIdxInVps = " << layerIdxInVps << std::endl; 108 rcVpsInfoHandle << "LayerIdInNuh = " << m_cVPS.getLayerIdInNuh( layerIdxInVps ) << std::endl; 109 rcVpsInfoHandle << "ViewId = " << m_cVPS.getViewId ( layerIdxInVps ) << std::endl; 110 #if H_3D 111 rcVpsInfoHandle << "DepthFlag = " << m_cVPS.getViewIndex ( layerIdxInVps ) << std::endl; 112 rcVpsInfoHandle << "DepthFlag = " << m_cVPS.getDepthId ( layerIdxInVps ) << std::endl; 113 #endif 114 } 115 } 116 #endif 117
Note: See TracChangeset for help on using the changeset viewer.