[xiph-commits] r8288 - trunk/oggdsf/src/lib/core/directshow/dsfOggDemux

illiminable at motherfish-iii.xiph.org illiminable at motherfish-iii.xiph.org
Fri Nov 26 02:05:27 PST 2004


Author: illiminable
Date: 2004-11-26 02:05:26 -0800 (Fri, 26 Nov 2004)
New Revision: 8288

Modified:
   trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxSourceFilter.cpp
Log:
* Fixed the bug where if you seeked really close to the end, then seeked back into the file, all the av would stop but the timebar would keep moving. The thread loop was prematurely exiting when it saw the end of the file, which due to buffer was before the end of the av. So once it got close to the end of the file and the demux had sent all the data, it left the loop, then when you seek back, the data pump is not running.

Modified: trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxSourceFilter.cpp
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxSourceFilter.cpp	2004-11-26 09:19:29 UTC (rev 8287)
+++ trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxSourceFilter.cpp	2004-11-26 10:05:26 UTC (rev 8288)
@@ -591,7 +591,8 @@
 		locIsEOF = mDataSource->isEOF();
 		//
 	}
-	while (!locIsEOF && locKeepGoing) {
+	//while (!locIsEOF && locKeepGoing) {
+	while(true) {
 		if(CheckRequest(&locCommand) == TRUE) {
 			debugLog<<"DataProcessLoop : Thread Command issued... leaving loop."<<endl;
 			delete[] locBuff;
@@ -622,6 +623,8 @@
 		}
 		if (!locKeepGoing) {
 			debugLog << "DataProcessLoop : Feed in data buffer said stop"<<endl;
+			debugLog<<"DataProcessLoop : Exiting. Deliver EOS"<<endl;
+			DeliverEOS();
 		}
 		{
 			CAutoLock locSourceLock(mSourceFileLock);
@@ -631,12 +634,14 @@
 			//
 		}
 		if (locIsEOF) {
-			//debugLog << "DataProcessLoop : EOF"<<endl;
+			debugLog << "DataProcessLoop : EOF"<<endl;
+			debugLog<<"DataProcessLoop : Exiting. Deliver EOS"<<endl;
+			DeliverEOS();
 		}
 	}
 
 	//debugLog<<"DataProcessLoop : Exiting. Deliver EOS"<<endl;
-	DeliverEOS();
+	//DeliverEOS();
 
 	//Shuold we flush ehre ?
 	delete[] locBuff;



More information about the commits mailing list