[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