[xiph-commits] r17499 - in trunk/oggdsf: . src/lib/codecs/vorbis/filters/dsfVorbisDecoder src/lib/core/directshow/dsfOggDemux2 src/lib/plugin/AxPlayer

cristianadam at svn.xiph.org cristianadam at svn.xiph.org
Sat Oct 9 16:34:34 PDT 2010


Author: cristianadam
Date: 2010-10-09 16:34:34 -0700 (Sat, 09 Oct 2010)
New Revision: 17499

Removed:
   trunk/oggdsf/src/lib/plugin/AxPlayer/dlldatax.c
   trunk/oggdsf/src/lib/plugin/AxPlayer/dlldatax.h
Modified:
   trunk/oggdsf/ChangeLog.txt
   trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisDecoder/VorbisDecodeInputPin.cpp
   trunk/oggdsf/src/lib/core/directshow/dsfOggDemux2/OggDemuxInputPin.cpp
   trunk/oggdsf/src/lib/plugin/AxPlayer/AxPlayer-2005.vcproj
   trunk/oggdsf/src/lib/plugin/AxPlayer/AxPlayer.cpp
   trunk/oggdsf/src/lib/plugin/AxPlayer/DShowVideoPlayer.h
   trunk/oggdsf/src/lib/plugin/AxPlayer/dllmain.cpp
Log:
Fixed Speex playback, and possibly a Vorbis URL playback issue.

Modified: trunk/oggdsf/ChangeLog.txt
===================================================================
--- trunk/oggdsf/ChangeLog.txt	2010-10-09 16:29:16 UTC (rev 17498)
+++ trunk/oggdsf/ChangeLog.txt	2010-10-09 23:34:34 UTC (rev 17499)
@@ -4,6 +4,8 @@
     * Updated webmdshow to 0.9.10
     * Updated libtheora to 1.2.0 alpha (SVN)
     * Updated libtremor
+    * Fixed Speex playback. The previous versions had a Vorbis bug which caused Speex playback to
+       be broken.
     * Added "controls" attribute to HTML5 <video> ActiveX plugin
 
 Version 0.84.17359 - 04.08.2010

Modified: trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisDecoder/VorbisDecodeInputPin.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisDecoder/VorbisDecodeInputPin.cpp	2010-10-09 16:29:16 UTC (rev 17498)
+++ trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisDecoder/VorbisDecodeInputPin.cpp	2010-10-09 23:34:34 UTC (rev 17499)
@@ -430,24 +430,42 @@
 	
     return CBaseInputPin::SetMediaType(inMediaType);
 }
+
 HRESULT VorbisDecodeInputPin::CheckMediaType(const CMediaType *inMediaType)
 {
-	if (AbstractTransformInputPin::CheckMediaType(inMediaType) == S_OK) 
+	if (inMediaType->majortype == MEDIATYPE_OggPacketStream &&
+        inMediaType->formattype == FORMAT_OggIdentHeader &&
+        inMediaType->cbFormat == VORBIS_IDENT_HEADER_SIZE) 
     {
-		if (inMediaType->majortype == MEDIATYPE_OggPacketStream &&
-            inMediaType->formattype == FORMAT_OggIdentHeader &&
-            inMediaType->cbFormat == VORBIS_IDENT_HEADER_SIZE) 
+		if (strncmp((char*)inMediaType->pbFormat, "\001vorbis", 7) == 0) 
         {
-			if (strncmp((char*)inMediaType->pbFormat, "\001vorbis", 7) != 0) 
-            {
-                LOG(logDEBUG) << "Check media type failed";
-                return S_FALSE;
-			}
+            LOG(logDEBUG) << "Check media type OK (MEDIATYPE_OggPacketStream)";
+            return S_OK;
 		}
-        LOG(logDEBUG) << "Check media type ok";
+	}
+    else if (inMediaType->majortype == MEDIATYPE_Audio &&
+             inMediaType->subtype == MEDIASUBTYPE_Vorbis &&
+             inMediaType->formattype == FORMAT_Vorbis)
+    {
+        LOG(logDEBUG) << "Check media type OK (MEDIASUBTYPE_Vorbis)";
         return S_OK;
-	}
-    LOG(logDEBUG) << "Check media type failed";
+    }
+    else if (inMediaType->majortype == MEDIATYPE_Audio &&
+             inMediaType->subtype == MEDIASUBTYPE_Vorbis2 &&
+             inMediaType->formattype == FORMAT_Vorbis2)
+    {
+        LOG(logDEBUG) << "Check media type OK (MEDIASUBTYPE_Vorbis2)";
+        return S_OK;
+    }
+
+    LOG(logDEBUG) << __FUNCTIONW__ << " Input type not OK.";
+    if (inMediaType->cbFormat > 7)
+    {
+        char format[8] = {};
+        strncpy(format, reinterpret_cast<const char*>(inMediaType->pbFormat), 7);
+        LOG(logDEBUG) << __FUNCTIONW__ << " cbFormat start: " << format;
+    }
+
     return S_FALSE;
 }
 

Modified: trunk/oggdsf/src/lib/core/directshow/dsfOggDemux2/OggDemuxInputPin.cpp
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfOggDemux2/OggDemuxInputPin.cpp	2010-10-09 16:29:16 UTC (rev 17498)
+++ trunk/oggdsf/src/lib/core/directshow/dsfOggDemux2/OggDemuxInputPin.cpp	2010-10-09 23:34:34 UTC (rev 17499)
@@ -38,7 +38,7 @@
 CBasePin(NAME("OggDemuxInputPin"), pFilter, pLock, phr, L"Input", PINDIR_INPUT)
 {
     m_mediaType.SetType(&MEDIATYPE_Stream);
-    m_mediaType.SetSubtype(&MEDIASUBTYPE_Ogg);
+    m_mediaType.SetSubtype(&MEDIASUBTYPE_NULL);
 }
 
 // base pin overrides

Modified: trunk/oggdsf/src/lib/plugin/AxPlayer/AxPlayer-2005.vcproj
===================================================================
--- trunk/oggdsf/src/lib/plugin/AxPlayer/AxPlayer-2005.vcproj	2010-10-09 16:29:16 UTC (rev 17498)
+++ trunk/oggdsf/src/lib/plugin/AxPlayer/AxPlayer-2005.vcproj	2010-10-09 23:34:34 UTC (rev 17499)
@@ -29,6 +29,7 @@
 			>
 			<Tool
 				Name="VCPreBuildEventTool"
+				CommandLine=""
 			/>
 			<Tool
 				Name="VCCustomBuildTool"
@@ -49,7 +50,7 @@
 				HeaderFileName="&quot;Generated Files\AxPlayer_i.h&quot;"
 				DLLDataFileName=""
 				InterfaceIdentifierFileName="&quot;Generated Files\AxPlayer_i.c&quot;"
-				ProxyFileName="&quot;Generated Files\AxPlayer_p.c&quot;"
+				ProxyFileName=""
 				ValidateParameters="true"
 			/>
 			<Tool
@@ -124,6 +125,7 @@
 			>
 			<Tool
 				Name="VCPreBuildEventTool"
+				CommandLine=""
 			/>
 			<Tool
 				Name="VCCustomBuildTool"
@@ -144,7 +146,7 @@
 				HeaderFileName="&quot;Generated Files\AxPlayer_i.h&quot;"
 				DLLDataFileName=""
 				InterfaceIdentifierFileName="&quot;Generated Files\AxPlayer_i.c&quot;"
-				ProxyFileName="&quot;Generated Files\AxPlayer_p.c&quot;"
+				ProxyFileName=""
 			/>
 			<Tool
 				Name="VCCLCompilerTool"
@@ -218,6 +220,7 @@
 			>
 			<Tool
 				Name="VCPreBuildEventTool"
+				CommandLine=""
 			/>
 			<Tool
 				Name="VCCustomBuildTool"
@@ -238,7 +241,7 @@
 				HeaderFileName="&quot;Generated Files\AxPlayer_i.h&quot;"
 				DLLDataFileName=""
 				InterfaceIdentifierFileName="&quot;Generated Files\AxPlayer_i.c&quot;"
-				ProxyFileName="&quot;Generated Files\AxPlayer_p.c&quot;"
+				ProxyFileName=""
 				ValidateParameters="true"
 			/>
 			<Tool
@@ -316,6 +319,7 @@
 			>
 			<Tool
 				Name="VCPreBuildEventTool"
+				CommandLine=""
 			/>
 			<Tool
 				Name="VCCustomBuildTool"
@@ -336,7 +340,7 @@
 				HeaderFileName="&quot;Generated Files\AxPlayer_i.h&quot;"
 				DLLDataFileName=""
 				InterfaceIdentifierFileName="&quot;Generated Files\AxPlayer_i.c&quot;"
-				ProxyFileName="&quot;Generated Files\AxPlayer_p.c&quot;"
+				ProxyFileName=""
 			/>
 			<Tool
 				Name="VCCLCompilerTool"
@@ -430,46 +434,6 @@
 				>
 			</File>
 			<File
-				RelativePath=".\dlldatax.c"
-				>
-				<FileConfiguration
-					Name="Debug|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						CompileAsManaged="0"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						CompileAsManaged="0"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						CompileAsManaged="0"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						CompileAsManaged="0"
-					/>
-				</FileConfiguration>
-			</File>
-			<File
 				RelativePath=".\dllmain.cpp"
 				>
 				<FileConfiguration
@@ -580,10 +544,6 @@
 				>
 			</File>
 			<File
-				RelativePath=".\dlldatax.h"
-				>
-			</File>
-			<File
 				RelativePath=".\dllmain.h"
 				>
 			</File>
@@ -626,11 +586,11 @@
 				>
 			</File>
 			<File
-				RelativePath=".\Res\VideoTagBehavior.rgs"
+				RelativePath=".\VideoTagBehavior.rgs"
 				>
 			</File>
 			<File
-				RelativePath=".\VideoTagBehavior.rgs"
+				RelativePath=".\Res\VideoTagBehavior.rgs"
 				>
 			</File>
 		</Filter>

Modified: trunk/oggdsf/src/lib/plugin/AxPlayer/AxPlayer.cpp
===================================================================
--- trunk/oggdsf/src/lib/plugin/AxPlayer/AxPlayer.cpp	2010-10-09 16:29:16 UTC (rev 17498)
+++ trunk/oggdsf/src/lib/plugin/AxPlayer/AxPlayer.cpp	2010-10-09 23:34:34 UTC (rev 17499)
@@ -33,7 +33,6 @@
 #include "resource.h"
 #include "AxPlayer_i.h"
 #include "dllmain.h"
-#include "dlldatax.h"
 #include <MsHtmHst.h>
 
 namespace 
@@ -45,11 +44,6 @@
 // Used to determine whether the DLL can be unloaded by OLE
 STDAPI DllCanUnloadNow(void)
 {
-#ifdef _MERGE_PROXYSTUB
-    HRESULT hr = PrxDllCanUnloadNow();
-    if (hr != S_OK)
-        return hr;
-#endif
     return _AtlModule.DllCanUnloadNow();
 }
 
@@ -57,10 +51,6 @@
 // Returns a class factory to create an object of the requested type
 STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv)
 {
-#ifdef _MERGE_PROXYSTUB
-    if (PrxDllGetClassObject(rclsid, riid, ppv) == S_OK)
-        return S_OK;
-#endif
     return _AtlModule.DllGetClassObject(rclsid, riid, ppv);
 }
 
@@ -70,11 +60,6 @@
 {
     // registers object, typelib and all interfaces in typelib
     HRESULT hr = _AtlModule.DllRegisterServer();
-#ifdef _MERGE_PROXYSTUB
-    if (FAILED(hr))
-        return hr;
-    hr = PrxDllRegisterServer();
-#endif
 
     // IEREGISTERXMLNSFN is available in Microsoft SDK for Windows 7,
     // which doesn't work with Visual Studio 2005
@@ -99,14 +84,6 @@
 STDAPI DllUnregisterServer(void)
 {
 	HRESULT hr = _AtlModule.DllUnregisterServer();
-#ifdef _MERGE_PROXYSTUB
-    if (FAILED(hr))
-        return hr;
-    hr = PrxDllRegisterServer();
-    if (FAILED(hr))
-        return hr;
-    hr = PrxDllUnregisterServer();
-#endif
 	return hr;
 }
 

Modified: trunk/oggdsf/src/lib/plugin/AxPlayer/DShowVideoPlayer.h
===================================================================
--- trunk/oggdsf/src/lib/plugin/AxPlayer/DShowVideoPlayer.h	2010-10-09 16:29:16 UTC (rev 17498)
+++ trunk/oggdsf/src/lib/plugin/AxPlayer/DShowVideoPlayer.h	2010-10-09 23:34:34 UTC (rev 17499)
@@ -110,6 +110,9 @@
     void OnMouseButtonUp(long x, long y);
     void OnMouseMove(long x, long y);
 
+    bool EnableControls() const { return m_enableControls; }
+    void EnableControls(bool val) { m_enableControls = val; }
+
 private:
     void Thread_PrepareGraph();
 
@@ -133,9 +136,6 @@
     void CreateDevice();
     CComPtr<IDirect3DDevice9>& GetDevice();
 
-    bool EnableControls() const { return m_enableControls; }
-    void EnableControls(bool val) { m_enableControls = val; }
-
 private:
     FilterGraph m_filterGraph;
 

Deleted: trunk/oggdsf/src/lib/plugin/AxPlayer/dlldatax.c
===================================================================
--- trunk/oggdsf/src/lib/plugin/AxPlayer/dlldatax.c	2010-10-09 16:29:16 UTC (rev 17498)
+++ trunk/oggdsf/src/lib/plugin/AxPlayer/dlldatax.c	2010-10-09 23:34:34 UTC (rev 17499)
@@ -1,18 +0,0 @@
-// wrapper for dlldata.c
-
-#ifdef _MERGE_PROXYSTUB // merge proxy stub DLL
-
-#define REGISTER_PROXY_DLL //DllRegisterServer, etc.
-
-#define _WIN32_WINNT 0x0500	//for WinNT 4.0 or Win95 with DCOM
-#define USE_STUBLESS_PROXY	//defined only with MIDL switch /Oicf
-
-#pragma comment(lib, "rpcns4.lib")
-#pragma comment(lib, "rpcrt4.lib")
-
-#define ENTRY_PREFIX	Prx
-
-#include "dlldata.c"
-#include "AxPlayer_p.c"
-
-#endif //_MERGE_PROXYSTUB

Deleted: trunk/oggdsf/src/lib/plugin/AxPlayer/dlldatax.h
===================================================================
--- trunk/oggdsf/src/lib/plugin/AxPlayer/dlldatax.h	2010-10-09 16:29:16 UTC (rev 17498)
+++ trunk/oggdsf/src/lib/plugin/AxPlayer/dlldatax.h	2010-10-09 23:34:34 UTC (rev 17499)
@@ -1,15 +0,0 @@
-#pragma once
-
-#ifdef _MERGE_PROXYSTUB
-
-extern "C" 
-{
-BOOL WINAPI PrxDllMain(HINSTANCE hInstance, DWORD dwReason, 
-	LPVOID lpReserved);
-STDAPI PrxDllCanUnloadNow(void);
-STDAPI PrxDllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv);
-STDAPI PrxDllRegisterServer(void);
-STDAPI PrxDllUnregisterServer(void);
-}
-
-#endif

Modified: trunk/oggdsf/src/lib/plugin/AxPlayer/dllmain.cpp
===================================================================
--- trunk/oggdsf/src/lib/plugin/AxPlayer/dllmain.cpp	2010-10-09 16:29:16 UTC (rev 17498)
+++ trunk/oggdsf/src/lib/plugin/AxPlayer/dllmain.cpp	2010-10-09 23:34:34 UTC (rev 17499)
@@ -14,10 +14,6 @@
 // DLL Entry Point
 extern "C" BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
 {
-#ifdef _MERGE_PROXYSTUB
-	if (!PrxDllMain(hInstance, dwReason, lpReserved))
-		return FALSE;
-#endif
     util::GetHModule() = (HMODULE)hInstance;
 
 	return _AtlModule.DllMain(dwReason, lpReserved); 



More information about the commits mailing list