wineqtdecoder: Register the QT Splitter to be a default potential handler for all unhandled streams.

This commit is contained in:
Aric Stewart 2012-04-04 12:31:42 -05:00 committed by Alexandre Julliard
parent 69da44106e
commit 9fba260ae4
4 changed files with 62 additions and 4 deletions

View File

@ -9,4 +9,7 @@ C_SRCS = \
qtutils.c \ qtutils.c \
qtvdecoder.c qtvdecoder.c
RC_SRCS = \
rsrc.rc
@MAKE_DLL_RULES@ @MAKE_DLL_RULES@

View File

@ -34,6 +34,7 @@
#include "objbase.h" #include "objbase.h"
#include "uuids.h" #include "uuids.h"
#include "strmif.h" #include "strmif.h"
#include "rpcproxy.h"
#include "wine/unicode.h" #include "wine/unicode.h"
#include "wine/debug.h" #include "wine/debug.h"
@ -42,6 +43,7 @@
#include "initguid.h" #include "initguid.h"
DEFINE_GUID(CLSID_QTVDecoder, 0x683DDACB, 0x4354, 0x490C, 0xA0,0x58, 0xE0,0x5A,0xD0,0xF2,0x05,0x37); DEFINE_GUID(CLSID_QTVDecoder, 0x683DDACB, 0x4354, 0x490C, 0xA0,0x58, 0xE0,0x5A,0xD0,0xF2,0x05,0x37);
DEFINE_GUID(CLSID_QTSplitter, 0xD0E70E49, 0x5927, 0x4894, 0xA3,0x86, 0x35,0x94,0x60,0xEE,0x87,0xC9); DEFINE_GUID(CLSID_QTSplitter, 0xD0E70E49, 0x5927, 0x4894, 0xA3,0x86, 0x35,0x94,0x60,0xEE,0x87,0xC9);
DEFINE_GUID(WINESUBTYPE_QTSplitter, 0xFFFFFFFF, 0x5927, 0x4894, 0xA3,0x86, 0x35,0x94,0x60,0xEE,0x87,0xC9);
WINE_DEFAULT_DEBUG_CHANNEL(qtdecoder); WINE_DEFAULT_DEBUG_CHANNEL(qtdecoder);
@ -59,7 +61,8 @@ static const AMOVIESETUP_MEDIATYPE amfMTvideo[] =
static const AMOVIESETUP_MEDIATYPE amfMTaudio[] = static const AMOVIESETUP_MEDIATYPE amfMTaudio[] =
{ { &MEDIATYPE_Audio, &MEDIASUBTYPE_NULL } }; { { &MEDIATYPE_Audio, &MEDIASUBTYPE_NULL } };
static const AMOVIESETUP_MEDIATYPE amfMTstream[] = static const AMOVIESETUP_MEDIATYPE amfMTstream[] =
{ { &MEDIATYPE_Stream, &MEDIASUBTYPE_NULL } }; { { &MEDIATYPE_Stream, &WINESUBTYPE_QTSplitter},
{ &MEDIATYPE_Stream, &MEDIASUBTYPE_NULL } };
static const AMOVIESETUP_PIN amfQTVPin[] = static const AMOVIESETUP_PIN amfQTVPin[] =
{ { wNull, { { wNull,
@ -84,7 +87,7 @@ static const AMOVIESETUP_PIN amfQTDPin[] =
FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE,
&GUID_NULL, &GUID_NULL,
NULL, NULL,
1, 2,
amfMTstream amfMTstream
}, },
{ {
@ -139,12 +142,14 @@ FactoryTemplate const g_Templates[] = {
}; };
int g_cTemplates = sizeof(g_Templates) / sizeof(g_Templates[0]); int g_cTemplates = sizeof(g_Templates) / sizeof(g_Templates[0]);
static HINSTANCE hInst = NULL;
/*********************************************************************** /***********************************************************************
* Dll EntryPoint (wineqtdecoder.@) * Dll EntryPoint (wineqtdecoder.@)
*/ */
BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD fdwReason, LPVOID lpv) BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD fdwReason, LPVOID lpv)
{ {
hInst = hInstDLL;
return STRMBASE_DllMain(hInstDLL,fdwReason,lpv); return STRMBASE_DllMain(hInstDLL,fdwReason,lpv);
} }
@ -161,8 +166,12 @@ HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv)
*/ */
HRESULT WINAPI DllRegisterServer(void) HRESULT WINAPI DllRegisterServer(void)
{ {
HRESULT hr;
TRACE("()\n"); TRACE("()\n");
return AMovieDllRegisterServer2(TRUE); hr = AMovieDllRegisterServer2(TRUE);
if (SUCCEEDED(hr))
hr = __wine_register_resources(hInst);
return hr;
} }
/*********************************************************************** /***********************************************************************
@ -170,8 +179,12 @@ HRESULT WINAPI DllRegisterServer(void)
*/ */
HRESULT WINAPI DllUnregisterServer(void) HRESULT WINAPI DllUnregisterServer(void)
{ {
HRESULT hr;
TRACE("\n"); TRACE("\n");
return AMovieDllRegisterServer2(FALSE); hr = AMovieDllRegisterServer2(FALSE);
if (SUCCEEDED(hr))
hr = __wine_unregister_resources(hInst);
return hr;
} }
/*********************************************************************** /***********************************************************************

View File

@ -0,0 +1,28 @@
/*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#define WINE_FILEDESCRIPTION_STR "Wine QT Decoder"
#define WINE_FILENAME_STR "wineqtdecoder.dll"
#define WINE_FILEVERSION 0,0,1,0
#define WINE_FILEVERSION_STR "0.0.1.0"
#define WINE_PRODUCTVERSION 0,0,1,0
#define WINE_PRODUCTVERSION_STR "1.0.1.0"
#define WINE_EXTRAVALUES VALUE "OLESelfRegister",""
#include "wine/wine_common_ver.rc"
/* @makedep: wineqtdecoder.rgs */
2 WINE_REGISTRY wineqtdecoder.rgs

View File

@ -0,0 +1,14 @@
HKCR
{
NoRemove 'Media Type'
{
NoRemove '{E436EB83-524F-11CE-9F53-0020AF0BA770}'
{
ForceRemove '{FFFFFFFF-5927-4894-A386-359460EE87C9}'
{
val '0' = s '0,1,00,0'
val 'Source Filter' = s '{E436EBB5-524F-11CE-9F53-0020AF0BA770}'
}
}
}
}