<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>