[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