[x265] slicetype: fix flush
Satoshi Nakagawa
nakagawa424 at oki.com
Thu Jan 8 11:05:31 CET 2015
# HG changeset patch
# User Satoshi Nakagawa <nakagawa424 at oki.com>
# Date 1420711444 -32400
# Thu Jan 08 19:04:04 2015 +0900
# Node ID 25fb38350e81cda31a5e4af4f2814d12b968a8d1
# Parent 6dce2b87f0fe4aa37f9c7d66ec99447919b19c64
slicetype: fix flush
diff -r 6dce2b87f0fe -r 25fb38350e81 source/encoder/slicetype.cpp
--- a/source/encoder/slicetype.cpp Thu Jan 08 10:29:09 2015 +0530
+++ b/source/encoder/slicetype.cpp Thu Jan 08 19:04:04 2015 +0900
@@ -66,6 +66,7 @@
m_lastNonB = NULL;
m_bFilled = false;
m_bFlushed = false;
+ m_bFlush = false;
m_widthInCU = ((m_param->sourceWidth / 2) + X265_LOWRES_CU_SIZE - 1) >> X265_LOWRES_CU_BITS;
m_heightInCU = ((m_param->sourceHeight / 2) + X265_LOWRES_CU_SIZE - 1) >> X265_LOWRES_CU_BITS;
m_scratch = (int*)x265_malloc(m_widthInCU * sizeof(int));
@@ -92,6 +93,7 @@
/* do not allow slicetypeDecide() to get started again */
m_bReady = false;
m_bFlushed = false;
+ m_bFlush = false;
m_bBusy = false;
if (m_pool)
@@ -156,6 +158,7 @@
/* Called by API thread */
void Lookahead::flush()
{
+ m_bFlush = true;
m_bFilled = true;
/* just in case the input queue is never allowed to fill */
@@ -233,7 +236,7 @@
break;
}
while (m_inputQueue.size() >= m_param->lookaheadDepth ||
- (m_bFlushed && m_inputQueue.size()));
+ (m_bFlush && m_inputQueue.size()));
m_bBusy = false;
m_inputQueueLock.release();
diff -r 6dce2b87f0fe -r 25fb38350e81 source/encoder/slicetype.h
--- a/source/encoder/slicetype.h Thu Jan 08 10:29:09 2015 +0530
+++ b/source/encoder/slicetype.h Thu Jan 08 19:04:04 2015 +0900
@@ -163,6 +163,7 @@
bool m_bBusy; /* input lock - slicetypeDecide() is running */
bool m_bFilled; /* enough frames in lookahead for output to be available */
bool m_bFlushed; /* no more frames will be received */
+ bool m_bFlush;
bool findJob(int);
More information about the x265-devel
mailing list