[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