changeset 244:1c3029be6713

Setup_FS fix for directshow
author arpi_esp
date Thu, 29 Mar 2001 12:38:51 +0000
parents 9d9f3337d648
children cb4c682746c0
files loader/dshow/DS_Filter.c
diffstat 1 files changed, 11 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/loader/dshow/DS_Filter.c	Thu Mar 29 10:06:26 2001 +0000
+++ b/loader/dshow/DS_Filter.c	Thu Mar 29 12:38:51 2001 +0000
@@ -15,6 +15,9 @@
 extern "C" STDCALL void* GetProcAddress(int, const char*);
 extern "C" int STDCALL FreeLibrary(int);
 
+extern "C" void Setup_LDT_Keeper();
+extern "C" void setup_FS_Segment();
+
 DS_Filter::DS_Filter()
     :m_iHandle(0), m_pFilter(0), m_pInputPin(0),
 	m_pOutputPin(0), m_pSrcFilter(0), 
@@ -25,6 +28,9 @@
 
 void DS_Filter::Create(string dllname, const GUID* id, AM_MEDIA_TYPE* in_fmt, AM_MEDIA_TYPE* out_fmt)
 {
+
+    Setup_LDT_Keeper();
+
     try
     {
 	string _fullname=def_path;
@@ -42,9 +48,11 @@
 	result=func(id, &IID_IClassFactory, (void**)&factory);
 	if(result || (!factory)) throw FATAL("No such class object");;
         
-            printf("# factory = %X\n",(unsigned int)factory);
-            printf("# factory->vt = %X\n",(unsigned int)factory->vt);
-            printf("# factory->vt->CreateInstance = %X\n",(unsigned int)factory->vt->CreateInstance);
+//            printf("# factory = %X\n",(unsigned int)factory);
+//            printf("# factory->vt = %X\n",(unsigned int)factory->vt);
+//            printf("# factory->vt->CreateInstance = %X\n",(unsigned int)factory->vt->CreateInstance);
+
+             setup_FS_Segment();
 
             printf("Calling factory->vt->CreateInstance()\n");
             result=factory->vt->CreateInstance(factory, 0, &IID_IUnknown, (void**)&object);