#include "avdevice.h"#include <windows.h>#include <dshow.h>#include <dvdmedia.h>Go to the source code of this file.
| #define COBJMACROS | 
Definition at line 29 of file dshow_capture.h.
| #define DECLARE_ADDREF | ( | class | ) | 
Value:
unsigned long WINAPI \ class##_AddRef(class *this) \ { \ dshowdebug(AV_STRINGIFY(class)"_AddRef(%p)\t%ld\n", this, this->ref+1); \ return InterlockedIncrement(&this->ref); \ }
Definition at line 84 of file dshow_capture.h.
| #define DECLARE_CREATE | ( | class, | |||
| setup, | |||||
| ... | ) | 
Value:
class *class##_Create(__VA_ARGS__) \ { \ class *this = CoTaskMemAlloc(sizeof(class)); \ void *vtbl = CoTaskMemAlloc(sizeof(*this->vtbl)); \ dshowdebug(AV_STRINGIFY(class)"_Create(%p)\n", this); \ if (!this || !vtbl) \ goto fail; \ ZeroMemory(this, sizeof(class)); \ ZeroMemory(vtbl, sizeof(*this->vtbl)); \ this->ref = 1; \ this->vtbl = vtbl; \ if (!setup) \ goto fail; \ dshowdebug("created "AV_STRINGIFY(class)" %p\n", this); \ return this; \ fail: \ class##_Destroy(this); \ dshowdebug("could not create "AV_STRINGIFY(class)"\n"); \ return NULL; \ }
Definition at line 113 of file dshow_capture.h.
| #define DECLARE_DESTROY | ( | class, | |||
| func | ) | 
Value:
void class##_Destroy(class *this) \ { \ dshowdebug(AV_STRINGIFY(class)"_Destroy(%p)\n", this); \ func(this); \ if (this) { \ if (this->vtbl) \ CoTaskMemFree(this->vtbl); \ CoTaskMemFree(this); \ } \ }
Definition at line 102 of file dshow_capture.h.
| #define DECLARE_QUERYINTERFACE | ( | class, | |||
| ... | ) | 
Value:
long WINAPI \ class##_QueryInterface(class *this, const GUID *riid, void **ppvObject) \ { \ struct GUIDoffset ifaces[] = __VA_ARGS__; \ int i; \ dshowdebug(AV_STRINGIFY(class)"_QueryInterface(%p, %p, %p)\n", this, riid, ppvObject); \ ff_printGUID(riid); \ if (!ppvObject) \ return E_POINTER; \ for (i = 0; i < sizeof(ifaces)/sizeof(ifaces[0]); i++) { \ if (IsEqualGUID(riid, ifaces[i].iid)) { \ void *obj = (void *) ((uint8_t *) this + ifaces[i].offset); \ class##_AddRef(this); \ dshowdebug("\tfound %d with offset %d\n", i, ifaces[i].offset); \ *ppvObject = (void *) obj; \ return S_OK; \ } \ } \ dshowdebug("\tE_NOINTERFACE\n"); \ *ppvObject = NULL; \ return E_NOINTERFACE; \ }
Definition at line 61 of file dshow_capture.h.
| #define DECLARE_RELEASE | ( | class | ) | 
Value:
unsigned long WINAPI \ class##_Release(class *this) \ { \ long ref = InterlockedDecrement(&this->ref); \ dshowdebug(AV_STRINGIFY(class)"_Release(%p)\t%ld\n", this, ref); \ if (!ref) \ class##_Destroy(this); \ return ref; \ }
Definition at line 91 of file dshow_capture.h.
| #define dshowdebug | ( | ... | ) | 
Definition at line 44 of file dshow_capture.h.
Referenced by ff_print_AM_MEDIA_TYPE(), ff_print_AUDIO_STREAM_CONFIG_CAPS(), ff_print_VIDEO_STREAM_CONFIG_CAPS(), ff_printGUID(), libAVEnumMediaTypes_Clone(), libAVEnumMediaTypes_Reset(), libAVEnumMediaTypes_Skip(), libAVEnumPins_Clone(), libAVEnumPins_Reset(), libAVEnumPins_Skip(), libAVFilter_EnumPins(), libAVFilter_FindPin(), libAVFilter_GetState(), libAVFilter_GetSyncSource(), libAVFilter_JoinFilterGraph(), libAVFilter_Pause(), libAVFilter_QueryFilterInfo(), libAVFilter_QueryVendorInfo(), libAVFilter_Run(), libAVFilter_SetSyncSource(), libAVFilter_Stop(), libAVMemInputPin_AddRef(), libAVMemInputPin_Destroy(), libAVMemInputPin_GetAllocator(), libAVMemInputPin_GetAllocatorRequirements(), libAVMemInputPin_NotifyAllocator(), libAVMemInputPin_Receive(), libAVMemInputPin_ReceiveCanBlock(), libAVMemInputPin_ReceiveMultiple(), libAVMemInputPin_Release(), libAVPin_BeginFlush(), libAVPin_ConnectedTo(), libAVPin_ConnectionMediaType(), libAVPin_Disconnect(), libAVPin_EndFlush(), libAVPin_EndOfStream(), libAVPin_EnumMediaTypes(), libAVPin_NewSegment(), libAVPin_QueryAccept(), libAVPin_QueryDirection(), libAVPin_QueryId(), libAVPin_QueryInternalConnections(), libAVPin_QueryPinInfo(), and libAVPin_ReceiveConnection().
| #define DSHOWDEBUG 0 | 
Definition at line 25 of file dshow_capture.h.
| #define SETVTBL | ( | vtbl, | |||
| class, | |||||
| fn | ) | do { (vtbl)->fn = (void *) class##_##fn; } while(0) | 
Definition at line 135 of file dshow_capture.h.
Referenced by libAVEnumMediaTypes_Setup(), libAVEnumPins_Setup(), libAVFilter_Setup(), and libAVPin_Setup().
| typedef struct libAVEnumMediaTypes libAVEnumMediaTypes | 
Definition at line 144 of file dshow_capture.h.
| typedef struct libAVEnumPins libAVEnumPins | 
Definition at line 143 of file dshow_capture.h.
| typedef struct libAVFilter libAVFilter | 
Definition at line 145 of file dshow_capture.h.
| typedef struct libAVMemInputPin libAVMemInputPin | 
Definition at line 142 of file dshow_capture.h.
Definition at line 141 of file dshow_capture.h.
| enum dshowDeviceType | 
| long ff_copy_dshow_media_type | ( | AM_MEDIA_TYPE * | dst, | |
| const AM_MEDIA_TYPE * | src | |||
| ) | 
Definition at line 24 of file dshow_common.c.
Referenced by libAVEnumMediaTypes_Setup(), libAVPin_ConnectionMediaType(), and libAVPin_ReceiveConnection().
| void ff_print_AM_MEDIA_TYPE | ( | const AM_MEDIA_TYPE * | type | ) | 
Definition at line 134 of file dshow_common.c.
Referenced by dshow_cycle_formats(), and libAVPin_ReceiveConnection().
| void ff_print_AUDIO_STREAM_CONFIG_CAPS | ( | const AUDIO_STREAM_CONFIG_CAPS * | caps | ) | 
| void ff_print_VIDEO_STREAM_CONFIG_CAPS | ( | const VIDEO_STREAM_CONFIG_CAPS * | caps | ) | 
| void ff_printGUID | ( | const GUID * | g | ) | 
Definition at line 42 of file dshow_common.c.
Referenced by ff_print_AM_MEDIA_TYPE(), ff_print_AUDIO_STREAM_CONFIG_CAPS(), and ff_print_VIDEO_STREAM_CONFIG_CAPS().
| unsigned long WINAPI libAVEnumMediaTypes_AddRef | ( | libAVEnumMediaTypes * | ) | 
| long WINAPI libAVEnumMediaTypes_Clone | ( | libAVEnumMediaTypes * | , | |
| libAVEnumMediaTypes ** | ||||
| ) | 
Definition at line 68 of file dshow_enummediatypes.c.
| libAVEnumMediaTypes* libAVEnumMediaTypes_Create | ( | const AM_MEDIA_TYPE * | type | ) | 
Referenced by libAVEnumMediaTypes_Clone(), and libAVPin_EnumMediaTypes().
| void libAVEnumMediaTypes_Destroy | ( | libAVEnumMediaTypes * | ) | 
| long WINAPI libAVEnumMediaTypes_Next | ( | libAVEnumMediaTypes * | , | |
| unsigned | long, | |||
| AM_MEDIA_TYPE ** | , | |||
| unsigned long * | ||||
| ) | 
| long WINAPI libAVEnumMediaTypes_QueryInterface | ( | libAVEnumMediaTypes * | , | |
| const GUID * | , | |||
| void ** | ||||
| ) | 
| unsigned long WINAPI libAVEnumMediaTypes_Release | ( | libAVEnumMediaTypes * | ) | 
| long WINAPI libAVEnumMediaTypes_Reset | ( | libAVEnumMediaTypes * | ) | 
Definition at line 61 of file dshow_enummediatypes.c.
| long WINAPI libAVEnumMediaTypes_Skip | ( | libAVEnumMediaTypes * | , | |
| unsigned | long | |||
| ) | 
Definition at line 53 of file dshow_enummediatypes.c.
| unsigned long WINAPI libAVEnumPins_AddRef | ( | libAVEnumPins * | ) | 
| long WINAPI libAVEnumPins_Clone | ( | libAVEnumPins * | , | |
| libAVEnumPins ** | ||||
| ) | 
Definition at line 65 of file dshow_enumpins.c.
| libAVEnumPins* libAVEnumPins_Create | ( | libAVPin * | pin, | |
| libAVFilter * | filter | |||
| ) | 
Referenced by libAVEnumPins_Clone(), and libAVFilter_EnumPins().
| void libAVEnumPins_Destroy | ( | libAVEnumPins * | ) | 
| long WINAPI libAVEnumPins_Next | ( | libAVEnumPins * | , | |
| unsigned | long, | |||
| IPin ** | , | |||
| unsigned long * | ||||
| ) | 
| long WINAPI libAVEnumPins_QueryInterface | ( | libAVEnumPins * | , | |
| const GUID * | , | |||
| void ** | ||||
| ) | 
| unsigned long WINAPI libAVEnumPins_Release | ( | libAVEnumPins * | ) | 
| long WINAPI libAVEnumPins_Reset | ( | libAVEnumPins * | ) | 
Definition at line 58 of file dshow_enumpins.c.
| long WINAPI libAVEnumPins_Skip | ( | libAVEnumPins * | , | |
| unsigned | long | |||
| ) | 
Definition at line 50 of file dshow_enumpins.c.
| unsigned long WINAPI libAVFilter_AddRef | ( | libAVFilter * | ) | 
Referenced by libAVEnumPins_Setup(), and libAVPin_QueryPinInfo().
| libAVFilter* libAVFilter_Create | ( | void * | , | |
| void * | , | |||
| enum | dshowDeviceType | |||
| ) | 
Referenced by dshow_open_device().
| void libAVFilter_Destroy | ( | libAVFilter * | ) | 
| long WINAPI libAVFilter_EnumPins | ( | libAVFilter * | , | |
| IEnumPins ** | ||||
| ) | 
Definition at line 97 of file dshow_filter.c.
| long WINAPI libAVFilter_FindPin | ( | libAVFilter * | , | |
| const wchar_t * | , | |||
| IPin ** | ||||
| ) | 
Definition at line 112 of file dshow_filter.c.
| long WINAPI libAVFilter_GetClassID | ( | libAVFilter * | , | |
| CLSID * | ||||
| ) | 
| long WINAPI libAVFilter_GetState | ( | libAVFilter * | , | |
| DWORD | , | |||
| FILTER_STATE * | ||||
| ) | 
Definition at line 60 of file dshow_filter.c.
| long WINAPI libAVFilter_GetSyncSource | ( | libAVFilter * | , | |
| IReferenceClock ** | ||||
| ) | 
Definition at line 84 of file dshow_filter.c.
| long WINAPI libAVFilter_JoinFilterGraph | ( | libAVFilter * | , | |
| IFilterGraph * | , | |||
| const wchar_t * | ||||
| ) | 
Definition at line 143 of file dshow_filter.c.
| long WINAPI libAVFilter_Pause | ( | libAVFilter * | ) | 
Definition at line 45 of file dshow_filter.c.
| long WINAPI libAVFilter_QueryFilterInfo | ( | libAVFilter * | , | |
| FILTER_INFO * | ||||
| ) | 
Definition at line 130 of file dshow_filter.c.
| long WINAPI libAVFilter_QueryInterface | ( | libAVFilter * | , | |
| const GUID * | , | |||
| void ** | ||||
| ) | 
| long WINAPI libAVFilter_QueryVendorInfo | ( | libAVFilter * | , | |
| wchar_t ** | ||||
| ) | 
Definition at line 155 of file dshow_filter.c.
| unsigned long WINAPI libAVFilter_Release | ( | libAVFilter * | ) | 
Referenced by dshow_read_close(), and libAVEnumPins_Cleanup().
| long WINAPI libAVFilter_Run | ( | libAVFilter * | , | |
| REFERENCE_TIME | ||||
| ) | 
Definition at line 52 of file dshow_filter.c.
| long WINAPI libAVFilter_SetSyncSource | ( | libAVFilter * | , | |
| IReferenceClock * | ||||
| ) | 
Definition at line 69 of file dshow_filter.c.
| long WINAPI libAVFilter_Stop | ( | libAVFilter * | ) | 
Definition at line 38 of file dshow_filter.c.
| unsigned long WINAPI libAVMemInputPin_AddRef | ( | libAVMemInputPin * | ) | 
Definition at line 268 of file dshow_pin.c.
| void libAVMemInputPin_Destroy | ( | libAVMemInputPin * | ) | 
Definition at line 358 of file dshow_pin.c.
| long WINAPI libAVMemInputPin_GetAllocator | ( | libAVMemInputPin * | , | |
| IMemAllocator ** | ||||
| ) | 
Definition at line 282 of file dshow_pin.c.
| long WINAPI libAVMemInputPin_GetAllocatorRequirements | ( | libAVMemInputPin * | , | |
| ALLOCATOR_PROPERTIES * | ||||
| ) | 
Definition at line 295 of file dshow_pin.c.
| long WINAPI libAVMemInputPin_NotifyAllocator | ( | libAVMemInputPin * | , | |
| IMemAllocator * | , | |||
| BOOL | ||||
| ) | 
Definition at line 288 of file dshow_pin.c.
| long WINAPI libAVMemInputPin_QueryInterface | ( | libAVMemInputPin * | , | |
| const GUID * | , | |||
| void ** | ||||
| ) | 
| long WINAPI libAVMemInputPin_Receive | ( | libAVMemInputPin * | , | |
| IMediaSample * | ||||
| ) | 
| long WINAPI libAVMemInputPin_ReceiveCanBlock | ( | libAVMemInputPin * | ) | 
Definition at line 350 of file dshow_pin.c.
| long WINAPI libAVMemInputPin_ReceiveMultiple | ( | libAVMemInputPin * | , | |
| IMediaSample ** | , | |||
| long | , | |||
| long * | ||||
| ) | 
Definition at line 337 of file dshow_pin.c.
| unsigned long WINAPI libAVMemInputPin_Release | ( | libAVMemInputPin * | ) | 
Definition at line 275 of file dshow_pin.c.
| unsigned long WINAPI libAVPin_AddRef | ( | libAVPin * | ) | 
Referenced by dshow_open_device(), libAVFilter_FindPin(), and libAVMemInputPin_AddRef().
| long WINAPI libAVPin_BeginFlush | ( | libAVPin * | ) | 
Definition at line 183 of file dshow_pin.c.
| long WINAPI libAVPin_Connect | ( | libAVPin * | , | |
| IPin * | , | |||
| const AM_MEDIA_TYPE * | ||||
| ) | 
| long WINAPI libAVPin_ConnectedTo | ( | libAVPin * | , | |
| IPin ** | ||||
| ) | 
Definition at line 83 of file dshow_pin.c.
| long WINAPI libAVPin_ConnectionMediaType | ( | libAVPin * | , | |
| AM_MEDIA_TYPE * | ||||
| ) | 
| libAVPin* libAVPin_Create | ( | libAVFilter * | filter | ) | 
Referenced by libAVFilter_Setup().
| void libAVPin_Destroy | ( | libAVPin * | ) | 
Referenced by libAVMemInputPin_Destroy().
| long WINAPI libAVPin_Disconnect | ( | libAVPin * | ) | 
Definition at line 69 of file dshow_pin.c.
| long WINAPI libAVPin_EndFlush | ( | libAVPin * | ) | 
Definition at line 190 of file dshow_pin.c.
| long WINAPI libAVPin_EndOfStream | ( | libAVPin * | ) | 
Definition at line 176 of file dshow_pin.c.
| long WINAPI libAVPin_EnumMediaTypes | ( | libAVPin * | , | |
| IEnumMediaTypes ** | ||||
| ) | 
Definition at line 153 of file dshow_pin.c.
| long WINAPI libAVPin_NewSegment | ( | libAVPin * | , | |
| REFERENCE_TIME | , | |||
| REFERENCE_TIME | , | |||
| double | ||||
| ) | 
Definition at line 197 of file dshow_pin.c.
| long WINAPI libAVPin_QueryAccept | ( | libAVPin * | , | |
| const AM_MEDIA_TYPE * | ||||
| ) | 
Definition at line 147 of file dshow_pin.c.
| long WINAPI libAVPin_QueryDirection | ( | libAVPin * | , | |
| PIN_DIRECTION * | ||||
| ) | 
Definition at line 126 of file dshow_pin.c.
| long WINAPI libAVPin_QueryId | ( | libAVPin * | , | |
| wchar_t ** | ||||
| ) | 
Definition at line 135 of file dshow_pin.c.
| long WINAPI libAVPin_QueryInterface | ( | libAVPin * | , | |
| const GUID * | , | |||
| void ** | ||||
| ) | 
| long WINAPI libAVPin_QueryInternalConnections | ( | libAVPin * | , | |
| IPin ** | , | |||
| unsigned long * | ||||
| ) | 
Definition at line 169 of file dshow_pin.c.
| long WINAPI libAVPin_QueryPinInfo | ( | libAVPin * | , | |
| PIN_INFO * | ||||
| ) | 
Definition at line 109 of file dshow_pin.c.
| long WINAPI libAVPin_ReceiveConnection | ( | libAVPin * | , | |
| IPin * | , | |||
| const AM_MEDIA_TYPE * | ||||
| ) | 
Definition at line 41 of file dshow_pin.c.
| unsigned long WINAPI libAVPin_Release | ( | libAVPin * | ) | 
Referenced by dshow_read_close(), libAVFilter_Cleanup(), and libAVMemInputPin_Release().
| static void nothing | ( | void * | foo | ) |  [inline, static] | 
        
Definition at line 47 of file dshow_capture.h.
 1.5.8