<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Dec 13, 2017 at 8:42 AM,  <span dir="ltr"><<a href="mailto:santhoshini@multicorewareinc.com" target="_blank">santhoshini@multicorewareinc.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"># HG changeset patch<br>
# User Santhoshini Sekar <<a href="mailto:santhoshini@multicorewareinc.com">santhoshini@multicorewareinc.<wbr>com</a>><br>
# Date 1513082044 -19800<br>
#      Tue Dec 12 18:04:04 2017 +0530<br>
# Node ID e71e59aba01927aecd35115aba4a71<wbr>80817c6da3<br>
# Parent  6b079854e56e5ff3eaa11eab658989<wbr>e95e2d9152<br>
modify api x265_get_ref_frame_list to provide POC lists for L0 and L1 references<br>
<br>
diff --git a/doc/reST/api.rst b/doc/reST/api.rst<br>
--- a/doc/reST/api.rst<br>
+++ b/doc/reST/api.rst<br>
@@ -206,7 +206,7 @@<br>
     /* x265_get_ref_frame_list:<br>
      *     returns negative on error, 0 when access unit were output.<br>
      *     This API must be called after(poc >= lookaheadDepth + bframes + 2) condition check */<br>
-     int x265_get_ref_frame_list(x265_<wbr>encoder *encoder, x265_picyuv**, x265_picyuv**, int, int);<br>
+     int x265_get_ref_frame_list(x265_<wbr>encoder *encoder, x265_picyuv**, x265_picyuv**, int, int, int*, int*);<br>
<br>
 **x265_encoder_ctu_info** may be used to provide additional CTU-specific information to the encoder::<br>
<br>
diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt<br>
--- a/source/CMakeLists.txt<br>
+++ b/source/CMakeLists.txt<br>
@@ -29,7 +29,7 @@<br>
 option(STATIC_LINK_CRT "Statically link C runtime for release builds" OFF)<br>
 mark_as_advanced(FPROFILE_USE FPROFILE_GENERATE NATIVE_BUILD)<br>
 # X265_BUILD must be incremented each time the public API is changed<br>
-set(X265_BUILD 147)<br>
+set(X265_BUILD 148)<br>
 configure_file("${PROJECT_<wbr>SOURCE_DIR}/<a href="http://x265.def.in" rel="noreferrer" target="_blank">x265.def.in</a>"<br>
                "${PROJECT_BINARY_DIR}/x265.<wbr>def")<br>
 configure_file("${PROJECT_<wbr>SOURCE_DIR}/<a href="http://x265_config.h.in" rel="noreferrer" target="_blank">x265_config.h.in</a>"<br>
diff --git a/source/encoder/api.cpp b/source/encoder/api.cpp<br>
--- a/source/encoder/api.cpp<br>
+++ b/source/encoder/api.cpp<br>
@@ -356,13 +356,13 @@<br>
     return -1;<br>
 }<br>
<br>
-int x265_get_ref_frame_list(x265_<wbr>encoder *enc, x265_picyuv** l0, x265_picyuv** l1, int sliceType, int poc)<br>
+int x265_get_ref_frame_list(x265_<wbr>encoder *enc, x265_picyuv** l0, x265_picyuv** l1, int sliceType, int poc, int* pocL0, int* pocL1)<br>
 {<br>
     if (!enc)<br>
         return -1;<br>
<br>
     Encoder *encoder = static_cast<Encoder*>(enc);<br>
-    return encoder->getRefFrameList((<wbr>PicYuv**)l0, (PicYuv**)l1, sliceType, poc);<br>
+    return encoder->getRefFrameList((<wbr>PicYuv**)l0, (PicYuv**)l1, sliceType, poc, pocL0, pocL1);<br>
 }<br>
<br>
 int x265_set_analysis_data(x265_<wbr>encoder *enc, x265_analysis_data *analysis_data, int poc, uint32_t cuBytes)<br>
diff --git a/source/encoder/encoder.cpp b/source/encoder/encoder.cpp<br>
--- a/source/encoder/encoder.cpp<br>
+++ b/source/encoder/encoder.cpp<br>
@@ -448,7 +448,7 @@<br>
     return 0;<br>
 }<br>
<br>
-int Encoder::getRefFrameList(<wbr>PicYuv** l0, PicYuv** l1, int sliceType, int poc)<br>
+int Encoder::getRefFrameList(<wbr>PicYuv** l0, PicYuv** l1, int sliceType, int poc, int* pocL0, int* pocL1)<br>
 {<br>
     if (!(IS_X265_TYPE_I(sliceType)))<br>
     {<br>
@@ -460,6 +460,7 @@<br>
                 if (framePtr->m_encData->m_slice-<wbr>>m_refFrameList[0][j] && framePtr->m_encData->m_slice-><wbr>m_refFrameList[0][j]->m_<wbr>reconPic != NULL)<br>
                 {<br>
                     int l0POC = framePtr->m_encData->m_slice-><wbr>m_refFrameList[0][j]->m_poc;<br>
+                    pocL0[j] = l0POC;<br>
                     Frame* l0Fp = m_dpb->m_picList.getPOC(l0POC)<wbr>;<br>
                     while (l0Fp->m_reconRowFlag[l0Fp->m_<wbr>numRows - 1].get() == 0)<br>
                         l0Fp->m_reconRowFlag[l0Fp->m_<wbr>numRows - 1].waitForChange(0); /* If recon is not ready, current frame encoder has to wait. */<br>
@@ -471,6 +472,7 @@<br>
                 if (framePtr->m_encData->m_slice-<wbr>>m_refFrameList[1][j] && framePtr->m_encData->m_slice-><wbr>m_refFrameList[1][j]->m_<wbr>reconPic != NULL)<br>
                 {<br>
                     int l1POC = framePtr->m_encData->m_slice-><wbr>m_refFrameList[1][j]->m_poc;<br>
+                    pocL1[j] = l1POC;<br>
                     Frame* l1Fp = m_dpb->m_picList.getPOC(l1POC)<wbr>;<br>
                     while (l1Fp->m_reconRowFlag[l1Fp->m_<wbr>numRows - 1].get() == 0)<br>
                         l1Fp->m_reconRowFlag[l1Fp->m_<wbr>numRows - 1].waitForChange(0); /* If recon is not ready, current frame encoder has to wait. */<br>
diff --git a/source/encoder/encoder.h b/source/encoder/encoder.h<br>
--- a/source/encoder/encoder.h<br>
+++ b/source/encoder/encoder.h<br>
@@ -208,7 +208,7 @@<br>
<br>
     int copySlicetypePocAndSceneCut(<wbr>int *slicetype, int *poc, int *sceneCut);<br>
<br>
-    int getRefFrameList(PicYuv** l0, PicYuv** l1, int sliceType, int poc);<br>
+    int getRefFrameList(PicYuv** l0, PicYuv** l1, int sliceType, int poc, int* pocL0, int* pocL1);<br>
<br>
     int setAnalysisDataAfterZScan(<wbr>x265_analysis_data *analysis_data, Frame* curFrame);<br>
<br>
diff --git a/source/x265.h b/source/x265.h<br>
--- a/source/x265.h<br>
+++ b/source/x265.h<br>
@@ -1746,7 +1746,7 @@<br>
 /* x265_get_ref_frame_list:<br>
  *     returns negative on error, 0 when access unit were output.<br>
  *     This API must be called after(poc >= lookaheadDepth + bframes + 2) condition check */<br>
-int x265_get_ref_frame_list(x265_<wbr>encoder *encoder, x265_picyuv**, x265_picyuv**, int, int);<br>
+int x265_get_ref_frame_list(x265_<wbr>encoder *encoder, x265_picyuv**, x265_picyuv**, int, int, int*, int*);<br>
<br>
 /* x265_set_analysis_data:<br>
  *     set the analysis data. The incoming analysis_data structure is assumed to be AVC-sized blocks.<br>
@@ -1823,7 +1823,7 @@<br>
     int           (*encoder_intra_refresh)(x265_<wbr>encoder*);<br>
     int           (*encoder_ctu_info)(x265_<wbr>encoder*, int, x265_ctu_info_t**);<br>
     int           (*get_slicetype_poc_and_<wbr>scenecut)(x265_encoder*, int*, int*, int*);<br>
-    int           (*get_ref_frame_list)(x265_<wbr>encoder*, x265_picyuv**, x265_picyuv**, int, int);<br>
+    int           (*get_ref_frame_list)(x265_<wbr>encoder*, x265_picyuv**, x265_picyuv**, int, int, int*, int*);<br>
     FILE*         (*csvlog_open)(const x265_param*);<br>
     void          (*csvlog_frame)(const x265_param*, const x265_picture*);<br>
     void          (*csvlog_encode)(x265_encoder*<wbr>, const x265_stats*, int, char**);<br>
<br>______________________________<wbr>_________________<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" rel="noreferrer" target="_blank">https://mailman.videolan.org/<wbr>listinfo/x265-deve</a></blockquote><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Pushed.<br></blockquote></div></div></div>