diff --git a/source/App/BitstreamExtractorApp/BitstreamExtractorApp.cpp b/source/App/BitstreamExtractorApp/BitstreamExtractorApp.cpp index 4753a70882fbe1dc239d2dd171094caad4a3beae..ad6e1b28dedc35caf08179d4e36b6fac69c38e20 100644 --- a/source/App/BitstreamExtractorApp/BitstreamExtractorApp.cpp +++ b/source/App/BitstreamExtractorApp/BitstreamExtractorApp.cpp @@ -47,6 +47,10 @@ BitstreamExtractorApp::BitstreamExtractorApp() :m_vpsId(-1) +#if JVET_Q0394_TIMING_SEI +, m_removeTimingSEI (false) +#endif + { } @@ -440,6 +444,8 @@ uint32_t BitstreamExtractorApp::decode() std::vector<int> LayerIdInOls = vps->getLayerIdsInOls(m_targetOlsIdx); bool isIncludedInTargetOls = std::find(LayerIdInOls.begin(), LayerIdInOls.end(), nalu.m_nuhLayerId) != LayerIdInOls.end(); writeInpuNalUnitToStream &= (isSpecialNalTypes || isIncludedInTargetOls); + + m_removeTimingSEI = !vps->getGeneralHrdParameters()->getGeneralSamePicTimingInAllOlsFlag(); } } if( nalu.m_nalUnitType == NAL_UNIT_SPS ) @@ -582,7 +588,11 @@ uint32_t BitstreamExtractorApp::decode() } } // remove unqualified timing related SEI +#if JVET_Q0394_TIMING_SEI + if (sei->payloadType() == SEI::BUFFERING_PERIOD || (m_removeTimingSEI && sei->payloadType() == SEI::PICTURE_TIMING ) || sei->payloadType() == SEI::DECODING_UNIT_INFO) +#else if (sei->payloadType() == SEI::BUFFERING_PERIOD || sei->payloadType() == SEI::PICTURE_TIMING || sei->payloadType() == SEI::DECODING_UNIT_INFO) +#endif { bool targetOlsIdxGreaterThanZero = m_targetOlsIdx > 0; writeInpuNalUnitToStream &= !targetOlsIdxGreaterThanZero; diff --git a/source/App/BitstreamExtractorApp/BitstreamExtractorApp.h b/source/App/BitstreamExtractorApp/BitstreamExtractorApp.h index 97c1108f75737661562af2445c0900d34f2123d9..d8af800df5592321517d70fab75d6c94772b8e90 100644 --- a/source/App/BitstreamExtractorApp/BitstreamExtractorApp.h +++ b/source/App/BitstreamExtractorApp/BitstreamExtractorApp.h @@ -82,6 +82,9 @@ protected: HLSWriter m_hlSyntaxWriter; SEIReader m_seiReader; int m_vpsId; +#if JVET_Q0394_TIMING_SEI + bool m_removeTimingSEI; +#endif PicHeader m_picHeader; int m_prevTid0Poc;