[x265] [PATCH] slicetype: removed TComList(std::list) and used PicList to store the TComPic's
Gopu Govindaswamy
gopu at multicorewareinc.com
Wed Oct 9 07:30:57 CEST 2013
# HG changeset patch
# User Gopu Govindaswamy <gopu at multicorewareinc.com>
# Date 1381296647 -19800
# Node ID 8348e1f887c0415b57430eddd7cbaef1826b52e7
# Parent fc7fbdd18bc0d6d7f98180332e065d83c054fe02
slicetype: removed TComList(std::list) and used PicList to store the TComPic's
diff -r fc7fbdd18bc0 -r 8348e1f887c0 source/encoder/slicetype.cpp
--- a/source/encoder/slicetype.cpp Wed Oct 09 00:00:10 2013 -0500
+++ b/source/encoder/slicetype.cpp Wed Oct 09 11:00:47 2013 +0530
@@ -103,7 +103,7 @@
{
pic->m_lowres.init(pic->getPicYuvOrg(), pic->getSlice()->getPOC(), sliceType, cfg->param.bframes);
- inputQueue.pushBack(pic);
+ inputQueue.pushBack(*pic);
if (inputQueue.size() >= (size_t)cfg->param.lookaheadDepth)
slicetypeDecide();
}
@@ -123,7 +123,7 @@
pic->m_lowres.sliceType = X265_TYPE_I;
pic->m_lowres.bKeyframe = true;
lastKeyframe = 0;
- outputQueue.pushBack(pic);
+ outputQueue.pushBack(*pic);
numDecided++;
frames[0] = &(pic->m_lowres);
return;
@@ -167,7 +167,7 @@
//Push pictures in encode order
for (int i = 0; i < dframes; i++)
{
- outputQueue.pushBack(picsAnalysed[i]);
+ outputQueue.pushBack(*picsAnalysed[i]);
}
if (pic)
@@ -183,7 +183,7 @@
pic->m_lowres.sliceType = X265_TYPE_I;
pic->m_lowres.bKeyframe = true;
lastKeyframe = pic->m_lowres.frameNum;
- outputQueue.pushBack(pic);
+ outputQueue.pushBack(*pic);
numDecided++;
}
else if (cfg->param.bframes == 0 || inputQueue.size() == 1)
@@ -197,7 +197,7 @@
pic->m_lowres.bKeyframe = true;
lastKeyframe = pic->m_lowres.frameNum;
}
- outputQueue.pushBack(pic);
+ outputQueue.pushBack(*pic);
numDecided++;
}
else
@@ -222,14 +222,14 @@
TComPic *pic = list[j - 1];
if (pic->m_lowres.sliceType == X265_TYPE_AUTO)
pic->m_lowres.sliceType = X265_TYPE_P;
- outputQueue.pushBack(pic);
+ outputQueue.pushBack(*pic);
numDecided++;
for (int i = 0; i < j - 1; i++)
{
pic = list[i];
if (pic->m_lowres.sliceType == X265_TYPE_AUTO)
pic->m_lowres.sliceType = X265_TYPE_B;
- outputQueue.pushBack(pic);
+ outputQueue.pushBack(*pic);
numDecided++;
}
}
@@ -561,15 +561,16 @@
int reset_start;
int vbv_lookahead = 0;
- TComList<TComPic*>::iterator iterPic = inputQueue.begin();
- for (framecnt = 0; (framecnt < maxSearch) && (framecnt < (int)inputQueue.size()) && (*iterPic)->m_lowres.sliceType == X265_TYPE_AUTO; framecnt++)
+ TComPic* Pic = inputQueue.first();
+ for (framecnt = 0; (framecnt < maxSearch) && (framecnt < (int)inputQueue.size()) && Pic->m_lowres.sliceType == X265_TYPE_AUTO; framecnt++)
{
- frames[framecnt + 1] = &((*iterPic++)->m_lowres);
+ frames[framecnt + 1] = &Pic->m_lowres;
+ Pic = Pic->m_next;
}
if (!framecnt)
{
- frames[1] = &((*iterPic)->m_lowres);
+ frames[1] = &Pic->m_lowres;
frames[2] = NULL;
return;
}
diff -r fc7fbdd18bc0 -r 8348e1f887c0 source/encoder/slicetype.h
--- a/source/encoder/slicetype.h Wed Oct 09 00:00:10 2013 -0500
+++ b/source/encoder/slicetype.h Wed Oct 09 11:00:47 2013 +0530
@@ -24,8 +24,8 @@
#ifndef X265_SLICETYPE_H
#define X265_SLICETYPE_H
-#include "TLibCommon/TComList.h"
#include "motion.h"
+#include "piclist.h"
// arbitrary, but low because SATD scores are 1/4 normal
#define X265_LOOKAHEAD_QP (12 + QP_BD_OFFSET)
@@ -50,8 +50,8 @@
int widthInCU; // width of lowres frame in downscale CUs
int heightInCU; // height of lowres frame in downscale CUs
- TComList<TComPic*> inputQueue; // input pictures in order received
- TComList<TComPic*> outputQueue; // pictures to be encoded, in encode order
+ PicList inputQueue; // input pictures in order received
+ PicList outputQueue; // pictures to be encoded, in encode order
Lookahead(TEncCfg *);
~Lookahead();
More information about the x265-devel
mailing list