<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Jul 15, 2014 at 12:29 PM, Steve Borho <span dir="ltr"><<a href="mailto:steve@borho.org" target="_blank">steve@borho.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div class=""><div class="h5">On 07/15, <a href="mailto:sumalatha@multicorewareinc.com">sumalatha@multicorewareinc.com</a> wrote:<br>

> # HG changeset patch<br>
> # User Sumalatha Polureddy<<a href="mailto:sumalatha@multicorewareinc.com">sumalatha@multicorewareinc.com</a>><br>
> # Date 1405401248 -19800<br>
> # Node ID 52aa7ca073cf83ddde782175dd8c488b712f05c2<br>
> # Parent  51b3ff5e88e24c4a29cf422434f2e2a38f99d862<br>
> fix for crash when scalingList feature is enabled<br>
><br>
> diff -r 51b3ff5e88e2 -r 52aa7ca073cf source/Lib/TLibCommon/TComSlice.cpp<br>
> --- a/source/Lib/TLibCommon/TComSlice.cpp     Mon Jul 14 13:42:37 2014 -0500<br>
> +++ b/source/Lib/TLibCommon/TComSlice.cpp     Tue Jul 15 10:44:08 2014 +0530<br>
> @@ -715,19 +715,6 @@<br>
>      destroy();<br>
>  }<br>
><br>
> -/** set default quantization matrix to array<br>
> -*/<br>
> -void TComSlice::setDefaultScalingList()<br>
> -{<br>
> -    for (uint32_t sizeId = 0; sizeId < SCALING_LIST_SIZE_NUM; sizeId++)<br>
> -    {<br>
> -        for (uint32_t listId = 0; listId < g_scalingListNum[sizeId]; listId++)<br>
> -        {<br>
> -            getScalingList()->processDefaultMarix(sizeId, listId);<br>
> -        }<br>
> -    }<br>
> -}<br>
> -<br>
>  /** check if use default quantization matrix<br>
>   * \returns true if use default quantization matrix in all size<br>
>  */<br>
> diff -r 51b3ff5e88e2 -r 52aa7ca073cf source/Lib/TLibCommon/TComSlice.h<br>
> --- a/source/Lib/TLibCommon/TComSlice.h       Mon Jul 14 13:42:37 2014 -0500<br>
> +++ b/source/Lib/TLibCommon/TComSlice.h       Tue Jul 15 10:44:08 2014 +0530<br>
> @@ -1484,7 +1484,6 @@<br>
><br>
>      TComScalingList*   getScalingList()        { return m_scalingList; }<br>
><br>
> -    void  setDefaultScalingList();<br>
>      bool  checkDefaultScalingList();<br>
<br>
</div></div>does anything call this checkDefaultScalingList() method? I imagine we<br>
need to, particularly after loading one from a file.<br></blockquote><div><font color="#0000ff">In HM, checkDefaultScalingList() is called when scalinglistid is SCALING_LIST_FILE_READ</font></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

<div class=""><br>
>      void      setCabacInitFlag(bool val)   { m_cabacInitFlag = val; }   //!< set CABAC initial flag<br>
><br>
> diff -r 51b3ff5e88e2 -r 52aa7ca073cf source/Lib/TLibEncoder/TEncCu.cpp<br>
> --- a/source/Lib/TLibEncoder/TEncCu.cpp       Mon Jul 14 13:42:37 2014 -0500<br>
> +++ b/source/Lib/TLibEncoder/TEncCu.cpp       Tue Jul 15 10:44:08 2014 +0530<br>
> @@ -83,6 +83,7 @@<br>
>      }<br>
>      else if (top->m_useScalingListId == SCALING_LIST_DEFAULT)<br>
>      {<br>
> +        top->setDefaultScalingList();<br>
<br>
</div>this isn't the place to initialize the scaling list (especially not when<br>
this function can run many times); it should be done at about the same<br>
time the SPS and PPS are configured at startup.<br></blockquote><div><br></div><div><font color="#0000ff">will change and the patch</font> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

<div><div class="h5"><br>
>          m_trQuant.setScalingList(top->getScalingList());<br>
>          m_trQuant.setUseScalingList(true);<br>
>      }<br>
> diff -r 51b3ff5e88e2 -r 52aa7ca073cf source/encoder/encoder.cpp<br>
> --- a/source/encoder/encoder.cpp      Mon Jul 14 13:42:37 2014 -0500<br>
> +++ b/source/encoder/encoder.cpp      Tue Jul 15 10:44:08 2014 +0530<br>
> @@ -232,6 +232,19 @@<br>
>      }<br>
>  }<br>
><br>
> +/** set default quantization matrix to array<br>
> +*/<br>
> +void Encoder::setDefaultScalingList()<br>
> +{<br>
> +    for (uint32_t sizeId = 0; sizeId < SCALING_LIST_SIZE_NUM; sizeId++)<br>
> +    {<br>
> +        for (uint32_t listId = 0; listId < g_scalingListNum[sizeId]; listId++)<br>
> +        {<br>
> +            getScalingList()->processDefaultMarix(sizeId, listId);<br>
> +        }<br>
> +    }<br>
> +}<br>
> +<br>
>  /**<br>
>   \param   pic_in              input original YUV picture or NULL<br>
>   \param   pic_out             pointer to reconstructed picture struct<br>
> diff -r 51b3ff5e88e2 -r 52aa7ca073cf source/encoder/encoder.h<br>
> --- a/source/encoder/encoder.h        Mon Jul 14 13:42:37 2014 -0500<br>
> +++ b/source/encoder/encoder.h        Tue Jul 15 10:44:08 2014 +0530<br>
> @@ -202,6 +202,8 @@<br>
><br>
>      TComScalingList* getScalingList() { return &m_scalingList; }<br>
><br>
> +    void  setDefaultScalingList();<br>
> +<br>
>      void setThreadPool(ThreadPool* p) { m_threadPool = p; }<br>
><br>
>      void configure(x265_param *param);<br>
</div></div>> _______________________________________________<br>
> x265-devel mailing list<br>
> <a href="mailto:x265-devel@videolan.org">x265-devel@videolan.org</a><br>
> <a href="https://mailman.videolan.org/listinfo/x265-devel" target="_blank">https://mailman.videolan.org/listinfo/x265-devel</a><br>
<span class=""><font color="#888888"><br>
--<br>
Steve Borho<br>
_______________________________________________<br>
x265-devel mailing list<br>
<a href="mailto:x265-devel@videolan.org">x265-devel@videolan.org</a><br>
<a href="https://mailman.videolan.org/listinfo/x265-devel" target="_blank">https://mailman.videolan.org/listinfo/x265-devel</a><br>
</font></span></blockquote></div><br></div></div>