On Wed, Jul 12, 2017 at 1:11 PM, <[email protected]> wrote:
> # HG changeset patch > # User Bhavna Hariharan <[email protected]> > # Date 1499842927 -19800 > # Wed Jul 12 12:32:07 2017 +0530 > # Node ID 3872cba7827fd6fdc2db62140cc4d108e97bc6bf > # Parent 06217c0e0f5f7fb126deb05ffb875a4f4bae8f68 > fix payload write of USER_DATA_REGISTERED_ITU_T_T35 SEI message. > > inserts missing initial payload byte into the bitstream and removes > extra byte appended at the end of bitstream while passing user SEI data > (bitbucket issue #353) > Pushed to stable branch. Should be part of the imminent 2.5 version that I will be tagging. > diff -r 06217c0e0f5f -r 3872cba7827f source/encoder/encoder.cpp > --- a/source/encoder/encoder.cpp Thu Jul 06 14:39:02 2017 +0530 > +++ b/source/encoder/encoder.cpp Wed Jul 12 12:32:07 2017 +0530 > @@ -615,12 +615,12 @@ > int32_t i = 0; > toneMap.payloadSize = 0; > while (cim[pic_in->poc][i] == 0xFF) > - toneMap.payloadSize += cim[pic_in->poc][i++] + 1; > - toneMap.payloadSize += cim[pic_in->poc][i] + 1; > + toneMap.payloadSize += cim[pic_in->poc][i++]; > + toneMap.payloadSize += cim[pic_in->poc][i++]; > > toneMap.payload = (uint8_t*)x265_malloc(sizeof(uint8_t) > * toneMap.payloadSize); > toneMap.payloadType = USER_DATA_REGISTERED_ITU_T_T35; > - memcpy(toneMap.payload, cim[pic_in->poc], > toneMap.payloadSize); > + memcpy(toneMap.payload, cim[pic_in->poc] + i, > toneMap.payloadSize); > } > } > #endif > diff -r 06217c0e0f5f -r 3872cba7827f source/encoder/frameencoder.cpp > --- a/source/encoder/frameencoder.cpp Thu Jul 06 14:39:02 2017 +0530 > +++ b/source/encoder/frameencoder.cpp Wed Jul 12 12:32:07 2017 +0530 > @@ -669,7 +669,7 @@ > if (writeSei) > { > SEICreativeIntentMeta sei; > - sei.cim = payload->payload; > + sei.m_payload = payload->payload; > m_bs.resetBits(); > sei.setSize(payload->payloadSize); > sei.write(m_bs, *slice->m_sps); > diff -r 06217c0e0f5f -r 3872cba7827f source/encoder/sei.cpp > --- a/source/encoder/sei.cpp Thu Jul 06 14:39:02 2017 +0530 > +++ b/source/encoder/sei.cpp Wed Jul 12 12:32:07 2017 +0530 > @@ -54,21 +54,23 @@ > } > WRITE_CODE(type, 8, "payload_type"); > uint32_t payloadSize; > - if (hrdTypes || m_payloadType == USER_DATA_UNREGISTERED) > + if (hrdTypes || m_payloadType == USER_DATA_UNREGISTERED || > m_payloadType == USER_DATA_REGISTERED_ITU_T_T35) > { > if (hrdTypes) > { > X265_CHECK(0 == (count.getNumberOfWrittenBits() & 7), > "payload unaligned\n"); > payloadSize = count.getNumberOfWrittenBits() >> 3; > } > + else if (m_payloadType == USER_DATA_UNREGISTERED) > + payloadSize = m_payloadSize + 16; > else > - payloadSize = m_payloadSize + 16; > + payloadSize = m_payloadSize; > > for (; payloadSize >= 0xff; payloadSize -= 0xff) > WRITE_CODE(0xff, 8, "payload_size"); > WRITE_CODE(payloadSize, 8, "payload_size"); > } > - else if(m_payloadType != USER_DATA_REGISTERED_ITU_T_T35) > + else > WRITE_CODE(m_payloadSize, 8, "payload_size"); > /* virtual writeSEI method, write to bs */ > writeSEI(sps); > diff -r 06217c0e0f5f -r 3872cba7827f source/encoder/sei.h > --- a/source/encoder/sei.h Thu Jul 06 14:39:02 2017 +0530 > +++ b/source/encoder/sei.h Wed Jul 12 12:32:07 2017 +0530 > @@ -276,25 +276,17 @@ > m_payloadSize = 0; > } > > - uint8_t *cim; > + uint8_t *m_payload; > > // [email protected] :: for the Creative Intent Meta Data > Encoding ( [email protected] ) > void writeSEI(const SPS&) > { > - if (!cim) > + if (!m_payload) > return; > > - int i = 0; > - int payloadSize = m_payloadSize; > - while (cim[i] == 0xFF) > - { > - i++; > - WRITE_CODE(0xFF, 8, "payload_size"); > - } > - WRITE_CODE(cim[i], 8, "payload_size"); > - i++; > - for (; i < payloadSize; ++i) > - WRITE_CODE(cim[i], 8, "creative_intent_metadata"); > + uint32_t i = 0; > + for (; i < m_payloadSize; ++i) > + WRITE_CODE(m_payload[i], 8, "creative_intent_metadata"); > } > }; > } > _______________________________________________ > x265-devel mailing list > [email protected] > https://mailman.videolan.org/listinfo/x265-devel >
_______________________________________________ x265-devel mailing list [email protected] https://mailman.videolan.org/listinfo/x265-devel
