[xiph-commits] r6858 - in trunk/oggdsf/src/lib:

illiminable at dactyl.lonelymoon.com illiminable
Fri Jun 25 13:55:24 PDT 2004


codecs/cmml/dsfCMMLDecoder
codecs/flac/libs/libflac/src/libFLAC++/Debug_dynamic
core/directshow/dsfAnxDemux core/directshow/dsfOggDemux
core/directshow/dsfSubtitleVMR9
Message-ID: <20040625205524.F2FC69AAAB at dactyl.lonelymoon.com>

Author: illiminable
Date: Fri Jun 25 13:55:24 2004
New Revision: 6858

Added:
trunk/oggdsf/src/lib/core/directshow/dsfAnxDemux/CMMLSourcePin.cpp
trunk/oggdsf/src/lib/core/directshow/dsfAnxDemux/CMMLSourcePin.h
Modified:
trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLDecoder/cmmldecoderdllstuff.h
trunk/oggdsf/src/lib/codecs/flac/libs/libflac/src/libFLAC++/Debug_dynamic/BuildLog.htm
trunk/oggdsf/src/lib/core/directshow/dsfAnxDemux/AnxDemuxSourceFilter.h
trunk/oggdsf/src/lib/core/directshow/dsfAnxDemux/CMMLStream.cpp
trunk/oggdsf/src/lib/core/directshow/dsfAnxDemux/CMMLStream.h
trunk/oggdsf/src/lib/core/directshow/dsfAnxDemux/anxdllstuff.h
trunk/oggdsf/src/lib/core/directshow/dsfAnxDemux/dsfAnxDemux.vcproj
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.h
trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/subtitledllstuff.h
Log:
* Tweaked the intelligent connect to force theora decoder to connect to VMR 9
* Tweaked intelligent conenct to force cmml outputs to connect to cmml decoder instead of Internal Script renderer.
* Still looking for reason why theora won't work in WMP9 or WMP10 but works in all previous versions, graphedit and every other directshow player.

* Added a derived class for CMML Output pin to ensure the intelligent connect override facility is operational.

Modified: trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLDecoder/cmmldecoderdllstuff.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLDecoder/cmmldecoderdllstuff.h	2004-06-25 09:39:44 UTC (rev 6857)
+++ trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLDecoder/cmmldecoderdllstuff.h	2004-06-25 14:13:46 UTC (rev 6858)
@@ -62,7 +62,7 @@

const REGFILTER2 CMMLDecodeFilterReg = {
1,
-		MERIT_NORMAL,
+		MERIT_PREFERRED + 2,
2,
CMMLDecodePinReg


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-06-25 09:39:44 UTC (rev 6857)
+++ trunk/oggdsf/src/lib/codecs/flac/libs/libflac/src/libFLAC++/Debug_dynamic/BuildLog.htm	2004-06-25 14:13:46 UTC (rev 6858)
@@ -15,6 +15,7 @@
APPDATA=C:\Documents and Settings\illiminable\Application Data
APR_ICONV_PATH=G:\Program Files\Subversion\iconv
CLIENTNAME=Console
+    COMMANDER_PATH=C:\Program Files\Utilities\Disk\totalcmd
CommonProgramFiles=C:\Program Files\Common Files
COMPUTERNAME=TIGER
ComSpec=C:\WINDOWS\system32\cmd.exe
@@ -46,7 +47,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;..\..\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_INCLUDE="C:\DXSDK\Samples\C++\DirectShow\BaseClasses";C:\DXSDK\Include;..\..\ogg\libOOOgg;..\..\ogg\libOOOggSeek;..\dsfSeeking;..\dsfOggDemux;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/dsfAnxDemux/AnxDemuxSourceFilter.h
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfAnxDemux/AnxDemuxSourceFilter.h	2004-06-25 09:39:44 UTC (rev 6857)
+++ trunk/oggdsf/src/lib/core/directshow/dsfAnxDemux/AnxDemuxSourceFilter.h	2004-06-25 14:13:46 UTC (rev 6858)
@@ -2,6 +2,7 @@
#include "anxdllstuff.h"
#include "OggDemuxSourceFilter.h"
#include "AnxStreamMapper.h"
+#include "CMMLStream.h"
#include <fstream>
using namespace std;

@@ -11,6 +12,7 @@
:	public OggDemuxSourceFilter
{
public:
+	friend class CMMLStream;
AnxDemuxSourceFilter(void);
~AnxDemuxSourceFilter(void);


Added: trunk/oggdsf/src/lib/core/directshow/dsfAnxDemux/CMMLSourcePin.cpp
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfAnxDemux/CMMLSourcePin.cpp	2004-06-25 09:39:44 UTC (rev 6857)
+++ trunk/oggdsf/src/lib/core/directshow/dsfAnxDemux/CMMLSourcePin.cpp	2004-06-25 14:13:46 UTC (rev 6858)
@@ -0,0 +1,113 @@
+#include "StdAfx.h"
+#include "cmmlsourcepin.h"
+
+CMMLSourcePin::CMMLSourcePin(	TCHAR* inObjectName,
+										OggDemuxSourceFilter* inParentFilter,
+										CCritSec* inFilterLock,
+										StreamHeaders* inHeaderSource,
+										CMediaType* inMediaType,
+										wstring inPinName)
+											:	OggDemuxSourcePin(inObjectName, inParentFilter, inFilterLock, inHeaderSource, inMediaType, inPinName)
+{
+
+}
+
+CMMLSourcePin::~CMMLSourcePin(void)
+{
+}
+
+
+STDMETHODIMP CMMLSourcePin::NonDelegatingQueryInterface(REFIID riid, void **ppv)
+{
+	if (riid == IID_IMediaSeeking) {
+		*ppv = (IMediaSeeking*)this;
+		((IUnknown*)*ppv)->AddRef();
+		return NOERROR;
+	}
+
+	return CBaseOutputPin::NonDelegatingQueryInterface(riid, ppv);
+}
+STDMETHODIMP CMMLSourcePin::Render(IPin* inOutputPin, IGraphBuilder* inGraphBuilder) {
+	if (inOutputPin == NULL || inGraphBuilder == NULL) {
+		return E_POINTER;
+	}
+
+
+    IBaseFilter* locCMMLFilter = NULL;
+
+
+
+    HRESULT locHR = S_OK;
+	//locHR = inGraphBuilder->FindFilterByName(L"CMML Decode Filter", &locRenderer);
+	if (locCMMLFilter == NULL) {
+		locHR= CoCreateInstance(CLSID_CMMLDecodeFilter, NULL, CLSCTX_INPROC, IID_IBaseFilter, (void **)&locCMMLFilter);
+		if (locHR != S_OK) {
+	        return locHR;
+	    }
+
+	    locHR = inGraphBuilder->AddFilter(locCMMLFilter, L"CMML Decode Filter");
+	    if (locHR != S_OK) {
+			locCMMLFilter->Release();
+			return locHR;
+		}
+	}
+
+	IEnumPins* locEnumPins;
+	IPin* locCMMLInputPin = NULL;
+	locHR = locCMMLFilter->EnumPins(&locEnumPins);
+
+	if (SUCCEEDED(locHR)) {
+		if (S_OK != locEnumPins->Next(1, &locCMMLInputPin, 0)) {
+			locHR = E_UNEXPECTED;
+		}
+	}
+
+	if (SUCCEEDED(locHR)) {
+		// CConnect VMR9 to the output of the theora decoder
+		//CMediaType* locMediaType = new CMediaType;
+		//
+		//FillMediaType(locMediaType);
+		////Fixes the null format block error
+		//VIDEOINFOHEADER* locVideoFormat = (VIDEOINFOHEADER*)locMediaType->AllocFormatBuffer(sizeof(VIDEOINFOHEADER));
+		//FillVideoInfoHeader(locVideoFormat);
+		locHR = inGraphBuilder->ConnectDirect(inOutputPin, locCMMLInputPin, mMediaType);
+		locCMMLInputPin->Release();
+	}
+	if (FAILED(locHR))
+	{
+
+		inGraphBuilder->RemoveFilter(locCMMLFilter);
+	}
+	locCMMLFilter->Release();
+
+    return locHR;
+
+
+}
+STDMETHODIMP CMMLSourcePin::Backout(IPin* inOutputPin, IGraphBuilder* inGraphBuilder) {
+   //HRESULT locHR = S_OK;
+   // if (m_Connected != NULL) // Pointer to the pin we're connected to.
+   // {
+   //     // Find the filter that owns the pin connected to us.
+   //     FILTER_INFO fi;
+   //     hr = m_Connected->QueryFilterInfo(&fi);
+   //     if (SUCCEEDED(hr))
+   //     {
+   //         if (fi.pFilter != NULL)
+   //         {
+   //             //  Disconnect the pins.
+   //             pGraph->Disconnect(m_Connected);
+   //             pGraph->Disconnect(pPin);
+   //             // Remove the filter from the graph.
+   //             pGraph->RemoveFilter(fi.pFilter);
+   //             fi.pFilter->Release();
+   //         }
+   //         else
+   //         {
+   //             hr = E_UNEXPECTED;
+   //         }
+   //     }
+   // }
+   // return hr;
+	return S_OK;
+}
\ No newline at end of file

Added: trunk/oggdsf/src/lib/core/directshow/dsfAnxDemux/CMMLSourcePin.h
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfAnxDemux/CMMLSourcePin.h	2004-06-25 09:39:44 UTC (rev 6857)
+++ trunk/oggdsf/src/lib/core/directshow/dsfAnxDemux/CMMLSourcePin.h	2004-06-25 14:13:46 UTC (rev 6858)
@@ -0,0 +1,24 @@
+#pragma once
+#include "anxdllstuff.h"
+#include "OggDemuxSourcePin.h"
+class CMMLSourcePin
+	:	public OggDemuxSourcePin
+	,	public IStreamBuilder
+{
+public:
+
+		DECLARE_IUNKNOWN
+	STDMETHODIMP NonDelegatingQueryInterface(REFIID riid, void **ppv);
+
+	CMMLSourcePin(	TCHAR* inObjectName,
+										OggDemuxSourceFilter* inParentFilter,
+										CCritSec* inFilterLock,
+										StreamHeaders* inHeaderSource,
+										CMediaType* inMediaType,
+										wstring inPinName);
+	~CMMLSourcePin(void);
+
+	//Implements IStreamBuilder to force the pin tothe cmml filter
+	STDMETHODIMP Render(IPin* inOutputPin, IGraphBuilder* inGraphBuilder);
+	STDMETHODIMP Backout(IPin* inOutputPin, IGraphBuilder* inGraphBuilder);
+};

Modified: trunk/oggdsf/src/lib/core/directshow/dsfAnxDemux/CMMLStream.cpp
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfAnxDemux/CMMLStream.cpp	2004-06-25 09:39:44 UTC (rev 6857)
+++ trunk/oggdsf/src/lib/core/directshow/dsfAnxDemux/CMMLStream.cpp	2004-06-25 14:13:46 UTC (rev 6858)
@@ -13,7 +13,27 @@
delete mCMMLFormatBlock;
}

+bool CMMLStream::AddPin() {
+	createFormatBlock();
+	CMediaType* locMediaType = createMediaType(	getMajorTypeGUID(),
+												getSubtypeGUID(),
+												getFormatGUID(),
+												getFormatBlockSize(),
+												getFormatBlock());

+	//LEAK CHECK::: Where does this get deleted ?
+	OggDemuxSourcePin* locSourcePin = new CMMLSourcePin(	NAME("Ogg Source Pin"),
+																mOwningFilter,
+																mOwningFilter->theLock(),
+																mCodecHeaders,
+																locMediaType,
+																getPinName());
+	mStreamReady = true;
+	mSourcePin = locSourcePin;
+
+	return true;
+
+}
bool CMMLStream::InitCodec(StampedOggPacket* inOggPacket) {
mCodecHeaders = new StreamHeaders;
mCodecHeaders->mCodecType = StreamHeaders::CMML;

Modified: trunk/oggdsf/src/lib/core/directshow/dsfAnxDemux/CMMLStream.h
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfAnxDemux/CMMLStream.h	2004-06-25 09:39:44 UTC (rev 6857)
+++ trunk/oggdsf/src/lib/core/directshow/dsfAnxDemux/CMMLStream.h	2004-06-25 14:13:46 UTC (rev 6858)
@@ -3,6 +3,7 @@
#include "anxdllstuff.h"
#include "OggPacket.h"
#include "OggStream.h"
+#include "CMMLSourcePin.h"
class CMMLStream
:	public OggStream
{
@@ -24,6 +25,9 @@

virtual LONGLONG getCurrentPos();

+	//Override
+	virtual bool AddPin();
+
protected:
OggPacket* mAnxDataPacket;
sCMMLFormatBlock* mCMMLFormatBlock;

Modified: trunk/oggdsf/src/lib/core/directshow/dsfAnxDemux/anxdllstuff.h
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfAnxDemux/anxdllstuff.h	2004-06-25 09:39:44 UTC (rev 6857)
+++ trunk/oggdsf/src/lib/core/directshow/dsfAnxDemux/anxdllstuff.h	2004-06-25 14:13:46 UTC (rev 6858)
@@ -16,6 +16,10 @@
DEFINE_GUID(MEDIASUBTYPE_CMML,
0x5a656e74, 0x6172, 0x6f26, 0xb7, 0x9c, 0xd6, 0x41, 0x6e, 0x64, 0x72, 0x82);

+// {BF1121D1-8739-45e1-BCD8-90B828F643AB}
+DEFINE_GUID(CLSID_CMMLDecodeFilter,
+0xbf1121d1, 0x8739, 0x45e1, 0xbc, 0xd8, 0x90, 0xb8, 0x28, 0xf6, 0x43, 0xab);
+
const REGFILTER2 AnxDemuxSourceFilterReg = {
1,
MERIT_NORMAL,

Modified: trunk/oggdsf/src/lib/core/directshow/dsfAnxDemux/dsfAnxDemux.vcproj
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfAnxDemux/dsfAnxDemux.vcproj	2004-06-25 09:39:44 UTC (rev 6857)
+++ trunk/oggdsf/src/lib/core/directshow/dsfAnxDemux/dsfAnxDemux.vcproj	2004-06-25 14:13:46 UTC (rev 6858)
@@ -128,6 +128,9 @@
RelativePath="AnxStreamMapper.cpp">
</File>
<File
+				RelativePath="CMMLSourcePin.cpp">
+			</File>
+			<File
RelativePath="CMMLStream.cpp">
</File>
<File
@@ -159,6 +162,9 @@
RelativePath="AnxStreamMapper.h">
</File>
<File
+				RelativePath="CMMLSourcePin.h">
+			</File>
+			<File
RelativePath="CMMLStream.h">
</File>
<File

Modified: trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxSourceFilter.cpp
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxSourceFilter.cpp	2004-06-25 09:39:44 UTC (rev 6857)
+++ trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxSourceFilter.cpp	2004-06-25 14:13:46 UTC (rev 6858)
@@ -589,3 +589,7 @@
DeliverEndFlush();
return CBaseFilter::Stop();
}
+
+CCritSec* OggDemuxSourceFilter::theLock() {
+	return m_pLock;
+}

Modified: trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxSourceFilter.h
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxSourceFilter.h	2004-06-25 09:39:44 UTC (rev 6857)
+++ trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxSourceFilter.h	2004-06-25 14:13:46 UTC (rev 6858)
@@ -106,6 +106,7 @@
virtual STDMETHODIMP IsUsingTimeFormat(const GUID *pFormat);


+	 CCritSec* theLock();
//CAMThread
virtual DWORD ThreadProc(void);


Modified: trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxSourcePin.h
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxSourcePin.h	2004-06-25 09:39:44 UTC (rev 6857)
+++ trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxSourcePin.h	2004-06-25 14:13:46 UTC (rev 6858)
@@ -40,7 +40,7 @@

class OggDemuxSourceFilter;

-class OggDemuxSourcePin
+class OGG_DEMUX_API OggDemuxSourcePin
:	public CBaseOutputPin
,	public BasicSeekable


Modified: trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/subtitledllstuff.h
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/subtitledllstuff.h	2004-06-25 09:39:44 UTC (rev 6857)
+++ trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/subtitledllstuff.h	2004-06-25 14:13:46 UTC (rev 6858)
@@ -82,7 +82,7 @@

const REGFILTER2 SubtitleVMR9FilterReg = {
1,
-		MERIT_NORMAL,
+		MERIT_PREFERRED + 2,
2,
SubtitleVMR9PinReg




More information about the commits mailing list