diff --git a/source/Lib/CommonLib/TypeDef.h b/source/Lib/CommonLib/TypeDef.h index c3a34d03ead1927041c4c05590b5d2cf9e955ad4..72e20051c9e619b97a689a17071276e28e7aeef0 100644 --- a/source/Lib/CommonLib/TypeDef.h +++ b/source/Lib/CommonLib/TypeDef.h @@ -185,6 +185,8 @@ #define JVET_R0107_VPS_SIGNALING 1 // JVET-R017: Proposal 2 VPS signaling change and updated inference rule +#define JVET_R0103_DU_SIGNALLING 1 // JVET-R0103: Proposal 1 decoding unit signalling change + //########### place macros to be be kept below this line ############### #define JVET_R0164_MEAN_SCALED_SATD 1 // JVET-R0164: Use a mean scaled version of SATD in encoder decisions diff --git a/source/Lib/DecoderLib/SEIread.cpp b/source/Lib/DecoderLib/SEIread.cpp index 475b55e9f432b3d5f0472d7de7b4d31414ba5f8d..e2a242daa5f9d5d58e7c46cb2314bd2fe28cdb43 100644 --- a/source/Lib/DecoderLib/SEIread.cpp +++ b/source/Lib/DecoderLib/SEIread.cpp @@ -895,6 +895,10 @@ void SEIReader::xParseSEIPictureTiming(SEIPictureTiming& sei, uint32_t payloadSi sei.m_numNalusInDuMinus1.resize(sei.m_numDecodingUnitsMinus1 + 1 ); sei.m_duCpbRemovalDelayMinus1.resize( (sei.m_numDecodingUnitsMinus1 + 1) * bp.m_bpMaxSubLayers ); +#if JVET_R0103_DU_SIGNALLING + if (sei.m_numDecodingUnitsMinus1 > 0) + { +#endif sei_read_flag( pDecodedMessageOutputStream, symbol, "du_common_cpb_removal_delay_flag" ); sei.m_duCommonCpbRemovalDelayFlag = symbol; if( sei.m_duCommonCpbRemovalDelayFlag ) @@ -924,6 +928,13 @@ void SEIReader::xParseSEIPictureTiming(SEIPictureTiming& sei, uint32_t payloadSi } } } +#if JVET_R0103_DU_SIGNALLING + } + else + { + sei.m_duCommonCpbRemovalDelayFlag = 0; + } +#endif } sei_read_uvlc( pDecodedMessageOutputStream, symbol, "pt_display_elemental_periods_minus1" ); sei.m_ptDisplayElementalPeriodsMinus1 = symbol; diff --git a/source/Lib/EncoderLib/SEIwrite.cpp b/source/Lib/EncoderLib/SEIwrite.cpp index 8059c317f252605815c6c0b55da82bdc20172d45..f2884ca18d1cbe081a4bb7ce99a08c068d973854 100644 --- a/source/Lib/EncoderLib/SEIwrite.cpp +++ b/source/Lib/EncoderLib/SEIwrite.cpp @@ -435,6 +435,10 @@ void SEIWriter::xWriteSEIPictureTiming(const SEIPictureTiming& sei, const SEIBuf if( bp.m_bpDecodingUnitHrdParamsPresentFlag && bp.m_decodingUnitCpbParamsInPicTimingSeiFlag ) { WRITE_UVLC( sei.m_numDecodingUnitsMinus1, "num_decoding_units_minus1" ); +#if JVET_R0103_DU_SIGNALLING + if (sei.m_numDecodingUnitsMinus1 > 0) + { +#endif WRITE_FLAG( sei.m_duCommonCpbRemovalDelayFlag, "du_commmon_cpb_removal_delay_flag" ); if( sei.m_duCommonCpbRemovalDelayFlag ) { @@ -456,6 +460,9 @@ void SEIWriter::xWriteSEIPictureTiming(const SEIPictureTiming& sei, const SEIBuf } } } +#if JVET_R0103_DU_SIGNALLING + } +#endif } WRITE_UVLC( sei.m_ptDisplayElementalPeriodsMinus1, "pt_display_elemental_periods_minus1" ); }