[prev in list] [next in list] [prev in thread] [next in thread]
List: helix-datatype-cvs
Subject: [Datatype-cvs] tools/dtdriver/engine csrcsplt.cpp,1.12,1.13
From: jfinnecy () helixcommunity ! org
Date: 2009-05-29 21:50:21
Message-ID: 200905292257.n4TMuvbE013018 () dommarcmx ! xen ! 10east ! com
[Download RAW message or body]
Update of /cvsroot/datatype/tools/dtdriver/engine
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv25177
Modified Files:
csrcsplt.cpp
Log Message:
Description
----------------------------
FLVs hang while transcoding the audio stream. Bug is eliminated by reverting the \
following change:
- if (!m_pStreamStatusArray[ulStreamNum].m_bOnStreamDonePending)
+ if (m_pStreamStatusArray[ulStreamNum].m_eFilterType !=
+ CStreamStatus::SFT_BLOCK)
Prior to change, once OnStreamDone was called on the video stream, we would \
automatically process any further packets on that stream. After the change, we \
instead enter the evaluation code (because stream status is still == SFT_PASS). Since \
lastOutputTimestamp is no longer incrementing on the video stream, and because \
ulMinOutputTimeStamp gets the lowest timestamp of all streams, including the \
no-longer-incrementing video stream, we eventually fail the test against \
HX_DTDR_SPLITTER_INPUT_TOLERANCE and stop processing packets on the audio stream.
Fix puts back short-circuit to force processing packets on streams that are "done" \
but still set to status SFT_PASS.
Index: csrcsplt.cpp
===================================================================
RCS file: /cvsroot/datatype/tools/dtdriver/engine/csrcsplt.cpp,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -d -r1.12 -r1.13
--- csrcsplt.cpp 26 May 2009 01:34:46 -0000 1.12
+++ csrcsplt.cpp 29 May 2009 21:50:19 -0000 1.13
@@ -258,8 +258,14 @@
// Sanity check
if (ulStreamNum < m_ulNumStreams)
{
+ // If OnStreamDone() has been called on this stream,
+ // we need to process this packet regardless.
+ if (m_pStreamStatusArray[ulStreamNum].m_bOnStreamDonePending)
+ {
+ bRet = TRUE;
+ }
// Is this stream being blocked?
- if (m_pStreamStatusArray[ulStreamNum].m_eFilterType != \
CStreamStatus::SFT_BLOCK) + else if \
(m_pStreamStatusArray[ulStreamNum].m_eFilterType != CStreamStatus::SFT_BLOCK) {
// This stream is either being passed through or decoded,
// so we need to do further checking to see if we should
_______________________________________________
Datatype-cvs mailing list
Datatype-cvs@helixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/datatype-cvs
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic