# HG changeset patch # User Santhoshini Sekar <santhosh...@multicorewareinc.com> # Date 1522314350 -19800 # Thu Mar 29 14:35:50 2018 +0530 # Node ID 22aa607166e0a9917b923b6b21b775055fc708fd # Parent 1fafca24a3990106ecf203afc4e900fa0eddfbe1 fix bug in SEI::write clean up
diff --git a/source/encoder/encoder.cpp b/source/encoder/encoder.cpp --- a/source/encoder/encoder.cpp +++ b/source/encoder/encoder.cpp @@ -2332,7 +2332,7 @@ bs.resetBits(); SEIuserDataUnregistered idsei; idsei.m_userData = (uint8_t*)buffer; - idsei.setSize((uint32_t)strlen(buffer) + 16); + idsei.setSize((uint32_t)strlen(buffer)); idsei.write(bs, m_sps); bs.writeByteAlignment(); list.serialize(NAL_UNIT_PREFIX_SEI, bs); @@ -2350,9 +2350,9 @@ SEIActiveParameterSets sei; sei.m_selfContainedCvsFlag = true; sei.m_noParamSetUpdateFlag = true; + bs.resetBits(); int payloadSize = sei.countPayloadSize(m_sps); sei.setSize(payloadSize); - bs.resetBits(); sei.write(bs, m_sps); bs.writeByteAlignment(); list.serialize(NAL_UNIT_PREFIX_SEI, bs); diff --git a/source/encoder/frameencoder.cpp b/source/encoder/frameencoder.cpp --- a/source/encoder/frameencoder.cpp +++ b/source/encoder/frameencoder.cpp @@ -633,9 +633,9 @@ bpSei->m_dpbDelayOffset = 0; // hrdFullness() calculates the initial CPB removal delay and offset m_top->m_rateControl->hrdFullness(bpSei); + m_bs.resetBits(); int payloadSize = bpSei->countPayloadSize(*slice->m_sps); bpSei->setSize(payloadSize); - m_bs.resetBits(); bpSei->write(m_bs, *slice->m_sps); m_bs.writeByteAlignment(); @@ -651,8 +651,8 @@ sei.m_recoveryPocCnt = 0; sei.m_exactMatchingFlag = true; sei.m_brokenLinkFlag = false; + m_bs.resetBits(); sei.setSize(sei.countPayloadSize(*slice->m_sps)); - m_bs.resetBits(); sei.write(m_bs, *slice->m_sps); m_bs.writeByteAlignment(); m_nalList.serialize(NAL_UNIT_PREFIX_SEI, m_bs); @@ -704,7 +704,7 @@ SEIuserDataUnregistered sei; sei.m_userData = payload->payload; m_bs.resetBits(); - sei.setSize(payload->payloadSize + 16); + sei.setSize(payload->payloadSize); sei.write(m_bs, *slice->m_sps); m_bs.writeByteAlignment(); m_nalList.serialize(NAL_UNIT_PREFIX_SEI, m_bs); diff --git a/source/encoder/sei.cpp b/source/encoder/sei.cpp --- a/source/encoder/sei.cpp +++ b/source/encoder/sei.cpp @@ -51,6 +51,8 @@ uint32_t type = m_payloadType; m_bitIf = &bs; uint32_t payloadSize = m_payloadSize; + if (m_payloadType == USER_DATA_UNREGISTERED) + payloadSize = m_payloadSize + 16; uint32_t payloadType = m_payloadType; for (; payloadType >= 0xff; payloadType -= 0xff) WRITE_CODE(0xff, 8, "payload_type");
# HG changeset patch # User Santhoshini Sekar <santhosh...@multicorewareinc.com> # Date 1522314350 -19800 # Thu Mar 29 14:35:50 2018 +0530 # Node ID 22aa607166e0a9917b923b6b21b775055fc708fd # Parent 1fafca24a3990106ecf203afc4e900fa0eddfbe1 fix bug in SEI::write clean up diff --git a/source/encoder/encoder.cpp b/source/encoder/encoder.cpp --- a/source/encoder/encoder.cpp +++ b/source/encoder/encoder.cpp @@ -2332,7 +2332,7 @@ bs.resetBits(); SEIuserDataUnregistered idsei; idsei.m_userData = (uint8_t*)buffer; - idsei.setSize((uint32_t)strlen(buffer) + 16); + idsei.setSize((uint32_t)strlen(buffer)); idsei.write(bs, m_sps); bs.writeByteAlignment(); list.serialize(NAL_UNIT_PREFIX_SEI, bs); @@ -2350,9 +2350,9 @@ SEIActiveParameterSets sei; sei.m_selfContainedCvsFlag = true; sei.m_noParamSetUpdateFlag = true; + bs.resetBits(); int payloadSize = sei.countPayloadSize(m_sps); sei.setSize(payloadSize); - bs.resetBits(); sei.write(bs, m_sps); bs.writeByteAlignment(); list.serialize(NAL_UNIT_PREFIX_SEI, bs); diff --git a/source/encoder/frameencoder.cpp b/source/encoder/frameencoder.cpp --- a/source/encoder/frameencoder.cpp +++ b/source/encoder/frameencoder.cpp @@ -633,9 +633,9 @@ bpSei->m_dpbDelayOffset = 0; // hrdFullness() calculates the initial CPB removal delay and offset m_top->m_rateControl->hrdFullness(bpSei); + m_bs.resetBits(); int payloadSize = bpSei->countPayloadSize(*slice->m_sps); bpSei->setSize(payloadSize); - m_bs.resetBits(); bpSei->write(m_bs, *slice->m_sps); m_bs.writeByteAlignment(); @@ -651,8 +651,8 @@ sei.m_recoveryPocCnt = 0; sei.m_exactMatchingFlag = true; sei.m_brokenLinkFlag = false; + m_bs.resetBits(); sei.setSize(sei.countPayloadSize(*slice->m_sps)); - m_bs.resetBits(); sei.write(m_bs, *slice->m_sps); m_bs.writeByteAlignment(); m_nalList.serialize(NAL_UNIT_PREFIX_SEI, m_bs); @@ -704,7 +704,7 @@ SEIuserDataUnregistered sei; sei.m_userData = payload->payload; m_bs.resetBits(); - sei.setSize(payload->payloadSize + 16); + sei.setSize(payload->payloadSize); sei.write(m_bs, *slice->m_sps); m_bs.writeByteAlignment(); m_nalList.serialize(NAL_UNIT_PREFIX_SEI, m_bs); diff --git a/source/encoder/sei.cpp b/source/encoder/sei.cpp --- a/source/encoder/sei.cpp +++ b/source/encoder/sei.cpp @@ -51,6 +51,8 @@ uint32_t type = m_payloadType; m_bitIf = &bs; uint32_t payloadSize = m_payloadSize; + if (m_payloadType == USER_DATA_UNREGISTERED) + payloadSize = m_payloadSize + 16; uint32_t payloadType = m_payloadType; for (; payloadType >= 0xff; payloadType -= 0xff) WRITE_CODE(0xff, 8, "payload_type");
_______________________________________________ x265-devel mailing list x265-devel@videolan.org https://mailman.videolan.org/listinfo/x265-devel