[x265] [PATCH] fix bug in SEI::write clean up

Ashok Kumar Mishra ashok at multicorewareinc.com
Fri Mar 30 11:37:54 CEST 2018


On Fri, Mar 30, 2018 at 9:14 AM, <santhoshini at multicorewareinc.com> wrote:

> # HG changeset patch
> # User Santhoshini Sekar <santhoshini at 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 at videolan.org
> https://mailman.videolan.org/listinfo/x265-devel
>
>
Thanks. Pushed.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/x265-devel/attachments/20180330/927ac688/attachment.html>


More information about the x265-devel mailing list