<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Jun 16, 2014 at 9:43 AM, 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="">On Sun, Jun 15, 2014 at 1:50 PM,  <<a href="mailto:aarthi@multicorewareinc.com">aarthi@multicorewareinc.com</a>> wrote:<br>

> # HG changeset patch<br>
> # User Aarthi Thirumalai<<a href="mailto:aarthi@multicorewareinc.com">aarthi@multicorewareinc.com</a>><br>
> # Date 1402857908 -19800<br>
> #      Mon Jun 16 00:15:08 2014 +0530<br>
> # Node ID 9e0a1f70169df85350507de83c27eeae172e7547<br>
> # Parent  5c2aee7700a3e222989fadabcb9ba9b1b3291fbd<br>
> rc: add 2 pass states in RateControl<br>
><br>
> diff -r 5c2aee7700a3 -r 9e0a1f70169d source/encoder/ratecontrol.h<br>
> --- a/source/encoder/ratecontrol.h      Mon Jun 16 00:04:10 2014 +0530<br>
> +++ b/source/encoder/ratecontrol.h      Mon Jun 16 00:15:08 2014 +0530<br>
> @@ -137,6 +137,30 @@<br>
>      double   m_nominalRemovalTime;<br>
>      double   m_prevCpbFinalAT;<br>
><br>
> +    /*2 pass */<br>
<br>
</div>white-space<br>
<div class=""><br>
> +    bool m_2pass;<br>
> +    FILE *m_statFileOut;<br>
> +    char *m_statFileTmpname;<br>
> +    FILE *m_cutreeStatFileOut;<br>
> +    char *m_cutreeStatFileTmpname;<br>
> +    char *m_cbtreeStatFileName;<br>
> +    FILE *m_cutreeStatFileIn;<br>
<br>
</div>are filenames required here?<br></blockquote><div>atleast these two char *m_statFileTmpname;char *m_cutreeStatFileTmpname; need to be stored, so that they can be used to rename those files back at the end of the encode - during those intermediate passes where both inputStatFile and outputStatFile may share the same name.</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>
> +<br>
> +    struct<br>
> +    {<br>
> +        uint16_t *qpBuffer[2]; /* Global buffers for converting MB-tree quantizer data. */<br>
> +        int qpbufPos;          /* In order to handle pyramid reordering, QP buffer acts as a stack.<br>
> +                                * This value is the current position (0 or 1). */<br>
> +        int srcCuCount;<br>
> +        /* For rescaling */<br>
> +        int rescaleEnabled;<br>
> +        float *scaleBuffer[2]; /* Intermediate buffers */<br>
> +        int filtersize[2];     /* filter size (H/V) */<br>
> +        float *coeffs[2];<br>
> +        int *pos[2];<br>
> +        int srcdim[2];         /* Source dimensions (W/H) */<br>
> +    } m_cuTreeStats;<br>
> +<br>
>      RateControl(x265_param *p);<br>
><br>
>      // to be called for each frame to process RateControl and set QP<br>
</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>
<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>