diff options
Diffstat (limited to 'loader/dshow')
-rw-r--r-- | loader/dshow/DS_AudioDecoder.c | 38 | ||||
-rw-r--r-- | loader/dshow/DS_Filter.c | 9 | ||||
-rw-r--r-- | loader/dshow/DS_VideoDecoder.c | 10 | ||||
-rw-r--r-- | loader/dshow/allocator.c | 4 | ||||
-rw-r--r-- | loader/dshow/cmediasample.c | 2 | ||||
-rw-r--r-- | loader/dshow/guids.h | 12 | ||||
-rw-r--r-- | loader/dshow/inputpin.c | 29 | ||||
-rw-r--r-- | loader/dshow/interfaces.h | 2 | ||||
-rw-r--r-- | loader/dshow/libwin32.h | 2 | ||||
-rw-r--r-- | loader/dshow/outputpin.c | 2 |
10 files changed, 52 insertions, 58 deletions
diff --git a/loader/dshow/DS_AudioDecoder.c b/loader/dshow/DS_AudioDecoder.c index cb6cb47d9e..26ad1406e1 100644 --- a/loader/dshow/DS_AudioDecoder.c +++ b/loader/dshow/DS_AudioDecoder.c @@ -4,12 +4,13 @@ Copyright 2001 Eugene Kuznetsov (divx@euro.ru) *********************************************************/ + #include "DS_AudioDecoder.h" +#include <string.h> +#include <stdio.h> + +// using namespace std; -#include <cstdio> -#include <cstring> -#include <string> -#include <iostream> #define __MODULE__ "DirectShow audio decoder" const GUID FORMAT_WaveFormatEx = { 0x05589f81, 0xc356, 0x11CE, @@ -24,17 +25,16 @@ const GUID MEDIASUBTYPE_PCM = { { 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71 } }; -using namespace std; - typedef long STDCALL (*GETCLASS) (GUID*, GUID*, void**); DS_AudioDecoder::DS_AudioDecoder(const CodecInfo& info, const WAVEFORMATEX* wf) : IAudioDecoder(info, wf), m_pDS_Filter(0), m_sVhdr(0), m_sVhdr2(0) { - m_sVhdr=new char[18 + wf->cbSize]; - memcpy(m_sVhdr, wf, 18 + wf->cbSize); - m_sVhdr2=new char[18 + wf->cbSize]; - memcpy(m_sVhdr2, m_sVhdr, 18 + wf->cbSize); + int sz = 18 + wf->cbSize; + m_sVhdr=new char[sz]; + memcpy(m_sVhdr, wf, sz); + m_sVhdr2=new char[sz]; + memcpy(m_sVhdr2, m_sVhdr, sz); WAVEFORMATEX* pWF=(WAVEFORMATEX*)m_sVhdr2; pWF->wFormatTag=1; pWF->wBitsPerSample=16; @@ -51,7 +51,7 @@ DS_AudioDecoder::DS_AudioDecoder(const CodecInfo& info, const WAVEFORMATEX* wf) m_sOurType.bFixedSizeSamples=true; m_sOurType.bTemporalCompression=false; m_sOurType.pUnk=0; - m_sOurType.cbFormat=18+wf->cbSize; + m_sOurType.cbFormat=sz; m_sOurType.pbFormat=m_sVhdr; memset(&m_sDestType, 0, sizeof(m_sDestType)); @@ -62,7 +62,7 @@ DS_AudioDecoder::DS_AudioDecoder(const CodecInfo& info, const WAVEFORMATEX* wf) m_sDestType.bTemporalCompression=false; m_sDestType.lSampleSize=2*wf->nChannels; m_sDestType.pUnk=0; - m_sDestType.cbFormat=18; + m_sDestType.cbFormat=pWF->cbSize; m_sDestType.pbFormat=m_sVhdr2; try @@ -95,19 +95,19 @@ DS_AudioDecoder::~DS_AudioDecoder() delete m_pDS_Filter; } -int DS_AudioDecoder::Convert(const void* in_data, size_t in_size, - void* out_data, size_t out_size, - size_t* size_read, size_t* size_written) +int DS_AudioDecoder::Convert(const void* in_data, uint_t in_size, + void* out_data, uint_t out_size, + uint_t* size_read, uint_t* size_written) { if (!in_data || !out_data) return -1; - size_t written = 0; - size_t read = 0; + uint_t written = 0; + uint_t read = 0; in_size -= in_size%in_fmt.nBlockAlign; while (in_size>0) { - size_t frame_size=0; + uint_t frame_size=0; char* frame_pointer; // m_pOurOutput->SetFramePointer(out_data+written); m_pDS_Filter->m_pOurOutput->SetFramePointer(&frame_pointer); @@ -116,7 +116,7 @@ int DS_AudioDecoder::Convert(const void* in_data, size_t in_size, m_pDS_Filter->m_pAll->vt->GetBuffer(m_pDS_Filter->m_pAll, &sample, 0, 0, 0); if(!sample) { - Debug cerr<<"DS_AudioDecoder::Convert() Error: null sample"<<endl; + Debug printf("DS_AudioDecoder::Convert() Error: null sample\n"); break; } char* ptr; diff --git a/loader/dshow/DS_Filter.c b/loader/dshow/DS_Filter.c index a057dd2cec..f625b74b87 100644 --- a/loader/dshow/DS_Filter.c +++ b/loader/dshow/DS_Filter.c @@ -1,7 +1,7 @@ #include "DS_Filter.h" //#include "../loader/loader.h" -#include <libwin32.h> -#include <string> +#include "libwin32.h" +//#include <string> #include <stdio.h> #include <string.h> @@ -213,7 +213,10 @@ void DS_Filter::Stop() if (m_iState == 2) { m_pAll->vt->Release((IUnknown*)m_pAll); - m_pFilter->vt->Stop(m_pFilter); // causes weird crash ??? FIXME + if (m_pFilter) + m_pFilter->vt->Stop(m_pFilter); // causes weird crash ??? FIXME + else + printf("m_pFilter is NULL!\n"); m_pAll = 0; m_iState = 1; } diff --git a/loader/dshow/DS_VideoDecoder.c b/loader/dshow/DS_VideoDecoder.c index c91eb70f77..a04817c495 100644 --- a/loader/dshow/DS_VideoDecoder.c +++ b/loader/dshow/DS_VideoDecoder.c @@ -9,9 +9,9 @@ #include "interfaces.h" #include "DS_VideoDecoder.h" -#include <wine/winerror.h> -#include <libwin32.h> -//#include <cpuinfo.h> +#include "wine/winerror.h" +#include "ldt_keeper.h" +//#include <wine/winerror.h> #include <unistd.h> #include <fcntl.h> @@ -24,10 +24,6 @@ #define __MODULE__ "DirectShow_VideoDecoder" -#include "ldt_keeper.h" - -extern "C" char* def_path; - using namespace std; DS_VideoDecoder::DS_VideoDecoder(const CodecInfo& info, const BITMAPINFOHEADER& format, int flip) diff --git a/loader/dshow/allocator.c b/loader/dshow/allocator.c index 73b75b6fde..ce30e615d2 100644 --- a/loader/dshow/allocator.c +++ b/loader/dshow/allocator.c @@ -1,6 +1,6 @@ #include "allocator.h" -#include <com.h> -#include <wine/winerror.h> +#include "com.h" +#include "wine/winerror.h" #include <stdio.h> //#undef Debug diff --git a/loader/dshow/cmediasample.c b/loader/dshow/cmediasample.c index 1fdb9995e5..983ddbaeea 100644 --- a/loader/dshow/cmediasample.c +++ b/loader/dshow/cmediasample.c @@ -1,5 +1,5 @@ #include "cmediasample.h" -#include <wine/winerror.h> +#include "wine/winerror.h" #include <stdio.h> #include <string.h> diff --git a/loader/dshow/guids.h b/loader/dshow/guids.h index 9c08a0f86e..f29c6a6e15 100644 --- a/loader/dshow/guids.h +++ b/loader/dshow/guids.h @@ -1,12 +1,12 @@ #ifndef GUIDS_H #define GUIDS_H -#include <com.h> -#include <wine/winbase.h> -#include <wine/windef.h> -#include <wine/winuser.h> -#include <wine/vfw.h> -//#include <formats.h> +#include "com.h" +#include "wine/winbase.h" +#include "wine/windef.h" +#include "wine/winuser.h" +#include "wine/vfw.h" + extern int DSHOW_DEBUG; #define Debug if(DSHOW_DEBUG) diff --git a/loader/dshow/inputpin.c b/loader/dshow/inputpin.c index 9f0c50322b..9578674ada 100644 --- a/loader/dshow/inputpin.c +++ b/loader/dshow/inputpin.c @@ -1,5 +1,5 @@ #include "inputpin.h" -#include <wine/winerror.h> +#include "wine/winerror.h" #include <string.h> #include <stdio.h> #include <stdlib.h> @@ -49,24 +49,17 @@ class CEnumPins: public IEnumPins public: CEnumPins(IPin*, IPin* =0); ~CEnumPins(){delete vt;} - static long STDCALL Next ( - IEnumPins * This, - /* [in] */ unsigned long cMediaTypes, - /* [size_is][out] */ IPin **ppMediaTypes, - /* [out] */ unsigned long *pcFetched); - - static long STDCALL Skip ( - IEnumPins * This, - /* [in] */ unsigned long cMediaTypes); - - static long STDCALL Reset ( - IEnumPins * This); - - static long STDCALL Clone ( - IEnumPins * This, - /* [out] */ IEnumPins **ppEnum); - + static long STDCALL Next (IEnumPins * This, + /* [in] */ unsigned long cMediaTypes, + /* [size_is][out] */ IPin **ppMediaTypes, + /* [out] */ unsigned long *pcFetched); + static long STDCALL Skip (IEnumPins * This, + /* [in] */ unsigned long cMediaTypes); + static long STDCALL Reset (IEnumPins * This); + static long STDCALL Clone (IEnumPins * This, + /* [out] */ IEnumPins **ppEnum); }; + GUID CEnumPins::interfaces[]= { IID_IUnknown, diff --git a/loader/dshow/interfaces.h b/loader/dshow/interfaces.h index 4708bee233..4f299ee2b4 100644 --- a/loader/dshow/interfaces.h +++ b/loader/dshow/interfaces.h @@ -9,7 +9,7 @@ Created using freely-available DirectX 8.0 SDK */ -#include <com.h> +#include "com.h" #include "guids.h" #ifndef STDCALL diff --git a/loader/dshow/libwin32.h b/loader/dshow/libwin32.h index 592fe9d454..038002fca9 100644 --- a/loader/dshow/libwin32.h +++ b/loader/dshow/libwin32.h @@ -36,6 +36,8 @@ #include <string> #include <stdio.h> +typedef unsigned int uint_t; // use as generic type - + typedef unsigned int fourcc_t; struct FatalError diff --git a/loader/dshow/outputpin.c b/loader/dshow/outputpin.c index e9c3382981..22311d77dc 100644 --- a/loader/dshow/outputpin.c +++ b/loader/dshow/outputpin.c @@ -1,7 +1,7 @@ #include "outputpin.h" #include "allocator.h" #include "iunk.h" -#include <wine/winerror.h> +#include "wine/winerror.h" #include <cstdio> #include <cstring> |