Hi Danny,
Thanks for feedback. I cleaned up unnecessary typedef's and added some
new interfaces.
I will continue to add the remaining interfaces. If anyone sees that a
structure enum should be in ole stuff or another file, pls say so.
Danny Backx wrote:
I'm not sure I understand where you obtained all this information.
Got it from the MSDN. I have included the root links in the code. They
can be removed. But i put them there for verification.
Two things i cannot find. What HSEMAPHORE is typedef'd as. I think it is
typedef'd a HANDLE.
Have you used include files from Visual Studio or so ? That would be a
show stopper.
No.
If you obtained all this info by e.g. browsing MSDN, that would be
admissible.
Yes.
Ryan
Danny
On Fri, 2009-01-23 at 21:43 +0100, Ryan Raasch wrote:
Hello,
This is a preliminary patch for dshow. I only have a test program i am
using to verify the compile and linking with. The Windows API stuff is
extensive. I removed the dependencies for ddraw (which only has a def
file in the source), and for the AM* stuff ( i think controlling camera
from the shell etc., but will find out soon).
Oh yea. I have not included the CLSID and IID's. Don't really know where
to put them.
ex.
CLSID_IBaseFilter
Any feedback appreciated :)
Ryan
------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________ Cegcc-devel mailing list
Cegcc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cegcc-devel
diff --git a/cegcc/src/w32api/include/dshow.h b/cegcc/src/w32api/include/dshow.h
index da4bf68..a6141d1 100644
--- a/cegcc/src/w32api/include/dshow.h
+++ b/cegcc/src/w32api/include/dshow.h
@@ -5,8 +5,8 @@
#endif
#include <strmif.h>
-#include <amaudio.h>
-#include <amvideo.h>
+//#include <amaudio.h>
+//#include <amvideo.h>
#include <evcode.h>
#include <audevcod.h>
#include <dvdevcod.h>
@@ -17,7 +17,7 @@
#include <bdatypes.h>
#include <dvdmedia.h>
#include <il21dec.h>
-#include <ddraw.h> /* DDSCAPS2, DDPIXELFORMAT */
+//#include <ddraw.h> /* DDSCAPS2, DDPIXELFORMAT */
#ifndef _WINGDI_H
#include <wingdi.h> /* BITMAPINFOHEADER */
#endif
@@ -76,7 +76,7 @@ typedef struct _tag_AMVABeginFrameInfo{
LPVOID pOutputData;
DWORD dwSizeOutputData;
} AMVABeginFrameInfo,*LPAMVABeginFrameInfo;
-typedef struct _tag_AMVACompBufferInfo{
+/*typedef struct _tag_AMVACompBufferInfo{
DWORD dwNumCompBuffers;
DWORD dwWidthToCreate;
DWORD dwHeightToCreate;
@@ -84,6 +84,7 @@ typedef struct _tag_AMVACompBufferInfo{
DDSCAPS2 ddCompCaps;
DDPIXELFORMAT ddPixelFormat;
} AMVACompBufferInfo,*LPAMVACompBufferInfo;
+*/
typedef struct _tag_AMVAEndFrameInfo{
DWORD dwSizeMiscData;
LPVOID pMiscData;
@@ -91,17 +92,18 @@ typedef struct _tag_AMVAEndFrameInfo{
typedef struct _tag_AMVAInternalMemInfo{
DWORD dwScratchMemAlloc;
} AMVAInternalMemInfo,*LPAMVAInternalMemInfo;
-typedef struct _tag_AMVAUncompBufferInfo{
+/*typedef struct _tag_AMVAUncompBufferInfo{
DWORD dwMinNumSurfaces;
DWORD dwMaxNumSurfaces;
DDPIXELFORMAT ddUncompPixelFormat;
} AMVAUncompBufferInfo,*LPAMVAUncompBufferInfo;
- typedef struct _tag_AMVAUncompDataInfo{
+*/
+/*typedef struct _tag_AMVAUncompDataInfo{
DWORD dwUncompWidth;
DWORD dwUncompHeight;
DDPIXELFORMAT ddUncompPixelFormat;
} AMVAUncompDataInfo,*LPAMVAUncompDataInfo;
-
+*/
#ifdef __cplusplus
}
#endif
diff --git a/cegcc/src/w32api/include/strmif.h b/cegcc/src/w32api/include/strmif.h
index 38cbc96..4c312c6 100644
--- a/cegcc/src/w32api/include/strmif.h
+++ b/cegcc/src/w32api/include/strmif.h
@@ -4,6 +4,8 @@
#pragma GCC system_header
#endif
+#include <ocidl.h>
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -12,8 +14,17 @@ extern "C" {
#define TVAUDIO_MODE_MASK 0x000000FF
#define TVAUDIO_PRESET_MASK 0x0000FF00
/*--- DirectShow Reference - DirectShow Data Types */
+/* REFERENCE http://msdn.microsoft.com/en-us/library/ms783328(VS.85).aspx */
+typedef LONG_PTR OAEVENT;
+typedef LONG_PTR OAHWND;
typedef LONGLONG REFERENCE_TIME;
typedef double REFTIME;
+typedef long OAFilterState;
+
+/* http://msdn.microsoft.com/en-us/library/ms708770(VS.85).aspx */
+typedef unsigned int HEVENT;
+typedef HANDLE HSEMAPHORE;
+
/*--- DirectShow Reference - Constants and GUIDs */
enum {
MERIT_PREFERRED = 0x800000,
@@ -407,9 +418,9 @@ typedef enum _DVENCODERVIDEOFORMAT {
DVENCODERVIDEOFORMAT_PAL = 2001
} DVENCODERVIDEOFORMAT;
typedef enum _FilterState {
- State_Stopped,
- State_Paused,
- State_Running
+ State_Stopped,
+ State_Paused,
+ State_Running
} FILTER_STATE;
typedef enum {
INTERLEAVE_NONE,
@@ -731,10 +742,13 @@ typedef struct tagCOLORKEY {
#define CK_NOCOLORKEY 0x00000000
#define CK_INDEX 0x00000001
#define CK_RGB 0x00000002
-typedef struct {
+ /*typedef struct {
DWORD dw1;
DWORD dw2;
} DDCOLORKEY;
+typedef DDCOLORKEY *LPDDCOLORKEY;
+ */
+
typedef struct tagDVD_AudioAttributes {
DVD_AUDIO_APPMODE AppMode;
DVD_AUDIO_FORMAT AudioFormat;
@@ -889,9 +903,9 @@ typedef struct _NORMALIZEDRECT {
} NORMALIZEDRECT,*PNORMALIZEDRECT;
#define MAX_PIN_NAME 128
typedef struct _PinInfo {
- IBaseFilter *pFilter;
- PIN_DIRECTION dir;
- WCHAR achName[MAX_PIN_NAME];
+ struct IBaseFilter *pFilter;
+ PIN_DIRECTION dir;
+ WCHAR achName[MAX_PIN_NAME];
} PIN_INFO;
typedef struct{
QualityMessageType Type;
@@ -985,6 +999,7 @@ typedef struct _VIDEO_STREAM_CONFIG_CAPS {
LONG MinBitsPerSecond;
LONG MaxBitsPerSecond;
} VIDEO_STREAM_CONFIG_CAPS;
+/**********
typedef struct tagVMRALLOCATIONINFO {
DWORD dwFlags;
LPBITMAPINFOHEADER lpHdr;
@@ -995,6 +1010,7 @@ typedef struct tagVMRALLOCATIONINFO {
DWORD dwInterlaceFlags;
SIZE szNativeSize;
} VMRALLOCATIONINFO;
+***********/
/**********
typedef struct _VMRALPHABITMAP {
DWORD dwFlags;
@@ -1023,8 +1039,8 @@ typedef struct _VMRFrequency {
DWORD dwDenominator;
} VMRFrequency;
typedef struct tagVMRGUID {
- GUID *pGUID;
- GUID GUID;
+ LPGUID pGUID;
+ _GUID GUID;
} VMRGUID;
typedef struct tagVMRMONITORINFO {
VMRGUID guid;
@@ -1067,6 +1083,7 @@ typedef struct _VMRVIDEOSTREAMINFO {
NORMALIZEDRECT rNormal;
} VMRVIDEOSTREAMINFO;
**********/
+
/*--- DirectShow Reference - Interfaces */
#define INTERFACE IAMAnalogVideoDecoder
DECLARE_INTERFACE_(IAMAnalogVideoDecoder, IUnknown)
@@ -1153,6 +1170,402 @@ DECLARE_INTERFACE_(IAMCertifiedOutputProtection, IUnknown)
};
#undef INTERFACE
+/* NEW INTERFACES FOR DIRECTSHOW */
+/* REFERENCE http://msdn.microsoft.com/en-us/library/dd390343(VS.85).aspx */
+#define INTERFACE IReferenceClock
+DECLARE_INTERFACE_(IReferenceClock, IUnknown)
+{
+ STDMETHOD(QueryInterface) (THIS_ REFIID,PVOID*) PURE;
+ STDMETHOD_(ULONG, AddRef) (THIS) PURE;
+ STDMETHOD_(ULONG, Release) (THIS) PURE;
+ STDMETHOD_(HRESULT, GetTime) (THIS_ REFERENCE_TIME*) PURE;
+ STDMETHOD_(HRESULT, AdviseTime) (THIS_ REFERENCE_TIME, REFERENCE_TIME, HEVENT, DWORD*) PURE;
+ STDMETHOD_(HRESULT, AdvisePeriodicTime) (THIS_ REFERENCE_TIME, REFERENCE_TIME, HSEMAPHORE, DWORD*) PURE;
+ STDMETHOD_(HRESULT, Unadvise) (THIS_ DWORD ) PURE;
+};
+#undef INTERFACE
+
+#define INTERFACE IPin
+DECLARE_INTERFACE_(IPin, IUnknown)
+{
+ STDMETHOD(QueryInterface) (THIS_ REFIID,PVOID*) PURE;
+ STDMETHOD_(ULONG, AddRef) (THIS) PURE;
+ STDMETHOD_(ULONG, Release) (THIS) PURE;
+ STDMETHOD_(HRESULT,Connect) (THIS_ IPin *, AM_MEDIA_TYPE *) PURE;
+ STDMETHOD_(HRESULT,ReceiveConnection) (THIS_ IPin *, const AM_MEDIA_TYPE *) PURE;
+ STDMETHOD_(HRESULT,Disconnect) (THIS) PURE;
+ STDMETHOD_(HRESULT,ConnectedTo) (THIS_ IPin **) PURE;
+ STDMETHOD_(HRESULT,ConnectionMediaType) (THIS_ AM_MEDIA_TYPE * pmt) PURE;
+ STDMETHOD_(HRESULT,QueryPinInfo) (THIS_ PIN_INFO *) PURE;
+ STDMETHOD_(HRESULT,QueryDirection) (THIS_ PIN_DIRECTION *) PURE;
+ STDMETHOD_(HRESULT,QueryId) (THIS_ unsigned short **) PURE;
+ STDMETHOD_(HRESULT,QueryAccept) (THIS_ const AM_MEDIA_TYPE *) PURE;
+ STDMETHOD_(HRESULT,EnumMediaTypes) (THIS_ struct IEnumMediaTypes **) PURE;
+ STDMETHOD_(HRESULT,QueryInternalConnections) (THIS_ IPin **, unsigned long *) PURE;
+ STDMETHOD_(HRESULT,EndOfStream) (THIS) PURE;
+ STDMETHOD_(HRESULT,BeginFlush) (THIS) PURE;
+ STDMETHOD_(HRESULT,EndFlush) (THIS) PURE;
+ STDMETHOD_(HRESULT,NewSegment) (THIS_ REFERENCE_TIME, REFERENCE_TIME, double) PURE;
+};
+#undef INTERFACE
+
+#define INTERFACE IBaseFilter
+DECLARE_INTERFACE_(IBaseFilter, IUnknown)
+{
+ STDMETHOD(QueryInterface) (THIS_ REFIID,PVOID*) PURE;
+ STDMETHOD_(ULONG, AddRef) (THIS) PURE;
+ STDMETHOD_(ULONG, Release) (THIS) PURE;
+ STDMETHOD_(HRESULT,GetClassID) (THIS_ CLSID * pClassID) PURE;
+ STDMETHOD_(HRESULT,Stop) (THIS) PURE;
+ STDMETHOD_(HRESULT,Pause) (THIS) PURE;
+ STDMETHOD_(HRESULT,Run) (THIS_ REFERENCE_TIME tStart) PURE;
+ STDMETHOD_(HRESULT,GetState) (THIS_ unsigned long, void *) PURE;
+ STDMETHOD_(HRESULT,SetSyncSource) (THIS_ struct IReferenceClock*) PURE;
+ STDMETHOD_(HRESULT,GetSyncSource) (THIS_ struct IReferenceClock**) PURE;
+ STDMETHOD_(HRESULT,EnumPins) (THIS_ struct IEnumPins **) PURE;
+ STDMETHOD_(HRESULT,FindPin) (THIS_ const unsigned short *, struct IPin *) PURE;
+ STDMETHOD_(HRESULT,QueryFilterInfo) (THIS_ void *) PURE;
+ STDMETHOD_(HRESULT,JoinFilterGraph) (THIS_ struct IFilterGraph *, const unsigned short *) PURE;
+ STDMETHOD_(HRESULT,QueryVendorInfo) (THIS_ unsigned short **) PURE;
+};
+#undef INTERFACE
+
+#define INTERFACE IAMTVTuner
+DECLARE_INTERFACE_(IAMTVTuner, IUnknown)
+{
+ STDMETHOD(QueryInterface) (THIS_ REFIID,PVOID*) PURE;
+ STDMETHOD_(ULONG, AddRef) (THIS) PURE;
+ STDMETHOD_(ULONG, Release) (THIS) PURE;
+ STDMETHOD_(HRESULT,put_Channel) (THIS_ long, long, long) PURE;
+ STDMETHOD_(HRESULT,get_Channel) (THIS_ long *, long *, long *) PURE;
+ STDMETHOD_(HRESULT,ChannelMinMax) (THIS_ long *, long *) PURE;
+ STDMETHOD_(HRESULT,put_CountryCode) (THIS_ long) PURE;
+ STDMETHOD_(HRESULT,get_CountryCode) (THIS_ long *) PURE;
+ STDMETHOD_(HRESULT,put_TuningSpace) (THIS_ long) PURE;
+ STDMETHOD_(HRESULT,get_TuningSpace) (THIS_ long *) PURE;
+ STDMETHOD_(HRESULT,Logon) (THIS_ HANDLE) PURE;
+ STDMETHOD_(HRESULT,Logout) (IAMTVTuner *) PURE;
+ STDMETHOD_(HRESULT,SignalPresen) (THIS_ long *) PURE;
+ STDMETHOD_(HRESULT,put_Mode) (THIS_ AMTunerModeType) PURE;
+ STDMETHOD_(HRESULT,get_Mode) (THIS_ AMTunerModeType *) PURE;
+ STDMETHOD_(HRESULT,GetAvailableModes) (THIS_ long *) PURE;
+/****** NOT IMPLEMENTED
+ STDMETHOD_(HRESULT,RegisterNotificationCallBack) (THIS_ struct IAMTunerNotification*, long) PURE;
+ STDMETHOD_(HRESULT,UnRegisterNotificationCallBack) (THIS_ struct IAMTunerNotification*) PURE;
+*******/
+ STDMETHOD_(HRESULT,get_AvailableTVFormats) (THIS_ long *) PURE;
+ STDMETHOD_(HRESULT,get_TVFormat) (THIS_ long *) PURE;
+ STDMETHOD_(HRESULT,AutoTune) (THIS_ long, long *) PURE;
+ STDMETHOD_(HRESULT,StoreAutoTune) (IAMTVTuner *) PURE;
+ STDMETHOD_(HRESULT,get_NumInputConnections) (THIS_ long *) PURE;
+ STDMETHOD_(HRESULT,put_InputType) (THIS_ long, TunerInputType) PURE;
+ STDMETHOD_(HRESULT,get_InputType) (THIS_ long, TunerInputType *) PURE;
+ STDMETHOD_(HRESULT,put_ConnectInput) (THIS_ long) PURE;
+ STDMETHOD_(HRESULT,get_ConnectInput) (THIS_ long *) PURE;
+ STDMETHOD_(HRESULT,get_VideoFrequency) (THIS_ long *) PURE;
+ STDMETHOD_(HRESULT,get_AudioFrequency) (THIS_ long *) PURE;
+};
+#undef INTERFACE
+
+#define INTERFACE IMediaControl
+DECLARE_INTERFACE_(IMediaControl, IUnknown)
+{
+ STDMETHOD(QueryInterface) (THIS_ REFIID,PVOID*);
+ STDMETHOD_(ULONG, AddRef) (THIS) PURE;
+ STDMETHOD_(ULONG, Release) (THIS) PURE;
+ STDMETHOD_(HRESULT,GetTypeInfoCount) (THIS_ UINT *) PURE;
+ STDMETHOD_(HRESULT,GetTypeInfo) (THIS_ UINT, LCID, LPTYPEINFO *) PURE;
+ STDMETHOD_(HRESULT,GetIDsOfNames) (THIS_ REFIID, LPOLESTR *, UINT, LCID,
+ DISPID *) PURE;
+ STDMETHOD_(HRESULT,Invoke) (THIS_ DISPID, REFIID, LCID, WORD, DISPPARAMS*,
+ VARIANT *, EXCEPINFO *, UINT *) PURE;
+ STDMETHOD_(HRESULT,Run) (THIS) PURE;
+ STDMETHOD_(HRESULT,Pause) (THIS) PURE;
+ STDMETHOD_(HRESULT,Stop) (THIS) PURE;
+ STDMETHOD_(HRESULT,GetState) (THIS_ LONG, OAFilterState *) PURE;
+ STDMETHOD_(HRESULT,RenderFile) (THIS_ BSTR) PURE;
+ STDMETHOD_(HRESULT,AddSourceFilter) (THIS_ BSTR, LPDISPATCH *) PURE;
+ STDMETHOD_(HRESULT,get_FilterCollection) (THIS_ LPDISPATCH *) PURE;
+ STDMETHOD_(HRESULT,get_RegFilterCollection) (THIS_ LPDISPATCH *) PURE;
+ STDMETHOD_(HRESULT,StopWhenReady) (IMediaControl *) PURE;
+};
+
+#undef INTERFACE
+#define INTERFACE IGraphBuilder
+DECLARE_INTERFACE_(IGraphBuilder, IUnknown)
+{
+ STDMETHOD(QueryInterface) (THIS_ REFIID,PVOID*) PURE;
+ STDMETHOD_(ULONG, AddRef) (THIS) PURE;
+ STDMETHOD_(ULONG, Release) (THIS) PURE;
+ STDMETHOD_(HRESULT,AddFilter) (THIS_ IBaseFilter *, LPCWSTR) PURE;
+ STDMETHOD_(HRESULT,RemoveFilter) (THIS_ IBaseFilter *) PURE;
+ STDMETHOD_(HRESULT,EnumFilters) (THIS_ struct IEnumFilters **) PURE;
+ STDMETHOD_(HRESULT,FindFilterByName) (THIS_ LPCWSTR, IBaseFilter **) PURE;
+ STDMETHOD_(HRESULT,ConnectDirect) (THIS_ IPin *, IPin *, const AM_MEDIA_TYPE *) PURE;
+ STDMETHOD_(HRESULT,Reconnect) (THIS_ IPin *) PURE;
+ STDMETHOD_(HRESULT,Disconnect) (THIS_ IPin *) PURE;
+ STDMETHOD_(HRESULT,SetDefaultSyncSource) (IGraphBuilder *) PURE;
+ STDMETHOD_(HRESULT,Connect) (THIS_ IPin *, IPin *) PURE;
+ STDMETHOD_(HRESULT,Render) (THIS_ IPin *) PURE;
+ STDMETHOD_(HRESULT,RenderFile) (THIS_ LPCWSTR, LPCWSTR) PURE;
+ STDMETHOD_(HRESULT,AddSourceFilter) (THIS_ LPCWSTR, LPCWSTR, IBaseFilter **) PURE;
+ STDMETHOD_(HRESULT,SetLogFile) (THIS_ DWORD_PTR) PURE;
+ STDMETHOD_(HRESULT,Abort) (IGraphBuilder *) PURE;
+ STDMETHOD_(HRESULT,ShouldOperationContinue) (IGraphBuilder *) PURE;
+};
+#undef INTERFACE
+
+#define INTERFACE IFileSinkFilter
+DECLARE_INTERFACE_(IFileSinkFilter, IUnknown)
+{
+ STDMETHOD(QueryInterface) (THIS_ REFIID,PVOID*);
+ STDMETHOD_(ULONG, AddRef) (THIS);
+ STDMETHOD_(ULONG, Release) (THIS) PURE;
+ STDMETHOD_(HRESULT,SetFileName) (THIS_ LPCOLESTR, const AM_MEDIA_TYPE *) PURE;
+ STDMETHOD_(HRESULT,GetCurFile) (THIS_ LPCOLESTR*, const AM_MEDIA_TYPE *) PURE;
+};
+#undef INTERFACE
+
+#define INTERFACE IAMCopyCaptureFileProgress
+DECLARE_INTERFACE_(IAMCopyCaptureFileProgress, IUnknown)
+{
+ STDMETHOD(QueryInterface) (THIS_ REFIID,PVOID*);
+ STDMETHOD_(ULONG, AddRef) (THIS);
+ STDMETHOD_(ULONG, Release) (THIS) PURE;
+ STDMETHOD_(HRESULT, Progress) (THIS_ int ) PURE;
+};
+#undef INTERFACE
+
+
+#define INTERFACE ICaptureGraphBuilder2
+DECLARE_INTERFACE_(ICaptureGraphBuilder2, IUnknown)
+{
+ STDMETHOD(QueryInterface) (THIS_ REFIID,PVOID*);
+ STDMETHOD_(ULONG, AddRef) (THIS);
+ STDMETHOD_(ULONG, Release) (THIS) PURE;
+ STDMETHOD_(HRESULT,SetFiltergraph) (THIS_ IGraphBuilder *) PURE;
+ STDMETHOD_(HRESULT,GetFiltergraph) (THIS_ IGraphBuilder **) PURE;
+ STDMETHOD_(HRESULT,SetOutputFileName) (THIS_ const GUID *, LPCOLESTR,
+ IBaseFilter **, IFileSinkFilter**) PURE;
+ STDMETHOD_(HRESULT,FindInterface) (THIS_ const GUID *, const GUID *,
+ IBaseFilter *, REFIID, void **) PURE;
+ STDMETHOD_(HRESULT,RenderStream) (THIS_ const GUID *, const GUID *, IUnknown *,
+ IBaseFilter *, IBaseFilter *) PURE;
+ STDMETHOD_(HRESULT,ControlStream) (THIS_ const GUID *, const GUID *,
+ IBaseFilter *, REFERENCE_TIME *,
+ REFERENCE_TIME *, WORD, WORD) PURE;
+ STDMETHOD_(HRESULT,AllocCapFile) (THIS_ LPCOLESTR, DWORDLONG) PURE;
+ STDMETHOD_(HRESULT,CopyCaptureFile) (THIS_ LPOLESTR, LPOLESTR, int,
+ struct IAMCopyCaptureFileProgress*) PURE;
+ STDMETHOD_(HRESULT,FindPin) (THIS_ IUnknown *, PIN_DIRECTION, const GUID *,
+ const GUID *, BOOL, int, IPin **) PURE;
+};
+
+#undef INTERFACE
+#define INTERFACE ICreateDevEnum
+DECLARE_INTERFACE_(ICreateDevEnum, IUnknown)
+{
+ STDMETHOD(QueryInterface) (THIS_ REFIID,PVOID*) PURE;
+ STDMETHOD_(ULONG, AddRef) (THIS) PURE;
+ STDMETHOD_(ULONG, Release) (THIS) PURE;
+ STDMETHOD_(HRESULT,CreateClassEnumerator) (THIS_ REFCLSID, IEnumMoniker **,
+ DWORD) PURE;
+};
+
+#undef INTERFACE
+#define INTERFACE IAMCrossbar
+DECLARE_INTERFACE_(IAMCrossbar, IUnknown)
+{
+ STDMETHOD(QueryInterface) (THIS_ REFIID,PVOID*) PURE;
+ STDMETHOD_(ULONG, AddRef) (THIS) PURE;
+ STDMETHOD_(ULONG, Release) (THIS) PURE;
+ STDMETHOD_(HRESULT,get_PinCounts) (THIS_ long *, long *) PURE;
+ STDMETHOD_(HRESULT,CanRoute) (THIS_ long, long) PURE;
+ STDMETHOD_(HRESULT,Route) (THIS_ long, long) PURE;
+ STDMETHOD_(HRESULT,get_IsRoutedTo) (THIS_ long, long *) PURE;
+ STDMETHOD_(HRESULT,get_CrossbarPinInfo) (THIS_ BOOL, long, long *, long *) PURE;
+};
+#undef INTERFACE
+
+#define INTERFACE IAMStreamConfig
+DECLARE_INTERFACE_(IAMStreamConfig, IUnknown)
+{
+ STDMETHOD(QueryInterface) (THIS_ REFIID,PVOID*) PURE;
+ STDMETHOD_(ULONG, AddRef) (THIS) PURE;
+ STDMETHOD_(ULONG, Release) (THIS) PURE;
+ STDMETHOD_(HRESULT, SetFormat) (THIS_ AM_MEDIA_TYPE *) PURE;
+ STDMETHOD_(HRESULT, GetFormat) (THIS_ AM_MEDIA_TYPE **) PURE;
+ STDMETHOD_(HRESULT, GetNumberOfCapabilities) (THIS_ int *,int *) PURE;
+ STDMETHOD_(HRESULT, GetStreamCaps) (THIS_ int,AM_MEDIA_TYPE **, BYTE *) PURE;
+};
+#undef INTERFACE
+
+#define INTERFACE IAMVideoProcAmp
+DECLARE_INTERFACE_(IAMVideoProcAmp, IUnknown)
+{
+ STDMETHOD(QueryInterface) (THIS_ REFIID,PVOID*) PURE;
+ STDMETHOD_(ULONG, AddRef) (THIS) PURE;
+ STDMETHOD_(ULONG, Release) (THIS) PURE;
+ STDMETHOD_(HRESULT, GetRange) (THIS_ long, long *, long *, long *, long *,long *) PURE;
+ STDMETHOD_(HRESULT, Set) (THIS_ long, long, long) PURE;
+ STDMETHOD_(HRESULT, Get) (THIS_ long, long *, long *) PURE;
+};
+#undef INTERFACE
+
+#define INTERFACE IAMTVAudio
+DECLARE_INTERFACE_(IAMTVAudio, IUnknown)
+{
+ STDMETHOD(QueryInterface) (THIS_ REFIID,PVOID*) PURE;
+ STDMETHOD_(ULONG, AddRef) (THIS) PURE;
+ STDMETHOD_(ULONG, Release) (THIS) PURE;
+ STDMETHOD_(HRESULT, GetHardwareSupportedTVAudioModes) (THIS_ long *) PURE;
+ STDMETHOD_(HRESULT, GetAvailableTVAudioModes) (THIS_ long *) PURE;
+ STDMETHOD_(HRESULT, get_TVAudioMode) (THIS_ long *) PURE;
+ STDMETHOD_(HRESULT, put_TVAudioMode) (THIS_ long) PURE;
+/****** NOT IMPLEMENTED
+ STDMETHOD_(HRESULT, RegisterNotificationCallBack) (THIS_ struct IAMTunerNotification*, long) PURE;
+ STDMETHOD_(HRESULT, UnRegisterNotificationCallBack) (THIS_ struct IAMTunerNotification*) PURE;
+*******/
+};
+#undef INTERFACE
+
+#define INTERFACE ISampleGrabberCB
+DECLARE_INTERFACE_(ISampleGrabberCB, IUnknown)
+{
+ STDMETHOD(QueryInterface) (THIS_ REFIID,PVOID*) PURE;
+ STDMETHOD_(ULONG, AddRef) (THIS) PURE;
+ STDMETHOD_(ULONG, Release) (THIS) PURE;
+ STDMETHOD_(HRESULT, SampleCB) (THIS_ double, struct IMediaSample *) PURE;
+ STDMETHOD_(HRESULT, BufferCB) (THIS_ double, BYTE *, long) PURE;
+};
+#undef INTERFACE
+
+
+#define INTERFACE ISampleGrabber
+DECLARE_INTERFACE_(ISampleGrabber, IUnknown)
+{
+ STDMETHOD(QueryInterface) (THIS_ REFIID,PVOID*) PURE;
+ STDMETHOD_(ULONG, AddRef) (THIS) PURE;
+ STDMETHOD_(ULONG, Release) (THIS) PURE;
+ STDMETHOD_(HRESULT, SetOneShot) (THIS_ BOOL) PURE;
+ STDMETHOD_(HRESULT, SetMediaType) (THIS_ const AM_MEDIA_TYPE *) PURE;
+ STDMETHOD_(HRESULT, GetConnectedMediaType) (THIS_ AM_MEDIA_TYPE *) PURE;
+ STDMETHOD_(HRESULT, SetBufferSamples) (THIS_ BOOL) PURE;
+ STDMETHOD_(HRESULT, GetCurrentBuffer) (THIS_ long *, long *) PURE;
+ STDMETHOD_(HRESULT, GetCurrentSample) (THIS_ struct IMediaSample **) PURE;
+ STDMETHOD_(HRESULT, SetCallback) (THIS_ ISampleGrabberCB *, long) PURE;
+};
+
+#undef INTERFACE
+#define INTERFACE IFilterGraph
+DECLARE_INTERFACE_(IFilterGraph, IUnknown)
+{
+ STDMETHOD(QueryInterface) (THIS_ REFIID,PVOID*) PURE;
+ STDMETHOD_(ULONG, AddRef) (THIS) PURE;
+ STDMETHOD_(ULONG, Release) (THIS) PURE;
+ STDMETHOD_(HRESULT, AddFilter) (THIS_ struct IBaseFilter *, LPCWSTR) PURE;
+ STDMETHOD_(HRESULT, RemoveFilter) (THIS_ struct IBaseFilter *) PURE;
+ STDMETHOD_(HRESULT, EnumFilters) (THIS_ struct IEnumFilters **) PURE;
+ STDMETHOD_(HRESULT, FindFilterByName) (THIS_ LPCWSTR, struct IBaseFilter **) PURE;
+ STDMETHOD_(HRESULT, ConnectDirect) (THIS_ IPin *, IPin *, const AM_MEDIA_TYPE *) PURE;
+ STDMETHOD_(HRESULT, Reconnect) (THIS_ struct IPin *) PURE;
+ STDMETHOD_(HRESULT, Disconnect) (THIS_ struct IPin *) PURE;
+ STDMETHOD_(HRESULT, SetDefaultSyncSource) (THIS) PURE;
+};
+#undef INTERFACE
+
+#define INTERFACE IMediaSample
+DECLARE_INTERFACE_(IMediaSample, IUnknown)
+{
+ STDMETHOD(QueryInterface) (THIS_ REFIID,PVOID*) PURE;
+ STDMETHOD_(ULONG, AddRef) (THIS) PURE;
+ STDMETHOD_(ULONG, Release) (THIS) PURE;
+ STDMETHOD_(HRESULT, GetPointer )(THIS_ unsigned char** ) PURE;
+ STDMETHOD_(LONG,GetSize )(THIS) PURE;
+ STDMETHOD_(HRESULT, GetTime )(THIS_ REFERENCE_TIME* ,REFERENCE_TIME* ) PURE;
+ STDMETHOD_(HRESULT, SetTime )(THIS_ REFERENCE_TIME* ,REFERENCE_TIME* ) PURE;
+ STDMETHOD_(HRESULT, IsSyncPoint )(THIS) PURE;
+ STDMETHOD_(HRESULT, SetSyncPoint )(THIS_ long ) PURE;
+ STDMETHOD_(HRESULT, IsPreroll )(THIS) PURE;
+ STDMETHOD_(HRESULT, SetPreroll )(THIS_ long ) PURE;
+ STDMETHOD_(LONG,GetActualDataLength)(THIS) PURE;
+ STDMETHOD_(HRESULT, SetActualDataLength )(THIS_ long ) PURE;
+ STDMETHOD_(HRESULT, GetMediaType )(THIS_ AM_MEDIA_TYPE** ) PURE;
+ STDMETHOD_(HRESULT, SetMediaType )(THIS_ AM_MEDIA_TYPE* ) PURE;
+ STDMETHOD_(HRESULT, IsDiscontinuity )(THIS) PURE;
+ STDMETHOD_(HRESULT, SetDiscontinuity )(THIS_ long ) PURE;
+ STDMETHOD_(HRESULT, GetMediaTime )(THIS_ long long* ,long long* ) PURE;
+ STDMETHOD_(HRESULT, SetMediaTime )(THIS_ long long* ,long long* ) PURE;
+};
+#undef INTERFACE
+
+#define INTERFACE IMediaFilter
+DECLARE_INTERFACE_(IMediaFilter, IUnknown)
+{
+ STDMETHOD(QueryInterface) (THIS_ REFIID,PVOID*) PURE;
+ STDMETHOD_(ULONG, AddRef) (THIS) PURE;
+ STDMETHOD_(ULONG, Release) (THIS) PURE;
+ STDMETHOD_(HRESULT, Stop) (THIS) PURE;
+ STDMETHOD_(HRESULT, Pause) (THIS) PURE;
+ STDMETHOD_(HRESULT, Run) (THIS_ REFERENCE_TIME) PURE;
+ STDMETHOD_(HRESULT, GetState) (THIS_ DWORD, FILTER_STATE *) PURE;
+ STDMETHOD_(HRESULT, SetSyncSource) (THIS_ IReferenceClock *) PURE;
+ STDMETHOD_(HRESULT, GetSyncSource) (THIS_ IReferenceClock **) PURE;
+};
+#undef INTERFACE
+
+
+#define INTERFACE IVideoWindow
+DECLARE_INTERFACE_(IVideoWindow, IUnknown)
+{
+ STDMETHOD(QueryInterface )(THIS_ REFIID ,void **) PURE;
+ STDMETHOD_(ULONG,AddRef )(THIS) PURE;
+ STDMETHOD_(ULONG,Release )(THIS) PURE;
+ STDMETHOD_(HRESULT, GetTypeInfoCount) (THIS_ UINT * ) PURE;
+ STDMETHOD_(HRESULT, GetTypeInfo) (THIS_ UINT ,LCID , ITypeInfo ** ) PURE;
+ STDMETHOD_(HRESULT, GetIDsOfNames) (THIS_ REFIID ,LPOLESTR * , UINT ,LCID , DISPID * ) PURE;
+ STDMETHOD_(HRESULT, Invoke) (THIS_ DISPID ,REFIID , LCID , WORD ,void *, VARIANT * ,EXCEPINFO * , UINT * ) PURE;
+ STDMETHOD_(HRESULT, put_Caption) (THIS_ BSTR ) PURE;
+ STDMETHOD_(HRESULT, get_Caption) (THIS_ BSTR * ) PURE;
+ STDMETHOD_(HRESULT, put_WindowStyle) (THIS_ long ) PURE;
+ STDMETHOD_(HRESULT, get_WindowStyle) (THIS_ long *) PURE;
+ STDMETHOD_(HRESULT, put_WindowStyleEx) (THIS_ long ) PURE;
+ STDMETHOD_(HRESULT, get_WindowStyleEx) (THIS_ long *) PURE;
+ STDMETHOD_(HRESULT, put_AutoShow) (THIS_ long ) PURE;
+ STDMETHOD_(HRESULT, get_AutoShow) (THIS_ long *) PURE;
+ STDMETHOD_(HRESULT, put_WindowState) (THIS_ long ) PURE;
+ STDMETHOD_(HRESULT, get_WindowState) (THIS_ long *) PURE;
+ STDMETHOD_(HRESULT, put_BackgroundPalette) (THIS_ long ) PURE;
+ STDMETHOD_(HRESULT, get_BackgroundPalette) (THIS_ long *) PURE;
+ STDMETHOD_(HRESULT, put_Visible) (THIS_ long ) PURE;
+ STDMETHOD_(HRESULT, get_Visible) (THIS_ long *) PURE;
+ STDMETHOD_(HRESULT, put_Left) (THIS_ long ) PURE;
+ STDMETHOD_(HRESULT, get_Left) (THIS_ long *) PURE;
+ STDMETHOD_(HRESULT, put_Width) (THIS_ long ) PURE;
+ STDMETHOD_(HRESULT, get_Width) (THIS_ long *) PURE;
+ STDMETHOD_(HRESULT, put_Top) (THIS_ long ) PURE;
+ STDMETHOD_(HRESULT, get_Top) (THIS_ long *) PURE;
+ STDMETHOD_(HRESULT, put_Height) (THIS_ long ) PURE;
+ STDMETHOD_(HRESULT, get_Height) (THIS_ long *) PURE;
+ STDMETHOD_(HRESULT, put_Owner) (THIS_ OAHWND ) PURE;
+ STDMETHOD_(HRESULT, get_Owner) (THIS_ OAHWND * ) PURE;
+ STDMETHOD_(HRESULT, put_MessageDrain) (THIS_ OAHWND ) PURE;
+ STDMETHOD_(HRESULT, get_MessageDrain) (THIS_ OAHWND * ) PURE;
+ STDMETHOD_(HRESULT, get_BorderColor) (THIS_ long *) PURE;
+ STDMETHOD_(HRESULT, put_BorderColor) (THIS_ long ) PURE;
+ STDMETHOD_(HRESULT, get_FullScreenMode) (THIS_ long *) PURE;
+ STDMETHOD_(HRESULT, put_FullScreenMode) (THIS_ long ) PURE;
+ STDMETHOD_(HRESULT, SetWindowForeground) (THIS_ long ) PURE;
+ STDMETHOD_(HRESULT, NotifyOwnerMessage) (THIS_ OAHWND ,long , LONG_PTR ,LONG_PTR ) PURE;
+ STDMETHOD_(HRESULT, SetWindowPosition) (THIS_ long ,long , long ,long ) PURE;
+ STDMETHOD_(HRESULT, GetWindowPosition) (THIS_ long *,long *, long *,long *) PURE;
+ STDMETHOD_(HRESULT, GetMinIdealImageSize) (THIS_ long *, long *) PURE;
+ STDMETHOD_(HRESULT, GetMaxIdealImageSize) (THIS_ long *, long *) PURE;
+ STDMETHOD_(HRESULT, GetRestorePosition) (THIS_ long *,long *, long *,long *) PURE;
+ STDMETHOD_(HRESULT, HideCursor) (THIS_ long ) PURE;
+ STDMETHOD_(HRESULT, IsCursorHidden) (THIS_ long *) PURE;
+};
+
#ifdef __cplusplus
}
#endif
------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
Cegcc-devel mailing list
Cegcc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cegcc-devel