diff --git a/source/App/SEIRemovalApp/SEIRemovalApp.cpp b/source/App/SEIRemovalApp/SEIRemovalApp.cpp index 3a53761f00fae67c7da225c3f7be1623ced8820b..596578fb816bf516373f0d899017d21a1103afe5 100644 --- a/source/App/SEIRemovalApp/SEIRemovalApp.cpp +++ b/source/App/SEIRemovalApp/SEIRemovalApp.cpp @@ -80,11 +80,9 @@ void read2(InputNALUnit& nalu) uint32_t nalUnitTypeLsb = bs.read(4); // nal_unit_type_lsb nalu.m_nalUnitType = (NalUnitType) ((zeroTidRequiredFlag << 4) + nalUnitTypeLsb); nalu.m_nuhLayerId = bs.read(7); // nuh_layer_id -#if EMULATION_PREVENTION_FIX CHECK(nalu.m_nuhLayerId == 0, "nuh_layer_id_plus1 must be greater than zero"); nalu.m_nuhLayerId--; CHECK(nalu.m_nuhLayerId > 125, "Layer ID out of range"); -#endif CHECK((nalu.m_nuhLayerId < 0) || (nalu.m_nuhLayerId > 126), "Layer ID out of range"); uint32_t nuh_reserved_zero_bit = bs.read(1); // nuh_reserved_zero_bit CHECK(nuh_reserved_zero_bit != 0, "Reserved zero bit is not '0'"); diff --git a/source/App/StreamMergeApp/StreamMergeApp.cpp b/source/App/StreamMergeApp/StreamMergeApp.cpp index 68bdb2b9db4e70523aae7727bc90ec8a4ad67640..519b06ac154f596d08a2a349f8cbcc878fda7f9f 100644 --- a/source/App/StreamMergeApp/StreamMergeApp.cpp +++ b/source/App/StreamMergeApp/StreamMergeApp.cpp @@ -84,11 +84,9 @@ void read2(InputNALUnit& nalu) uint32_t nalUnitTypeLsb = bs.read(4); // nal_unit_type_lsb nalu.m_nalUnitType = (NalUnitType)((zeroTidRequiredFlag << 4) + nalUnitTypeLsb); nalu.m_nuhLayerId = bs.read(7); // nuh_layer_id -#if EMULATION_PREVENTION_FIX CHECK(nalu.m_nuhLayerId == 0, "nuh_layer_id_plus1 must be greater than zero"); nalu.m_nuhLayerId--; CHECK(nalu.m_nuhLayerId > 125, "Layer ID out of range"); -#endif CHECK((nalu.m_nuhLayerId < 0) || (nalu.m_nuhLayerId > 126), "Layer ID out of range"); uint32_t nuh_reserved_zero_bit = bs.read(1); // nuh_reserved_zero_bit CHECK(nuh_reserved_zero_bit != 0, "Reserved zero bit is not '0'"); @@ -245,11 +243,7 @@ void StreamMergeApp::writeNewVPS(ostream& out, int nLayerId, int nTemporalId) bsNALUHeader.write(nTemporalId + 1, 3); // nuh_temporal_id_plus1 uint32_t nalUnitTypeLsb = NAL_UNIT_VPS - (1 << 4); bsNALUHeader.write(nalUnitTypeLsb, 4); // nal_unit_type_lsb -#if EMULATION_PREVENTION_FIX bsNALUHeader.write(nLayerId + 1, 7); // nuh_layer_id -#else - bsNALUHeader.write(nLayerId, 7); // nuh_layer_id -#endif bsNALUHeader.write(0, 1); // nuh_reserved_zero_bit out.write(reinterpret_cast<const char*>(start_code_prefix), 4); @@ -344,11 +338,7 @@ uint32_t StreamMergeApp::mergeStreams() //update the nul_layer_id uint8_t *p = (uint8_t*)nalu.getBitstream().getFifo().data(); -#if EMULATION_PREVENTION_FIX p[1] = ((layerId + 1) << 1) & 0xff; -#else - p[1] = (layerId << 1) & 0xff; -#endif bitstreamFileOut.write((const char*)p, nalu.getBitstream().getFifo().size()); diff --git a/source/Lib/CommonLib/TypeDef.h b/source/Lib/CommonLib/TypeDef.h index 76a63f35133fab2b7a128cdc4ec3e7d605910237..153e17186e59207159079333ec376715204a1be7 100644 --- a/source/Lib/CommonLib/TypeDef.h +++ b/source/Lib/CommonLib/TypeDef.h @@ -290,9 +290,6 @@ #define JVET_O0179 1 // JVET_O0179: Implement NAL unit header syntax proposal B - -#define EMULATION_PREVENTION_FIX 1 // fix for start code emulation reported in #270. Diverges from specification text - #define HEVC_SEI 0 // SEI messages that are defined in HEVC, but not in VVC typedef std::pair<int, bool> TrMode; diff --git a/source/Lib/DecoderLib/NALread.cpp b/source/Lib/DecoderLib/NALread.cpp index a7ae5e0a41864f2b7981f7b5e4cc9effef6d0351..a9d1f187ba3a019a247084a1e1e17ec245bbca13 100644 --- a/source/Lib/DecoderLib/NALread.cpp +++ b/source/Lib/DecoderLib/NALread.cpp @@ -117,11 +117,7 @@ static void xTraceNalUnitHeader(InputNALUnit& nalu) DTRACE( g_trace_ctx, D_NALUNITHEADER, "%-50s u(%d) : %u\n", "zero_tid_required_flag", 1, zeroTidRequiredFlag ); DTRACE( g_trace_ctx, D_NALUNITHEADER, "%-50s u(%d) : %u\n", "nuh_temporal_id_plus1", 3, nalu.m_temporalId + 1 ); DTRACE( g_trace_ctx, D_NALUNITHEADER, "%-50s u(%d) : %u\n", "nal_unit_type_lsb", 4, (nalu.m_nalUnitType) - (zeroTidRequiredFlag << 4)); -#if EMULATION_PREVENTION_FIX DTRACE( g_trace_ctx, D_NALUNITHEADER, "%-50s u(%d) : %u\n", "nuh_layer_id_plus1", 7, nalu.m_nuhLayerId+1); -#else - DTRACE( g_trace_ctx, D_NALUNITHEADER, "%-50s u(%d) : %u\n", "nuh_layer_id", 7, nalu.m_nuhLayerId ); -#endif DTRACE( g_trace_ctx, D_NALUNITHEADER, "%-50s u(%d) : %u\n", "nuh_reserved_zero_bit", 1, 0 ); } #endif @@ -144,13 +140,9 @@ void readNalUnitHeader(InputNALUnit& nalu) uint32_t nalUnitTypeLsb = bs.read(4); // nal_unit_type_lsb nalu.m_nalUnitType = (NalUnitType) ((zeroTidRequiredFlag << 4) + nalUnitTypeLsb); nalu.m_nuhLayerId = bs.read(7); // nuh_layer_id - #if EMULATION_PREVENTION_FIX CHECK (nalu.m_nuhLayerId == 0, "nuh_layer_id_plus1 must be greater than zero"); nalu.m_nuhLayerId--; CHECK(nalu.m_nuhLayerId > 125, "Layer ID out of range"); -#else - CHECK(nalu.m_nuhLayerId > 126, "Layer ID out of range"); -#endif uint32_t nuh_reserved_zero_bit = bs.read(1); // nuh_reserved_zero_bit CHECK(nuh_reserved_zero_bit != 0, "Reserved zero bit is not '0'"); #endif diff --git a/source/Lib/EncoderLib/NALwrite.cpp b/source/Lib/EncoderLib/NALwrite.cpp index 2389b4e13ab6a9d9764d551a459512a91aac4db4..d317a45f2b33eae56516d6467c2fea2a4c95e249 100644 --- a/source/Lib/EncoderLib/NALwrite.cpp +++ b/source/Lib/EncoderLib/NALwrite.cpp @@ -67,11 +67,7 @@ OutputBitstream bsNALUHeader; bsNALUHeader.write(nalu.m_temporalId+1, 3); // nuh_temporal_id_plus1 uint32_t nalUnitTypeLsb = (nalu.m_nalUnitType) - (zeroTidRequiredFlag << 4); bsNALUHeader.write(nalUnitTypeLsb, 4); // nal_unit_type_lsb -#if EMULATION_PREVENTION_FIX bsNALUHeader.write(nalu.m_nuhLayerId + 1, 7); // nuh_layer_id -#else - bsNALUHeader.write(nalu.m_nuhLayerId, 7); // nuh_layer_id -#endif bsNALUHeader.write(0, 1); // nuh_reserved_zero_bit #endif