[xiph-cvs] r6735 - in trunk/oggdsf/src/lib: codecs/flac/libs/libflac/src/libFLAC/Debug_dynamic codecs/flac/libs/libflac/src/libFLAC++/Debug_dynamic codecs/vorbis/libs/libvorbis/win32/Vorbis_Dynamic_Debug core/directshow/dsfOggDemux core/ogg/libogg/win32/Dynamic_Debug

illiminable at xiph.org illiminable at xiph.org
Thu May 20 23:06:10 PDT 2004



Author: illiminable
Date: 2004-05-21 02:06:09 -0400 (Fri, 21 May 2004)
New Revision: 6735

Modified:
   trunk/oggdsf/src/lib/codecs/flac/libs/libflac/src/libFLAC++/Debug_dynamic/BuildLog.htm
   trunk/oggdsf/src/lib/codecs/flac/libs/libflac/src/libFLAC/Debug_dynamic/BuildLog.htm
   trunk/oggdsf/src/lib/codecs/vorbis/libs/libvorbis/win32/Vorbis_Dynamic_Debug/BuildLog.htm
   trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxSourceFilter.cpp
   trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxSourceFilter.h
   trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxSourcePin.cpp
   trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxSourcePin.h
   trunk/oggdsf/src/lib/core/ogg/libogg/win32/Dynamic_Debug/BuildLog.htm
Log:
Thread synch greatly improved. Worst case seek now only has a subsecond latency and majority of times it is so small as to appear instantaneous. 

Still need to revisit the code oredering in the seek code to look for improvements. 

For now... it's good enough.

Modified: trunk/oggdsf/src/lib/codecs/flac/libs/libflac/src/libFLAC/Debug_dynamic/BuildLog.htm
===================================================================
--- trunk/oggdsf/src/lib/codecs/flac/libs/libflac/src/libFLAC/Debug_dynamic/BuildLog.htm	2004-05-21 03:57:09 UTC (rev 6734)
+++ trunk/oggdsf/src/lib/codecs/flac/libs/libflac/src/libFLAC/Debug_dynamic/BuildLog.htm	2004-05-21 06:06:09 UTC (rev 6735)
@@ -46,12 +46,12 @@
     VSCOMNTOOLS="C:\Program Files\Microsoft Visual Studio .NET\Common7\Tools\"
     windir=C:\WINDOWS
     _ACP_ATLPROV=C:\Program Files\Microsoft Visual Studio .NET\Vc7\bin\ATLPROV.DLL
-    _ACP_INCLUDE="C:\DXSDK\Samples\C++\DirectShow\BaseClasses";C:\DXSDK\Include;..\..\..\..\core\directshow\dsfAbstractAudioDecoder;..\..\..\..\core\ogg\libOOOgg;..\..\..\helper\libfishsound\include;..\..\..\..\core\directshow\dsfSeeking;C:\DXSDK\Include;C:\Program Files\Microsoft Visual Studio .NET\Vc7\include;C:\Program Files\Microsoft Visual Studio .NET\Vc7\atlmfc\include;C:\Program Files\Microsoft Visual Studio .NET\Vc7\PlatformSDK\include\prerelease;C:\Program Files\Microsoft Visual Studio .NET\Vc7\PlatformSDK\include;C:\Program Files\Microsoft Visual Studio .NET\FrameworkSDK\include
+    _ACP_INCLUDE="C:\DXSDK\Samples\C++\DirectShow\BaseClasses";C:\DXSDK\Include;..\..\ogg\libOOOgg;..\..\ogg\libOOOggSeek;..\dsfSeeking;C:\DXSDK\Include;C:\Program Files\Microsoft Visual Studio .NET\Vc7\include;C:\Program Files\Microsoft Visual Studio .NET\Vc7\atlmfc\include;C:\Program Files\Microsoft Visual Studio .NET\Vc7\PlatformSDK\include\prerelease;C:\Program Files\Microsoft Visual Studio .NET\Vc7\PlatformSDK\include;C:\Program Files\Microsoft Visual Studio .NET\FrameworkSDK\include
     _ACP_LIB=C:\DXSDK\Lib;C:\Program Files\Microsoft Visual Studio .NET\Vc7\lib;C:\Program Files\Microsoft Visual Studio .NET\Vc7\atlmfc\lib;C:\Program Files\Microsoft Visual Studio .NET\Vc7\PlatformSDK\lib\prerelease;C:\Program Files\Microsoft Visual Studio .NET\Vc7\PlatformSDK\lib;C:\Program Files\Microsoft Visual Studio .NET\FrameworkSDK\lib;"C:\DXSDK\Samples\C++\DirectShow\BaseClasses";C:\DXSDK\Include;..\..\ogg\libOOOgg;..\..\ogg\libOOOggSeek;..\dsfSeeking;C:\DXSDK\Include;C:\Program Files\Microsoft Visual Studio .NET\Vc7\include;C:\Program Files\Microsoft Visual Studio .NET\Vc7\atlmfc\include;C:\Program Files\Microsoft Visual Studio .NET\Vc7\PlatformSDK\include\prerelease;C:\Program Files\Microsoft Visual Studio .NET\Vc7\PlatformSDK\include;C:\Program Files\Microsoft Visual Studio .NET\FrameworkSDK\include
     _ACP_PATH=C:\Program Files\Microsoft Visual Studio .NET\Vc7\bin;C:\Program Files\Microsoft Visual Studio .NET\Common7\Tools\bin\prerelease;C:\Program Files\Microsoft Visual Studio .NET\Common7\Tools\bin;C:\Program Files\Microsoft Visual Studio .NET\Common7\tools;C:\Program Files\Microsoft Visual Studio .NET\Common7\ide;C:\Program Files\HTML Help Workshop\;C:\Program Files\Microsoft Visual Studio .NET\FrameworkSDK\bin;C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\ATI Technologies\ATI Control Panel
 </pre></table><table width=100% bgcolor=#DFDFE5><tr><td><font face=arial size=+2>
 Command Lines
-</font></table><table width=* cellspacing=0 cellpadding=0><tr><td width=0 bgcolor=#EDEDF5> </td><td width=0 bgcolor=#FFFFFF> </td><td width=*><pre>Creating temporary file "C:\DOCUME~1\ILLIMI~1\LOCALS~1\Temp\BAT000007.bat" with contents
+</font></table><table width=* cellspacing=0 cellpadding=0><tr><td width=0 bgcolor=#EDEDF5> </td><td width=0 bgcolor=#FFFFFF> </td><td width=*><pre>Creating temporary file "C:\DOCUME~1\ILLIMI~1\LOCALS~1\Temp\BAT000054.bat" with contents
 [
 @echo off
 echo on
@@ -63,8 +63,8 @@
 exit 1
 :VCEnd
 ]
-Creating command line "C:\DOCUME~1\ILLIMI~1\LOCALS~1\Temp\BAT000007.bat"
-Creating temporary file "C:\DOCUME~1\ILLIMI~1\LOCALS~1\Temp\RSP000008.rsp" with contents
+Creating command line "C:\DOCUME~1\ILLIMI~1\LOCALS~1\Temp\BAT000054.bat"
+Creating temporary file "C:\DOCUME~1\ILLIMI~1\LOCALS~1\Temp\RSP000055.rsp" with contents
 [
 /Od /I ".\include" /I "..\..\include" /D "_DEBUG" /D "FLAC_API_EXPORTS" /D "VERSION=\"1.1.0\"" /D "FLAC__CPU_IA32" /D "FLAC__HAS_NASM" /D "FLAC__USE_3DNOW" /D "_WINDOWS" /D "WIN32" /D "_USRDLL" /D "_WINDLL" /FD /EHsc /MDd /GR /Fp".\Debug_dynamic/libFLAC_dynamic.pch" /Fo".\Debug_dynamic/" /Fd".\Debug_dynamic/" /FR".\Debug_dynamic/" /W3 /c /ZI /Gd
 stream_encoder_framing.c
@@ -86,8 +86,8 @@
 bitmath.c
 bitbuffer.c
 ]
-Creating command line "cl.exe @C:\DOCUME~1\ILLIMI~1\LOCALS~1\Temp\RSP000008.rsp /nologo"
-Creating temporary file "C:\DOCUME~1\ILLIMI~1\LOCALS~1\Temp\RSP000009.rsp" with contents
+Creating command line "cl.exe @C:\DOCUME~1\ILLIMI~1\LOCALS~1\Temp\RSP000055.rsp /nologo"
+Creating temporary file "C:\DOCUME~1\ILLIMI~1\LOCALS~1\Temp\RSP000056.rsp" with contents
 [
 /OUT:"..\..\obj\debug\bin/libFLAC.dll" /INCREMENTAL /NOLOGO /DLL /DEBUG /PDB:".\..\..\obj\debug\lib/libFLAC.pdb" /SUBSYSTEM:WINDOWS /IMPLIB:".\..\..\obj\debug\lib/libFLAC.lib" /MACHINE:I386 odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib
 Debug_dynamic\bitbuffer.obj
@@ -112,7 +112,7 @@
 ia32\fixed_asm.obj
 ia32\lpc_asm.obj
 ]
-Creating command line "link.exe @C:\DOCUME~1\ILLIMI~1\LOCALS~1\Temp\RSP000009.rsp"
+Creating command line "link.exe @C:\DOCUME~1\ILLIMI~1\LOCALS~1\Temp\RSP000056.rsp"
 </pre></table><table width=100% bgcolor=#DFDFE5><tr><td><font face=arial size=+2>
 Output Window
 </font></table><table width=* cellspacing=0 cellpadding=0><tr><td width=0 bgcolor=#EDEDF5> </td><td width=0 bgcolor=#FFFFFF> </td><td width=*><pre>Performing Custom Build Step

Modified: trunk/oggdsf/src/lib/codecs/flac/libs/libflac/src/libFLAC++/Debug_dynamic/BuildLog.htm
===================================================================
--- trunk/oggdsf/src/lib/codecs/flac/libs/libflac/src/libFLAC++/Debug_dynamic/BuildLog.htm	2004-05-21 03:57:09 UTC (rev 6734)
+++ trunk/oggdsf/src/lib/codecs/flac/libs/libflac/src/libFLAC++/Debug_dynamic/BuildLog.htm	2004-05-21 06:06:09 UTC (rev 6735)
@@ -46,7 +46,7 @@
     VSCOMNTOOLS="C:\Program Files\Microsoft Visual Studio .NET\Common7\Tools\"
     windir=C:\WINDOWS
     _ACP_ATLPROV=C:\Program Files\Microsoft Visual Studio .NET\Vc7\bin\ATLPROV.DLL
-    _ACP_INCLUDE="C:\DXSDK\Samples\C++\DirectShow\BaseClasses";C:\DXSDK\Include;..\..\..\..\core\directshow\dsfAbstractAudioDecoder;..\..\..\..\core\ogg\libOOOgg;..\..\..\helper\libfishsound\include;..\..\..\..\core\directshow\dsfSeeking;C:\DXSDK\Include;C:\Program Files\Microsoft Visual Studio .NET\Vc7\include;C:\Program Files\Microsoft Visual Studio .NET\Vc7\atlmfc\include;C:\Program Files\Microsoft Visual Studio .NET\Vc7\PlatformSDK\include\prerelease;C:\Program Files\Microsoft Visual Studio .NET\Vc7\PlatformSDK\include;C:\Program Files\Microsoft Visual Studio .NET\FrameworkSDK\include
+    _ACP_INCLUDE="C:\DXSDK\Samples\C++\DirectShow\BaseClasses";C:\DXSDK\Include;..\..\ogg\libOOOgg;..\..\ogg\libOOOggSeek;..\dsfSeeking;C:\DXSDK\Include;C:\Program Files\Microsoft Visual Studio .NET\Vc7\include;C:\Program Files\Microsoft Visual Studio .NET\Vc7\atlmfc\include;C:\Program Files\Microsoft Visual Studio .NET\Vc7\PlatformSDK\include\prerelease;C:\Program Files\Microsoft Visual Studio .NET\Vc7\PlatformSDK\include;C:\Program Files\Microsoft Visual Studio .NET\FrameworkSDK\include
     _ACP_LIB=C:\DXSDK\Lib;C:\Program Files\Microsoft Visual Studio .NET\Vc7\lib;C:\Program Files\Microsoft Visual Studio .NET\Vc7\atlmfc\lib;C:\Program Files\Microsoft Visual Studio .NET\Vc7\PlatformSDK\lib\prerelease;C:\Program Files\Microsoft Visual Studio .NET\Vc7\PlatformSDK\lib;C:\Program Files\Microsoft Visual Studio .NET\FrameworkSDK\lib;"C:\DXSDK\Samples\C++\DirectShow\BaseClasses";C:\DXSDK\Include;..\..\ogg\libOOOgg;..\..\ogg\libOOOggSeek;..\dsfSeeking;C:\DXSDK\Include;C:\Program Files\Microsoft Visual Studio .NET\Vc7\include;C:\Program Files\Microsoft Visual Studio .NET\Vc7\atlmfc\include;C:\Program Files\Microsoft Visual Studio .NET\Vc7\PlatformSDK\include\prerelease;C:\Program Files\Microsoft Visual Studio .NET\Vc7\PlatformSDK\include;C:\Program Files\Microsoft Visual Studio .NET\FrameworkSDK\include
     _ACP_PATH=C:\Program Files\Microsoft Visual Studio .NET\Vc7\bin;C:\Program Files\Microsoft Visual Studio .NET\Common7\Tools\bin\prerelease;C:\Program Files\Microsoft Visual Studio .NET\Common7\Tools\bin;C:\Program Files\Microsoft Visual Studio .NET\Common7\tools;C:\Program Files\Microsoft Visual Studio .NET\Common7\ide;C:\Program Files\HTML Help Workshop\;C:\Program Files\Microsoft Visual Studio .NET\FrameworkSDK\bin;C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\ATI Technologies\ATI Control Panel
 </pre></table><table width=100% bgcolor=#DFDFE5><tr><td><font face=arial size=+2>

Modified: trunk/oggdsf/src/lib/codecs/vorbis/libs/libvorbis/win32/Vorbis_Dynamic_Debug/BuildLog.htm
===================================================================
--- trunk/oggdsf/src/lib/codecs/vorbis/libs/libvorbis/win32/Vorbis_Dynamic_Debug/BuildLog.htm	2004-05-21 03:57:09 UTC (rev 6734)
+++ trunk/oggdsf/src/lib/codecs/vorbis/libs/libvorbis/win32/Vorbis_Dynamic_Debug/BuildLog.htm	2004-05-21 06:06:09 UTC (rev 6735)
@@ -46,7 +46,7 @@
     VSCOMNTOOLS="C:\Program Files\Microsoft Visual Studio .NET\Common7\Tools\"
     windir=C:\WINDOWS
     _ACP_ATLPROV=C:\Program Files\Microsoft Visual Studio .NET\Vc7\bin\ATLPROV.DLL
-    _ACP_INCLUDE="C:\DXSDK\Samples\C++\DirectShow\BaseClasses";C:\DXSDK\Include;..\..\..\..\core\directshow\dsfAbstractAudioDecoder;..\..\..\..\core\ogg\libOOOgg;..\..\..\helper\libfishsound\include;..\..\..\..\core\directshow\dsfSeeking;C:\DXSDK\Include;C:\Program Files\Microsoft Visual Studio .NET\Vc7\include;C:\Program Files\Microsoft Visual Studio .NET\Vc7\atlmfc\include;C:\Program Files\Microsoft Visual Studio .NET\Vc7\PlatformSDK\include\prerelease;C:\Program Files\Microsoft Visual Studio .NET\Vc7\PlatformSDK\include;C:\Program Files\Microsoft Visual Studio .NET\FrameworkSDK\include
+    _ACP_INCLUDE="C:\DXSDK\Samples\C++\DirectShow\BaseClasses";C:\DXSDK\Include;..\..\ogg\libOOOgg;..\..\ogg\libOOOggSeek;..\dsfSeeking;C:\DXSDK\Include;C:\Program Files\Microsoft Visual Studio .NET\Vc7\include;C:\Program Files\Microsoft Visual Studio .NET\Vc7\atlmfc\include;C:\Program Files\Microsoft Visual Studio .NET\Vc7\PlatformSDK\include\prerelease;C:\Program Files\Microsoft Visual Studio .NET\Vc7\PlatformSDK\include;C:\Program Files\Microsoft Visual Studio .NET\FrameworkSDK\include
     _ACP_LIB=C:\DXSDK\Lib;C:\Program Files\Microsoft Visual Studio .NET\Vc7\lib;C:\Program Files\Microsoft Visual Studio .NET\Vc7\atlmfc\lib;C:\Program Files\Microsoft Visual Studio .NET\Vc7\PlatformSDK\lib\prerelease;C:\Program Files\Microsoft Visual Studio .NET\Vc7\PlatformSDK\lib;C:\Program Files\Microsoft Visual Studio .NET\FrameworkSDK\lib;"C:\DXSDK\Samples\C++\DirectShow\BaseClasses";C:\DXSDK\Include;..\..\ogg\libOOOgg;..\..\ogg\libOOOggSeek;..\dsfSeeking;C:\DXSDK\Include;C:\Program Files\Microsoft Visual Studio .NET\Vc7\include;C:\Program Files\Microsoft Visual Studio .NET\Vc7\atlmfc\include;C:\Program Files\Microsoft Visual Studio .NET\Vc7\PlatformSDK\include\prerelease;C:\Program Files\Microsoft Visual Studio .NET\Vc7\PlatformSDK\include;C:\Program Files\Microsoft Visual Studio .NET\FrameworkSDK\include
     _ACP_PATH=C:\Program Files\Microsoft Visual Studio .NET\Vc7\bin;C:\Program Files\Microsoft Visual Studio .NET\Common7\Tools\bin\prerelease;C:\Program Files\Microsoft Visual Studio .NET\Common7\Tools\bin;C:\Program Files\Microsoft Visual Studio .NET\Common7\tools;C:\Program Files\Microsoft Visual Studio .NET\Common7\ide;C:\Program Files\HTML Help Workshop\;C:\Program Files\Microsoft Visual Studio .NET\FrameworkSDK\bin;C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\ATI Technologies\ATI Control Panel
 </pre></table><table width=100% bgcolor=#DFDFE5><tr><td><font face=arial size=+2>

Modified: trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxSourceFilter.cpp
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxSourceFilter.cpp	2004-05-21 03:57:09 UTC (rev 6734)
+++ trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxSourceFilter.cpp	2004-05-21 06:06:09 UTC (rev 6735)
@@ -88,6 +88,7 @@
         m_pLock = new CCritSec;
         mSourceFileLock = new CCritSec;
         mDemuxLock = new CCritSec;
+	mStreamLock = new CCritSec;
         mStreamMapper = new OggStreamMapper(this);
         debugLog.open("C:\\TEMP\\sourcelog.log", ios_base::out|ios_base::binary);
         debugLog << "**************** Starting LOg ********************"<<endl;
@@ -98,6 +99,7 @@
 {
         //DbgLog((LOG_ERROR, 1, TEXT("****************** DESTRUCTOR **********************")));
         delete m_pLock;
+	delete mStreamLock;
         delete mSourceFileLock;
         delete mDemuxLock;
         delete mStreamMapper;
@@ -208,7 +210,10 @@
         return E_NOTIMPL;
 }
 STDMETHODIMP OggDemuxSourceFilter::SetPositions(LONGLONG *pCurrent,DWORD dwCurrentFlags,LONGLONG *pStop,DWORD dwStopFlags){
+
+
         CAutoLock locLock(m_pLock);
+	
         if (mSeekTable->enabled())  {
                 debugLog<<"SetPos : Current = "<<*pCurrent<<" Flags = "<<dwCurrentFlags<<" Stop = "<<*pStop<<" dwStopFlags = "<<dwStopFlags<<endl;
                 debugLog<<"       : Delivering begin flush..."<<endl;
@@ -216,6 +221,8 @@
         
                 CAutoLock locSourceLock(mSourceFileLock);
                 
+		
+
                 DeliverBeginFlush();
                 debugLog<<"       : Begin flush Delviered."<<endl;
                 debugLog<<"       : Delivering new segemnt"<<endl;
@@ -244,6 +251,18 @@
                         mOggBuffer.clearData();
                 }
         
+		debugLog << "Setting GranPos : "<<mSeekTable->getRealStartPos()<<endl;
+		for (unsigned long i = 0; i < mStreamMapper->numStreams(); i++) {
+			mStreamMapper->getOggStream(i)->setSendExcess(locSendExcess);
+			mStreamMapper->getOggStream(i)->setLastEndGranPos(mSeekTable->getRealStartPos());
+		}
+		{
+			CAutoLock locStreamLock(mStreamLock);
+			debugLog<<"       : Delivering End Flush..."<<endl;
+			DeliverEndFlush();
+			debugLog<<"       : End flush Delviered."<<endl;
+			DeliverNewSegment(*pCurrent, *pCurrent + mSeekTable->fileDuration(), 1.0);
+		}
                 mSourceFile.seekg(mSeekTable->getStartPos(*pCurrent), ios_base::beg);
                 *pCurrent = mSeekTable->getRealStartPos();
         
@@ -255,21 +274,27 @@
                 } else {
                         debugLog<<"NO"<<endl;
                 }
-		debugLog << "Setting GranPos : "<<mSeekTable->getRealStartPos()<<endl;
-		for (unsigned long i = 0; i < mStreamMapper->numStreams(); i++) {
-			mStreamMapper->getOggStream(i)->setSendExcess(locSendExcess);
-			mStreamMapper->getOggStream(i)->setLastEndGranPos(mSeekTable->getRealStartPos());
-		}
+		//debugLog << "Setting GranPos : "<<mSeekTable->getRealStartPos()<<endl;
+		//for (unsigned long i = 0; i < mStreamMapper->numStreams(); i++) {
+		//	mStreamMapper->getOggStream(i)->setSendExcess(locSendExcess);
+		//	mStreamMapper->getOggStream(i)->setLastEndGranPos(mSeekTable->getRealStartPos());
+		//}
         } else {
                 return E_NOTIMPL;
         }
         
 
         //Run(locCurrentTime);
-	debugLog<<"       : Delivering End Flush..."<<endl;
-	DeliverEndFlush();
-	debugLog<<"       : End flush Delviered."<<endl;
-	DeliverNewSegment(*pCurrent, *pCurrent + mSeekTable->fileDuration(), 1.0);
+	//Grabbing stream lock so that new samples don't flow immediately.
+	
+	//CAutoLock locStreamLock(mStreamLock);
+	//debugLog<<"       : Delivering End Flush..."<<endl;
+	//DeliverEndFlush();
+	//debugLog<<"       : End flush Delviered."<<endl;
+	//DeliverNewSegment(*pCurrent, *pCurrent + mSeekTable->fileDuration(), 1.0);
+
+	
+
         //DeliverBeginFlush();
 
         return S_OK;
@@ -334,10 +359,13 @@
 
 //CAMThread Stuff
 DWORD OggDemuxSourceFilter::ThreadProc(void) {
+	debugLog << "Thread Proc Called..."<<endl;
         while(true) {
                 DWORD locThreadCommand = GetRequest();
+		debugLog << "Command = "<<locThreadCommand<<endl;
                 switch(locThreadCommand) {
                         case THREAD_EXIT:
+				debugLog << "EXIT ** "<<endl;
                                 Reply(S_OK);
                                 return S_OK;
 
@@ -347,6 +375,7 @@
                         //	break;
 
                         case THREAD_RUN:
+				debugLog << "RUN ** "<<endl;
                                 Reply(S_OK);
                                 DataProcessLoop();
                                 break;
@@ -515,12 +544,15 @@
 }
 STDMETHODIMP OggDemuxSourceFilter::Pause(void) {
         CAutoLock locLock(m_pLock);
+	debugLog << "** Pause called **"<<endl;
         if (m_State == State_Stopped) {
+		debugLog << "Was in stopped state... starting thread"<<endl;
                 if (ThreadExists() == FALSE) {
                         Create();
                 }
                 CallWorker(THREAD_RUN);
         }
+	debugLog<<"Was NOT is stopped state, not doing much at all..."<<endl;
         
         HRESULT locHR = CBaseFilter::Pause();
         

Modified: trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxSourceFilter.h
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxSourceFilter.h	2004-05-21 03:57:09 UTC (rev 6734)
+++ trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxSourceFilter.h	2004-05-21 06:06:09 UTC (rev 6735)
@@ -109,8 +109,8 @@
         virtual DWORD ThreadProc(void);
 
         
+	CCritSec* mStreamLock;
 
-
 protected:
         void resetStream();
         void DeliverEOS();

Modified: trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxSourcePin.cpp
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxSourcePin.cpp	2004-05-21 03:57:09 UTC (rev 6734)
+++ trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxSourcePin.cpp	2004-05-21 06:06:09 UTC (rev 6735)
@@ -32,13 +32,14 @@
 #include "oggdemuxsourcepin.h"
 
 OggDemuxSourcePin::OggDemuxSourcePin(	TCHAR* inObjectName, 
-										CBaseFilter* inParentFilter,
+										OggDemuxSourceFilter* inParentFilter,
                                                                                 CCritSec* inFilterLock,
                                                                                 StreamHeaders* inHeaderSource, 
                                                                                 CMediaType* inMediaType,
                                                                                 wstring inPinName)
         :	CBaseOutputPin(NAME("Ogg Demux Output Pin"), inParentFilter, inFilterLock, &mFilterHR, inPinName.c_str()),
                 mHeaders(inHeaderSource),
+		mParentFilter(inParentFilter),
                 mMediaType(inMediaType),
                 mDataQueue(NULL),
                 mFirstRun(true),
@@ -69,6 +70,7 @@
         return CBaseOutputPin::NonDelegatingQueryInterface(riid, ppv); 
 }
 bool OggDemuxSourcePin::deliverOggPacket(StampedOggPacket* inPacket) {
+	CAutoLock locStreamLock(mParentFilter->mStreamLock);
         IMediaSample* locSample = NULL;
         REFERENCE_TIME locStart = inPacket->startTime();
         REFERENCE_TIME locStop = inPacket->endTime();

Modified: trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxSourcePin.h
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxSourcePin.h	2004-05-21 03:57:09 UTC (rev 6734)
+++ trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxSourcePin.h	2004-05-21 06:06:09 UTC (rev 6735)
@@ -35,6 +35,7 @@
 #include <IOggCallback.h>
 #include "BasicSeekable.h"
 #include <fstream>
+#include "OggDemuxSourceFilter.h"
 using namespace std;
 
 class OggDemuxSourcePin
@@ -47,7 +48,7 @@
         DECLARE_IUNKNOWN
         STDMETHODIMP NonDelegatingQueryInterface(REFIID riid, void **ppv);
         OggDemuxSourcePin(	TCHAR* inObjectName, 
-										CBaseFilter* inParentFilter,
+										OggDemuxSourceFilter* inParentFilter,
                                                                                 CCritSec* inFilterLock,
                                                                                 StreamHeaders* inHeaderSource, 
                                                                                 CMediaType* inMediaType,
@@ -79,7 +80,7 @@
         virtual HRESULT DeliverEndFlush(void);
         virtual HRESULT DeliverBeginFlush(void);
 protected:
-	
+	OggDemuxSourceFilter* mParentFilter;
         StreamHeaders* mHeaders;
         CMediaType* mMediaType;
         StampedOggPacket* mPartialPacket;

Modified: trunk/oggdsf/src/lib/core/ogg/libogg/win32/Dynamic_Debug/BuildLog.htm
===================================================================
--- trunk/oggdsf/src/lib/core/ogg/libogg/win32/Dynamic_Debug/BuildLog.htm	2004-05-21 03:57:09 UTC (rev 6734)
+++ trunk/oggdsf/src/lib/core/ogg/libogg/win32/Dynamic_Debug/BuildLog.htm	2004-05-21 06:06:09 UTC (rev 6735)
@@ -46,7 +46,7 @@
     VSCOMNTOOLS="C:\Program Files\Microsoft Visual Studio .NET\Common7\Tools\"
     windir=C:\WINDOWS
     _ACP_ATLPROV=C:\Program Files\Microsoft Visual Studio .NET\Vc7\bin\ATLPROV.DLL
-    _ACP_INCLUDE="C:\DXSDK\Samples\C++\DirectShow\BaseClasses";C:\DXSDK\Include;..\..\..\..\core\directshow\dsfAbstractAudioDecoder;..\..\..\..\core\ogg\libOOOgg;..\..\..\helper\libfishsound\include;..\..\..\..\core\directshow\dsfSeeking;C:\DXSDK\Include;C:\Program Files\Microsoft Visual Studio .NET\Vc7\include;C:\Program Files\Microsoft Visual Studio .NET\Vc7\atlmfc\include;C:\Program Files\Microsoft Visual Studio .NET\Vc7\PlatformSDK\include\prerelease;C:\Program Files\Microsoft Visual Studio .NET\Vc7\PlatformSDK\include;C:\Program Files\Microsoft Visual Studio .NET\FrameworkSDK\include
+    _ACP_INCLUDE="C:\DXSDK\Samples\C++\DirectShow\BaseClasses";C:\DXSDK\Include;..\..\ogg\libOOOgg;..\..\ogg\libOOOggSeek;..\dsfSeeking;C:\DXSDK\Include;C:\Program Files\Microsoft Visual Studio .NET\Vc7\include;C:\Program Files\Microsoft Visual Studio .NET\Vc7\atlmfc\include;C:\Program Files\Microsoft Visual Studio .NET\Vc7\PlatformSDK\include\prerelease;C:\Program Files\Microsoft Visual Studio .NET\Vc7\PlatformSDK\include;C:\Program Files\Microsoft Visual Studio .NET\FrameworkSDK\include
     _ACP_LIB=C:\DXSDK\Lib;C:\Program Files\Microsoft Visual Studio .NET\Vc7\lib;C:\Program Files\Microsoft Visual Studio .NET\Vc7\atlmfc\lib;C:\Program Files\Microsoft Visual Studio .NET\Vc7\PlatformSDK\lib\prerelease;C:\Program Files\Microsoft Visual Studio .NET\Vc7\PlatformSDK\lib;C:\Program Files\Microsoft Visual Studio .NET\FrameworkSDK\lib;"C:\DXSDK\Samples\C++\DirectShow\BaseClasses";C:\DXSDK\Include;..\..\ogg\libOOOgg;..\..\ogg\libOOOggSeek;..\dsfSeeking;C:\DXSDK\Include;C:\Program Files\Microsoft Visual Studio .NET\Vc7\include;C:\Program Files\Microsoft Visual Studio .NET\Vc7\atlmfc\include;C:\Program Files\Microsoft Visual Studio .NET\Vc7\PlatformSDK\include\prerelease;C:\Program Files\Microsoft Visual Studio .NET\Vc7\PlatformSDK\include;C:\Program Files\Microsoft Visual Studio .NET\FrameworkSDK\include
     _ACP_PATH=C:\Program Files\Microsoft Visual Studio .NET\Vc7\bin;C:\Program Files\Microsoft Visual Studio .NET\Common7\Tools\bin\prerelease;C:\Program Files\Microsoft Visual Studio .NET\Common7\Tools\bin;C:\Program Files\Microsoft Visual Studio .NET\Common7\tools;C:\Program Files\Microsoft Visual Studio .NET\Common7\ide;C:\Program Files\HTML Help Workshop\;C:\Program Files\Microsoft Visual Studio .NET\FrameworkSDK\bin;C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\ATI Technologies\ATI Control Panel
 </pre></table><table width=100% bgcolor=#DFDFE5><tr><td><font face=arial size=+2>

--- >8 ----
List archives:  http://www.xiph.org/archives/
Ogg project homepage: http://www.xiph.org/ogg/
To unsubscribe from this list, send a message to 'cvs-request at xiph.org'
containing only the word 'unsubscribe' in the body.  No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.



More information about the commits mailing list