diff --git a/source/Lib/CommonLib/TypeDef.h b/source/Lib/CommonLib/TypeDef.h index ff1501f95eb098b6f9f106c2d344eddd97cebcf4..621fb485dbe70ccf97a8bb01ae1a1e05bd0d4b08 100644 --- a/source/Lib/CommonLib/TypeDef.h +++ b/source/Lib/CommonLib/TypeDef.h @@ -51,6 +51,9 @@ #include <cassert> //########### place macros to be removed in next cycle below this line ############### + +#define JVET_S0081_NON_REFERENCED_PIC 1 // JVET-S0081: exclude non-referenced picture to be used as prevTid0 picture + #define JVET_R0433 1 // JVET-R0433: APS signaling and semantics cleanup #define JVET_S0076_ASPECT1 1 // JVET-S0076: aspect 1: Move ph_non_ref_pic_flag to earlier position diff --git a/source/Lib/DecoderLib/DecLib.h b/source/Lib/DecoderLib/DecLib.h index 7279c30f0fec70ed027b39e908db49a71e14e9ce..b01566640376403ed9bc3799e8e809d7ecf198e1 100644 --- a/source/Lib/DecoderLib/DecLib.h +++ b/source/Lib/DecoderLib/DecLib.h @@ -290,7 +290,17 @@ protected: void xDecodeSPS( InputNALUnit& nalu ); void xDecodePPS( InputNALUnit& nalu ); void xDecodeAPS(InputNALUnit& nalu); +#if JVET_S0081_NON_REFERENCED_PIC + void xUpdatePreviousTid0POC(Slice *pSlice) + { + if( (pSlice->getTLayer() == 0) && (pSlice->getNalUnitType() != NAL_UNIT_CODED_SLICE_RASL) && (pSlice->getNalUnitType() != NAL_UNIT_CODED_SLICE_RADL) && !pSlice->getPicHeader()->getNonReferencePictureFlag() ) + { + m_prevTid0POC = pSlice->getPOC(); + } + } +#else void xUpdatePreviousTid0POC(Slice *pSlice) { if ((pSlice->getTLayer() == 0) && (pSlice->getNalUnitType()!=NAL_UNIT_CODED_SLICE_RASL) && (pSlice->getNalUnitType()!=NAL_UNIT_CODED_SLICE_RADL)) { m_prevTid0POC = pSlice->getPOC(); } } +#endif void xParsePrefixSEImessages(); void xParsePrefixSEIsForUnknownVCLNal();