summaryrefslogtreecommitdiff
path: root/src/libw32dll/DirectShow
diff options
context:
space:
mode:
authorMiguel Freitas <miguelfreitas@users.sourceforge.net>2002-06-21 01:44:17 +0000
committerMiguel Freitas <miguelfreitas@users.sourceforge.net>2002-06-21 01:44:17 +0000
commit4aadaafa08dc0d3b926378581c37b2e2f0492731 (patch)
treee55d8f0e689963677d574d1ac0714dc33d924735 /src/libw32dll/DirectShow
parenta3be47db5aea60af614bc11fa1d9d726fabeba19 (diff)
downloadxine-lib-4aadaafa08dc0d3b926378581c37b2e2f0492731.tar.gz
xine-lib-4aadaafa08dc0d3b926378581c37b2e2f0492731.tar.bz2
update win32 codec loading code
- shiny new win32 crap from avifile and mplayer! - shiny new compilation warnings! - use directshow filter to decode msmpeg v1/v2 - disable SYNC_SHUTDOWN ugly hack (will be removed soon, i hope) CVS patchset: 2114 CVS date: 2002/06/21 01:44:17
Diffstat (limited to 'src/libw32dll/DirectShow')
-rw-r--r--src/libw32dll/DirectShow/DS_VideoDecoder.c9
-rw-r--r--src/libw32dll/DirectShow/allocator.h3
-rw-r--r--src/libw32dll/DirectShow/inputpin.c2
-rw-r--r--src/libw32dll/DirectShow/inputpin.h2
-rw-r--r--src/libw32dll/DirectShow/outputpin.c39
-rw-r--r--src/libw32dll/DirectShow/outputpin.h14
6 files changed, 21 insertions, 48 deletions
diff --git a/src/libw32dll/DirectShow/DS_VideoDecoder.c b/src/libw32dll/DirectShow/DS_VideoDecoder.c
index faa080fef..33c51b4d2 100644
--- a/src/libw32dll/DirectShow/DS_VideoDecoder.c
+++ b/src/libw32dll/DirectShow/DS_VideoDecoder.c
@@ -106,10 +106,10 @@ DS_VideoDecoder * DS_VideoDecoder_Open(char* dllname, GUID* guid, BITMAPINFOHEAD
bihs = (format->biSize < (int) sizeof(BITMAPINFOHEADER)) ?
sizeof(BITMAPINFOHEADER) : format->biSize;
- bihs = sizeof(VIDEOINFOHEADER) - sizeof(BITMAPINFOHEADER) + bihs;
this->iv.m_bh = (BITMAPINFOHEADER*)malloc(bihs);
memcpy(this->iv.m_bh, format, bihs);
+
this->iv.m_State = STOP;
//this->iv.m_pFrame = 0;
this->iv.m_Mode = DIRECT;
@@ -118,6 +118,7 @@ DS_VideoDecoder * DS_VideoDecoder_Open(char* dllname, GUID* guid, BITMAPINFOHEAD
this->iv.m_fQuality = 0.0f;
this->iv.m_bCapable16b = true;
+ bihs += sizeof(VIDEOINFOHEADER) - sizeof(BITMAPINFOHEADER);
this->m_sVhdr = (VIDEOINFOHEADER*)malloc(bihs);
memset(this->m_sVhdr, 0, bihs);
memcpy(&this->m_sVhdr->bmiHeader, this->iv.m_bh, this->iv.m_bh->biSize);
@@ -725,7 +726,7 @@ int DS_VideoDecoder_SetValue(DS_VideoDecoder *this, const char* name, int value)
{
if (this->m_bIsDivX4) {
IDivxFilterInterface* pIDivx=NULL;
- printf("DS_SetValue for DIVX4, name=%s value=%d\n",name,value);
+// printf("DS_SetValue for DIVX4, name=%s value=%d\n",name,value);
if (this->m_pDS_Filter->m_pFilter->vt->QueryInterface((IUnknown*)this->m_pDS_Filter->m_pFilter, &IID_IDivxFilterInterface, (void**)&pIDivx))
{
printf("No such interface\n");
@@ -764,7 +765,7 @@ int DS_VideoDecoder_SetValue(DS_VideoDecoder *this, const char* name, int value)
// get5=set4 19
// get6=set5 23
hidden = (IHidden*)((int)this->m_pDS_Filter->m_pFilter + 0xb8);
- printf("DS_SetValue for DIVX, name=%s value=%d\n",name,value);
+// printf("DS_SetValue for DIVX, name=%s value=%d\n",name,value);
if (strcmp(name, "Quality") == 0)
{
this->m_iLastQuality = value;
@@ -826,7 +827,7 @@ int DS_VideoDecoder_SetValue(DS_VideoDecoder *this, const char* name, int value)
return result;
}
#endif
- printf("DS_SetValue for ????, name=%s value=%d\n",name,value);
+// printf("DS_SetValue for ????, name=%s value=%d\n",name,value);
return 0;
}
/*
diff --git a/src/libw32dll/DirectShow/allocator.h b/src/libw32dll/DirectShow/allocator.h
index c8c62b2fc..855637063 100644
--- a/src/libw32dll/DirectShow/allocator.h
+++ b/src/libw32dll/DirectShow/allocator.h
@@ -27,7 +27,6 @@ struct _MemAllocator
void ( *ResetPointer )(MemAllocator* This);
};
-MemAllocator* MemAllocatorCreate(void);
-void MemAllocator_Destroy(MemAllocator* This);
+MemAllocator* MemAllocatorCreate();
#endif /* DS_ALLOCATOR_H */
diff --git a/src/libw32dll/DirectShow/inputpin.c b/src/libw32dll/DirectShow/inputpin.c
index 4e6f7fece..cde1df2ed 100644
--- a/src/libw32dll/DirectShow/inputpin.c
+++ b/src/libw32dll/DirectShow/inputpin.c
@@ -4,7 +4,7 @@
#include <stdio.h>
#include <stdlib.h>
-static int unimplemented(const char* s, void* p)
+static inline int unimplemented(const char* s, void* p)
{
Debug printf("%s(%p) called (UNIMPLEMENTED)", s, p);
return E_NOTIMPL;
diff --git a/src/libw32dll/DirectShow/inputpin.h b/src/libw32dll/DirectShow/inputpin.h
index 14c0992d6..1ad9a2d60 100644
--- a/src/libw32dll/DirectShow/inputpin.h
+++ b/src/libw32dll/DirectShow/inputpin.h
@@ -14,7 +14,7 @@ struct _CBaseFilter2
IPin* ( *GetPin )(CBaseFilter2* This);
};
-CBaseFilter2* CBaseFilter2Create(void);
+CBaseFilter2* CBaseFilter2Create();
typedef struct _CBaseFilter CBaseFilter;
diff --git a/src/libw32dll/DirectShow/outputpin.c b/src/libw32dll/DirectShow/outputpin.c
index 9763922b7..8ca12d792 100644
--- a/src/libw32dll/DirectShow/outputpin.c
+++ b/src/libw32dll/DirectShow/outputpin.c
@@ -10,14 +10,12 @@
Returned by COutputPin through call IPin::EnumMediaTypes().
*/
-static int unimplemented(const char* s, void* p)
+static inline int output_unimplemented(const char* s, void* p)
{
Debug printf("%s(%p) called (UNIMPLEMENTED)", s, p);
return E_NOTIMPL;
}
-/* In outputpin.h now *********
-******************************
typedef struct CEnumMediaTypes
{
IEnumMediaTypes_vt* vt;
@@ -25,7 +23,7 @@ typedef struct CEnumMediaTypes
AM_MEDIA_TYPE type;
GUID interfaces[2];
} CEnumMediaTypes;
-********************/
+
static HRESULT STDCALL CEnumMediaTypes_Next(IEnumMediaTypes * This,
/* [in] */ ULONG cMediaTypes,
@@ -60,8 +58,7 @@ static HRESULT STDCALL CEnumMediaTypes_Next(IEnumMediaTypes * This,
static HRESULT STDCALL CEnumMediaTypes_Skip(IEnumMediaTypes * This,
/* [in] */ ULONG cMediaTypes)
{
- Debug unimplemented("CEnumMediaTypes::Skip", This);
- return E_NOTIMPL;
+ return output_unimplemented("CEnumMediaTypes::Skip", This);
}
static HRESULT STDCALL CEnumMediaTypes_Reset(IEnumMediaTypes * This)
@@ -216,8 +213,7 @@ static HRESULT STDCALL COutputPin_ConnectionMediaType(IPin * This,
static HRESULT STDCALL COutputPin_QueryPinInfo(IPin * This,
/* [out] */ PIN_INFO *pInfo)
{
- Debug unimplemented("COutputPin_QueryPinInfo", This);
- return E_NOTIMPL;
+ return output_unimplemented("COutputPin_QueryPinInfo", This);
}
static HRESULT STDCALL COutputPin_QueryDirection(IPin * This,
@@ -233,15 +229,13 @@ static HRESULT STDCALL COutputPin_QueryDirection(IPin * This,
static HRESULT STDCALL COutputPin_QueryId(IPin * This,
/* [out] */ LPWSTR *Id)
{
- Debug unimplemented("COutputPin_QueryId", This);
- return E_NOTIMPL;
+ return output_unimplemented("COutputPin_QueryId", This);
}
static HRESULT STDCALL COutputPin_QueryAccept(IPin * This,
/* [in] */ const AM_MEDIA_TYPE *pmt)
{
- Debug unimplemented("COutputPin_QueryAccept", This);
- return E_NOTIMPL;
+ return output_unimplemented("COutputPin_QueryAccept", This);
}
static HRESULT STDCALL COutputPin_EnumMediaTypes(IPin * This,
@@ -258,26 +252,22 @@ static HRESULT STDCALL COutputPin_QueryInternalConnections(IPin * This,
/* [out] */ IPin **apPin,
/* [out][in] */ ULONG *nPin)
{
- Debug unimplemented("COutputPin_QueryInternalConnections", This);
- return E_NOTIMPL;
+ return output_unimplemented("COutputPin_QueryInternalConnections", This);
}
static HRESULT STDCALL COutputPin_EndOfStream(IPin * This)
{
- Debug unimplemented("COutputPin_EndOfStream", This);
- return E_NOTIMPL;
+ return output_unimplemented("COutputPin_EndOfStream", This);
}
static HRESULT STDCALL COutputPin_BeginFlush(IPin * This)
{
- Debug unimplemented("COutputPin_BeginFlush", This);
- return E_NOTIMPL;
+ return output_unimplemented("COutputPin_BeginFlush", This);
}
static HRESULT STDCALL COutputPin_EndFlush(IPin * This)
{
- Debug unimplemented("COutputPin_EndFlush", This);
- return E_NOTIMPL;
+ return output_unimplemented("COutputPin_EndFlush", This);
}
static HRESULT STDCALL COutputPin_NewSegment(IPin * This,
@@ -353,8 +343,7 @@ static HRESULT STDCALL COutputPin_NotifyAllocator(IMemInputPin* This,
static HRESULT STDCALL COutputPin_GetAllocatorRequirements(IMemInputPin* This,
/* [out] */ ALLOCATOR_PROPERTIES* pProps)
{
- Debug unimplemented("COutputPin_GetAllocatorRequirements", This);
- return E_NOTIMPL;
+ return output_unimplemented("COutputPin_GetAllocatorRequirements", This);
}
static HRESULT STDCALL COutputPin_Receive(IMemInputPin* This,
@@ -397,14 +386,12 @@ static HRESULT STDCALL COutputPin_ReceiveMultiple(IMemInputPin * This,
/* [in] */ long nSamples,
/* [out] */ long *nSamplesProcessed)
{
- Debug unimplemented("COutputPin_ReceiveMultiple", This);
- return E_NOTIMPL;
+ return output_unimplemented("COutputPin_ReceiveMultiple", This);
}
static HRESULT STDCALL COutputPin_ReceiveCanBlock(IMemInputPin * This)
{
- Debug unimplemented("COutputPin_ReceiveCanBlock", This);
- return E_NOTIMPL;
+ return output_unimplemented("COutputPin_ReceiveCanBlock", This);
}
static void COutputPin_SetFramePointer(COutputPin* This, char** z)
diff --git a/src/libw32dll/DirectShow/outputpin.h b/src/libw32dll/DirectShow/outputpin.h
index f95295e59..016b36787 100644
--- a/src/libw32dll/DirectShow/outputpin.h
+++ b/src/libw32dll/DirectShow/outputpin.h
@@ -33,18 +33,4 @@ struct _COutputPin
COutputPin* COutputPinCreate(const AM_MEDIA_TYPE* vhdr);
-typedef struct _CEnumMediaTypes CEnumMediaTypes;
-
-struct _CEnumMediaTypes
-{
- IEnumMediaTypes_vt* vt;
- DECLARE_IUNKNOWN();
- AM_MEDIA_TYPE type;
- GUID interfaces[2];
-} ;
-
-
-void CEnumMediaTypes_Destroy(CEnumMediaTypes* This);
-CEnumMediaTypes* CEnumMediaTypesCreate(const AM_MEDIA_TYPE* amt);
-
#endif /* DS_OUTPUTPIN_H */