diff options
author | Miguel Freitas <miguelfreitas@users.sourceforge.net> | 2002-06-21 01:44:17 +0000 |
---|---|---|
committer | Miguel Freitas <miguelfreitas@users.sourceforge.net> | 2002-06-21 01:44:17 +0000 |
commit | 4aadaafa08dc0d3b926378581c37b2e2f0492731 (patch) | |
tree | e55d8f0e689963677d574d1ac0714dc33d924735 /src/libw32dll/DirectShow | |
parent | a3be47db5aea60af614bc11fa1d9d726fabeba19 (diff) | |
download | xine-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.c | 9 | ||||
-rw-r--r-- | src/libw32dll/DirectShow/allocator.h | 3 | ||||
-rw-r--r-- | src/libw32dll/DirectShow/inputpin.c | 2 | ||||
-rw-r--r-- | src/libw32dll/DirectShow/inputpin.h | 2 | ||||
-rw-r--r-- | src/libw32dll/DirectShow/outputpin.c | 39 | ||||
-rw-r--r-- | src/libw32dll/DirectShow/outputpin.h | 14 |
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 */ |