summaryrefslogtreecommitdiffstats
path: root/loader/dshow
diff options
context:
space:
mode:
authorarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-10-04 02:21:47 +0000
committerarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-10-04 02:21:47 +0000
commit4f3776f018ba2b7d07180da5500ba7dd55567637 (patch)
tree0272ecded470c78c9b8d00a4d4128a79abf55d16 /loader/dshow
parentd60f718c2e4ebc7be2c8eb7fa933eff83bb8570b (diff)
downloadmpv-4f3776f018ba2b7d07180da5500ba7dd55567637.tar.bz2
mpv-4f3776f018ba2b7d07180da5500ba7dd55567637.tar.xz
sync with avifile
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@2070 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'loader/dshow')
-rw-r--r--loader/dshow/DS_AudioDecoder.c38
-rw-r--r--loader/dshow/DS_Filter.c9
-rw-r--r--loader/dshow/DS_VideoDecoder.c10
-rw-r--r--loader/dshow/allocator.c4
-rw-r--r--loader/dshow/cmediasample.c2
-rw-r--r--loader/dshow/guids.h12
-rw-r--r--loader/dshow/inputpin.c29
-rw-r--r--loader/dshow/interfaces.h2
-rw-r--r--loader/dshow/libwin32.h2
-rw-r--r--loader/dshow/outputpin.c2
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>