Re: [x265] [PATCH] fix payload write of USER_DATA_REGISTERED_ITU_T_T35 SEI message

2017-07-12 Thread Pradeep Ramachandran
On Wed, Jul 12, 2017 at 1:11 PM,  wrote:

> # HG changeset patch
> # User Bhavna Hariharan 
> # 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.cppThu Jul 06 14:39:02 2017 +0530
> +++ b/source/encoder/encoder.cppWed 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.cppThu Jul 06 14:39:02 2017 +0530
> +++ b/source/encoder/sei.cppWed 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;
>
>  // daniel...@samsung.com :: for the Creative Intent Meta Data
> Encoding ( seongnam...@samsung.com )
>  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
> x265-devel@videolan.org
> https://mailman.videolan.org/listinfo/x265-devel
>
___
x265-devel mailing list
x265-devel@videolan.org
https://mailman.videolan.org/listinfo/x265-devel


[x265] [PATCH] fix payload write of USER_DATA_REGISTERED_ITU_T_T35 SEI message

2017-07-12 Thread bhavna
# HG changeset patch
# User Bhavna Hariharan 
# 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)

diff -r 06217c0e0f5f -r 3872cba7827f source/encoder/encoder.cpp
--- a/source/encoder/encoder.cppThu Jul 06 14:39:02 2017 +0530
+++ b/source/encoder/encoder.cppWed 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.cppThu Jul 06 14:39:02 2017 +0530
+++ b/source/encoder/sei.cppWed 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;
 
 // daniel...@samsung.com :: for the Creative Intent Meta Data Encoding ( 
seongnam...@samsung.com )
 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
x265-devel@videolan.org
https://mailman.videolan.org/listinfo/x265-devel