On Wed, Feb 19, 2020 at 3:28 PM Snehaa Giridharan < sne...@multicorewareinc.com> wrote:
> # HG changeset patch > # User Snehaa Giridharan <sne...@multicorewareinc.com> > # Date 1582105413 -19800 > # Wed Feb 19 15:13:33 2020 +0530 > # Node ID 968e8839eade282f6cd687d43c18bb4ee512ee01 > # Parent 495e78dfd32bcdeee0c48a8732eba135be12cb8e > Add option to get global maxrate > > This global maxrate can be used for HRD signaling > > diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt > --- a/source/CMakeLists.txt > +++ b/source/CMakeLists.txt > @@ -29,7 +29,7 @@ > option(STATIC_LINK_CRT "Statically link C runtime for release builds" OFF) > mark_as_advanced(FPROFILE_USE FPROFILE_GENERATE NATIVE_BUILD) > # X265_BUILD must be incremented each time the public API is changed > -set(X265_BUILD 189) > +set(X265_BUILD 190) > configure_file("${PROJECT_SOURCE_DIR}/x265.def.in" > "${PROJECT_BINARY_DIR}/x265.def") > configure_file("${PROJECT_SOURCE_DIR}/x265_config.h.in" > diff --git a/source/common/param.cpp b/source/common/param.cpp > --- a/source/common/param.cpp > +++ b/source/common/param.cpp > @@ -286,6 +286,7 @@ > param->rc.bEnableConstVbv = 0; > param->bResetZoneConfig = 1; > param->reconfigWindowSize = 0; > + param->decoderVbvMaxRate = 0; > > /* Video Usability Information (VUI) */ > param->vui.aspectRatioIdc = 0; > @@ -2435,6 +2436,7 @@ > dst->rc.zonefileCount = src->rc.zonefileCount; > dst->reconfigWindowSize = src->reconfigWindowSize; > dst->bResetZoneConfig = src->bResetZoneConfig; > + dst->decoderVbvMaxRate = src->decoderVbvMaxRate; > Missing corresponding entries in info SEI and x265_check_param. > > if (src->rc.zonefileCount && src->rc.zones) > { > diff --git a/source/encoder/ratecontrol.cpp > b/source/encoder/ratecontrol.cpp > --- a/source/encoder/ratecontrol.cpp > +++ b/source/encoder/ratecontrol.cpp > @@ -335,7 +335,7 @@ > int vbvBufferSize = m_param->rc.vbvBufferSize * 1000; > int vbvMaxBitrate = m_param->rc.vbvMaxBitrate * 1000; > > - if (m_param->bEmitHRDSEI) > + if (m_param->bEmitHRDSEI && !m_param->decoderVbvMaxRate) > { > const HRDInfo* hrd = &sps.vuiParameters.hrdParameters; > vbvBufferSize = hrd->cpbSizeValue << (hrd->cpbSizeScale + > CPB_SHIFT); > @@ -781,8 +781,10 @@ > // Init HRD > HRDInfo* hrd = &sps.vuiParameters.hrdParameters; > hrd->cbrFlag = m_isCbr; > - if (m_param->reconfigWindowSize) > + if (m_param->reconfigWindowSize) { > hrd->cbrFlag = 0; > + vbvMaxBitrate = m_param->decoderVbvMaxRate * 1000; > + } > > // normalize HRD size and rate to the value / scale notation > hrd->bitRateScale = x265_clip3(0, 15, calcScale(vbvMaxBitrate) - > BR_SHIFT); > diff --git a/source/x265.h b/source/x265.h > --- a/source/x265.h > +++ b/source/x265.h > @@ -1905,6 +1905,9 @@ > > /* Edge variance threshold for quad tree establishment. */ > float edgeVarThreshold; > + > + /*Maxrate that could be signaled to the decoder. Default 0. API only. */ > + int decoderVbvMaxRate; > Indentation issue. Add an entry for the same in cli.rst > } x265_param; > > /* x265_param_alloc: > > -- > *Thanks and Regards,* > *Snehaa.G* > _______________________________________________ > x265-devel mailing list > x265-devel@videolan.org > https://mailman.videolan.org/listinfo/x265-devel > -- Regards, *Aruna Matheswaran,* Video Codec Engineer, Media & AI analytics BU,
_______________________________________________ x265-devel mailing list x265-devel@videolan.org https://mailman.videolan.org/listinfo/x265-devel