Changeset 1098 in SHVCSoftware for branches/SHM-dev/source
- Timestamp:
- 3 Jul 2015, 00:22:38 (9 years ago)
- Location:
- branches/SHM-dev/source/Lib
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/SHM-dev/source/Lib/TLibCommon/SEI.cpp
r1096 r1098 152 152 case SEI::BSP_INITIAL_ARRIVAL_TIME: return "Bitstream parition initial arrival time"; 153 153 #endif 154 #if Q0078_ADD_LAYER_SETS155 case SEI::OUTPUT_LAYER_SET_NESTING: return "Output layer set nesting";156 case SEI::VPS_REWRITING: return "VPS rewriting";157 #endif158 154 #if Q0096_OVERLAY_SEI 159 155 case SEI::OVERLAY_INFO: return "Overlay Information"; -
branches/SHM-dev/source/Lib/TLibCommon/SEI.h
r1097 r1098 119 119 FRAME_FIELD_INFO = 168, 120 120 #endif 121 #if Q0078_ADD_LAYER_SETS122 OUTPUT_LAYER_SET_NESTING = 149,123 VPS_REWRITING = 150,124 #endif125 121 }; 126 122 … … 638 634 }; 639 635 640 #if Q0078_ADD_LAYER_SETS641 class SEIOutputLayerSetNesting : public SEI642 {643 public:644 PayloadType payloadType() const { return OUTPUT_LAYER_SET_NESTING; }645 646 SEIOutputLayerSetNesting()647 : m_callerOwnsSEIs(false)648 {}649 650 virtual ~SEIOutputLayerSetNesting()651 {652 if (!m_callerOwnsSEIs)653 {654 deleteSEIs(m_nestedSEIs);655 }656 }657 658 Bool m_olsFlag;659 UInt m_numOlsIndicesMinus1;660 UInt m_olsIdx[1024];661 Bool m_callerOwnsSEIs;662 SEIMessages m_nestedSEIs;663 };664 665 class SEIVPSRewriting : public SEI666 {667 public:668 PayloadType payloadType() const { return VPS_REWRITING; }669 670 SEIVPSRewriting() {}671 virtual ~SEIVPSRewriting() {}672 673 NALUnit* nalu;674 };675 #endif676 677 636 #if P0123_ALPHA_CHANNEL_SEI 678 637 class SEIAlphaChannelInfo : public SEI -
branches/SHM-dev/source/Lib/TLibDecoder/SEIread.cpp
r1096 r1098 351 351 break; 352 352 #endif 353 #if Q0078_ADD_LAYER_SETS354 case SEI::OUTPUT_LAYER_SET_NESTING:355 sei = new SEIOutputLayerSetNesting;356 #if LAYERS_NOT_PRESENT_SEI357 xParseSEIOutputLayerSetNesting((SEIOutputLayerSetNesting&)*sei, nalUnitType, vps, sps, pDecodedMessageOutputStream);358 #else359 xParseSEIOutputLayerSetNesting((SEIOutputLayerSetNesting&)*sei, nalUnitType, sps, pDecodedMessageOutputStream);360 #endif361 break;362 case SEI::VPS_REWRITING:363 sei = new SEIVPSRewriting;364 xParseSEIVPSRewriting((SEIVPSRewriting&)*sei, pDecodedMessageOutputStream);365 break;366 #endif367 353 #if Q0189_TMVP_CONSTRAINTS 368 354 case SEI::TMVP_CONSTRAINTS: … … 1734 1720 #endif 1735 1721 1736 #if Q0078_ADD_LAYER_SETS1737 1738 #if LAYERS_NOT_PRESENT_SEI1739 Void SEIReader::xParseSEIOutputLayerSetNesting(SEIOutputLayerSetNesting& sei, const NalUnitType nalUnitType, TComVPS *vps, TComSPS *sps, std::ostream *pDecodedMessageOutputStream)1740 #else1741 Void SEIReader::xParseSEIOutputLayerSetNesting(SEIOutputLayerSetNesting& sei, const NalUnitType nalUnitType, TComSPS *sps, std::ostream *pDecodedMessageOutputStream)1742 #endif1743 {1744 UInt uiCode;1745 SEIMessages seis;1746 1747 sei_read_flag( pDecodedMessageOutputStream, uiCode, "ols_flag"); sei.m_olsFlag = uiCode;1748 sei_read_uvlc( pDecodedMessageOutputStream, uiCode, "num_ols_indices_minus1"); sei.m_numOlsIndicesMinus1 = uiCode;1749 1750 for (Int i = 0; i <= sei.m_numOlsIndicesMinus1; i++)1751 {1752 sei_read_uvlc( pDecodedMessageOutputStream, uiCode, "ols_idx[i]"); sei.m_olsIdx[i] = uiCode;1753 }1754 1755 // byte alignment1756 while (m_pcBitstream->getNumBitsRead() % 8 != 0)1757 {1758 UInt code;1759 sei_read_flag( pDecodedMessageOutputStream, code, "ols_nesting_zero_bit");1760 }1761 1762 sei.m_callerOwnsSEIs = false;1763 1764 // read nested SEI messages1765 do {1766 #if O0164_MULTI_LAYER_HRD1767 #if LAYERS_NOT_PRESENT_SEI1768 xReadSEImessage(sei.m_nestedSEIs, nalUnitType, vps, sps, pDecodedMessageOutputStream);1769 #else1770 xReadSEImessage(sei.m_nestedSEIs, nalUnitType, sps, pDecodedMessageOutputStream);1771 #endif1772 #else1773 #if LAYERS_NOT_PRESENT_SEI1774 xReadSEImessage(sei.m_nestedSEIs, nalUnitType, vps, sps, pDecodedMessageOutputStream);1775 #else1776 xReadSEImessage(sei.m_nestedSEIs, nalUnitType, sps, pDecodedMessageOutputStream);1777 #endif1778 #endif1779 } while (m_pcBitstream->getNumBitsLeft() > 8);1780 1781 }1782 1783 Void SEIReader::xParseSEIVPSRewriting(SEIVPSRewriting &sei, std::ostream *pDecodedMessageOutputStream )1784 {1785 }1786 1787 #endif1788 1789 1722 #if P0123_ALPHA_CHANNEL_SEI 1790 1723 void SEIReader::xParseSEIAlphaChannelInfo(SEIAlphaChannelInfo &sei, UInt payloadSize, std::ostream *pDecodedMessageOutputStream) -
branches/SHM-dev/source/Lib/TLibDecoder/SEIread.h
r1096 r1098 136 136 Void xParseHrdParameters (TComHRD *hrd, Bool commonInfPresentFlag, UInt maxNumSubLayersMinus1, std::ostream *pDecodedMessageOutputStream); 137 137 #endif 138 #if Q0078_ADD_LAYER_SETS139 #if LAYERS_NOT_PRESENT_SEI140 Void xParseSEIOutputLayerSetNesting (SEIOutputLayerSetNesting& sei, const NalUnitType nalUnitType, TComVPS *vps, TComSPS *sps, std::ostream *pDecodedMessageOutputStream);141 #else142 Void xParseSEIOutputLayerSetNesting (SEIOutputLayerSetNesting& sei, const NalUnitType nalUnitType, TComSPS *sps, std::ostream *pDecodedMessageOutputStream);143 #endif144 Void xParseSEIVPSRewriting (SEIVPSRewriting &sei, std::ostream *pDecodedMessageOutputStream);145 #endif146 147 138 #if Q0189_TMVP_CONSTRAINTS 148 139 Void xParseSEITMVPConstraints (SEITMVPConstrains& sei, UInt payloadSize, std::ostream *pDecodedMessageOutputStream); -
branches/SHM-dev/source/Lib/TLibEncoder/SEIwrite.cpp
r1096 r1098 186 186 break; 187 187 #endif 188 #if Q0078_ADD_LAYER_SETS189 case SEI::OUTPUT_LAYER_SET_NESTING:190 xWriteSEIOutputLayerSetNesting(bs, *static_cast<const SEIOutputLayerSetNesting*>(&sei), vps, sps);191 break;192 case SEI::VPS_REWRITING:193 xWriteSEIVPSRewriting(*static_cast<const SEIVPSRewriting*>(&sei));194 break;195 #endif196 188 #if Q0189_TMVP_CONSTRAINTS 197 189 case SEI::TMVP_CONSTRAINTS: … … 1332 1324 #endif 1333 1325 1334 #if Q0078_ADD_LAYER_SETS1335 1336 Void SEIWriter::xWriteSEIOutputLayerSetNesting(TComBitIf& bs, const SEIOutputLayerSetNesting &sei, TComVPS *vps, TComSPS *sps)1337 {1338 WRITE_FLAG(sei.m_olsFlag, "ols_flag");1339 WRITE_UVLC(sei.m_numOlsIndicesMinus1, "num_ols_indices_minus1");1340 1341 for (Int i = 0; i <= sei.m_numOlsIndicesMinus1; i++)1342 {1343 WRITE_UVLC(sei.m_olsIdx[i], "ols_idx[i]");1344 }1345 1346 while (m_pcBitIf->getNumberOfWrittenBits() % 8 != 0)1347 {1348 WRITE_FLAG(0, "ols_nesting_zero_bit");1349 }1350 1351 // write nested SEI messages1352 for (SEIMessages::const_iterator it = sei.m_nestedSEIs.begin(); it != sei.m_nestedSEIs.end(); it++)1353 {1354 writeSEImessage(bs, *(*it), vps, sps);1355 }1356 }1357 1358 Void SEIWriter::xWriteSEIVPSRewriting(const SEIVPSRewriting &sei)1359 {1360 //sei.nalu->1361 }1362 1363 #endif1364 1365 1326 #if P0123_ALPHA_CHANNEL_SEI 1366 1327 Void SEIWriter::xWriteSEIAlphaChannelInfo(const SEIAlphaChannelInfo &sei) -
branches/SHM-dev/source/Lib/TLibEncoder/SEIwrite.h
r1096 r1098 124 124 Void xCodeHrdParameters( TComHRD *hrd, Bool commonInfPresentFlag, UInt maxNumSubLayersMinus1 ); 125 125 #endif 126 #if Q0078_ADD_LAYER_SETS127 Void xWriteSEIOutputLayerSetNesting(TComBitIf& bs, const SEIOutputLayerSetNesting &sei, TComVPS *vps, TComSPS *sps);128 Void xWriteSEIVPSRewriting(const SEIVPSRewriting &sei);129 #endif130 126 #if P0123_ALPHA_CHANNEL_SEI 131 127 Void xWriteSEIAlphaChannelInfo(const SEIAlphaChannelInfo &sei);
Note: See TracChangeset for help on using the changeset viewer.