FFmpeg
4.0
|
#include "avdevice.h"
#include <windows.h>
#include <dshow.h>
#include <dvdmedia.h>
#include "libavcodec/internal.h"
Go to the source code of this file.
Data Structures | |
struct | GUIDoffset |
struct | libAVPin |
struct | libAVEnumPins |
struct | libAVEnumMediaTypes |
struct | libAVFilter |
struct | dshow_ctx |
Macros | |
#define | DSHOWDEBUG 0 |
#define | COBJMACROS |
#define | WIN32_LEAN_AND_MEAN |
#define | NO_DSHOW_STRSAFE |
#define | EC_DEVICE_LOST 0x1f |
#define | dshowdebug(...) ff_dlog(&ff_dshow_context_class_ptr, __VA_ARGS__) |
#define | DECLARE_QUERYINTERFACE(class, ...) |
#define | DECLARE_ADDREF(class) |
#define | DECLARE_RELEASE(class) |
#define | DECLARE_DESTROY(class, func) |
#define | DECLARE_CREATE(class, setup, ...) |
#define | SETVTBL(vtbl, class, fn) do { (vtbl)->fn = (void *) class##_##fn; } while(0) |
Typedefs | |
typedef struct libAVMemInputPin | libAVMemInputPin |
Enumerations | |
enum | dshowDeviceType { VideoDevice = 0, AudioDevice = 1 } |
enum | dshowSourceFilterType { VideoSourceDevice = 0, AudioSourceDevice = 1 } |
Variables | |
const AVClass * | ff_dshow_context_class_ptr |
#define DSHOWDEBUG 0 |
Definition at line 25 of file dshow_capture.h.
#define COBJMACROS |
Definition at line 29 of file dshow_capture.h.
#define WIN32_LEAN_AND_MEAN |
Definition at line 30 of file dshow_capture.h.
#define NO_DSHOW_STRSAFE |
Definition at line 32 of file dshow_capture.h.
#define EC_DEVICE_LOST 0x1f |
Definition at line 40 of file dshow_capture.h.
Referenced by dshow_check_event_queue().
#define dshowdebug | ( | ... | ) | ff_dlog(&ff_dshow_context_class_ptr, __VA_ARGS__) |
Definition at line 50 of file dshow_capture.h.
Referenced by DECLARE_QUERYINTERFACE(), 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_QueryInterface(), 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 DECLARE_QUERYINTERFACE | ( | class, | |
... | |||
) |
Definition at line 71 of file dshow_capture.h.
#define DECLARE_ADDREF | ( | class | ) |
Definition at line 94 of file dshow_capture.h.
Referenced by DECLARE_QUERYINTERFACE().
#define DECLARE_RELEASE | ( | class | ) |
Definition at line 101 of file dshow_capture.h.
Referenced by DECLARE_QUERYINTERFACE().
Definition at line 112 of file dshow_capture.h.
Referenced by libAVEnumMediaTypes_Setup(), libAVEnumPins_Cleanup(), libAVFilter_Cleanup(), and libAVPin_Setup().
#define DECLARE_CREATE | ( | class, | |
setup, | |||
... | |||
) |
Definition at line 123 of file dshow_capture.h.
Referenced by libAVEnumMediaTypes_Setup(), libAVEnumPins_Cleanup(), libAVFilter_Cleanup(), and libAVPin_Setup().
Definition at line 145 of file dshow_capture.h.
Referenced by libAVEnumMediaTypes_Setup(), libAVEnumPins_Setup(), libAVFilter_Setup(), and libAVPin_Setup().
typedef struct libAVMemInputPin libAVMemInputPin |
Definition at line 152 of file dshow_capture.h.
enum dshowDeviceType |
Enumerator | |
---|---|
VideoDevice | |
AudioDevice |
Definition at line 61 of file dshow_capture.h.
Enumerator | |
---|---|
VideoSourceDevice | |
AudioSourceDevice |
Definition at line 66 of file dshow_capture.h.
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 DECLARE_QUERYINTERFACE(), libAVEnumMediaTypes_Setup(), libAVPin_ConnectionMediaType(), and libAVPin_ReceiveConnection().
void ff_print_VIDEO_STREAM_CONFIG_CAPS | ( | const VIDEO_STREAM_CONFIG_CAPS * | caps | ) |
Definition at line 85 of file dshow_common.c.
Referenced by dshow_cycle_formats().
void ff_print_AUDIO_STREAM_CONFIG_CAPS | ( | const AUDIO_STREAM_CONFIG_CAPS * | caps | ) |
Definition at line 115 of file dshow_common.c.
Referenced by dshow_cycle_formats().
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().
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().
Definition at line 52 of file dshow_capture.h.
Referenced by libAVEnumMediaTypes_Setup(), and libAVPin_Setup().
Referenced by libAVMemInputPin_QueryInterface().
unsigned long WINAPI libAVPin_AddRef | ( | libAVPin * | ) |
Referenced by DECLARE_QUERYINTERFACE(), dshow_open_device(), libAVFilter_FindPin(), and libAVMemInputPin_AddRef().
unsigned long WINAPI libAVPin_Release | ( | libAVPin * | ) |
Referenced by dshow_read_close(), libAVFilter_Cleanup(), and libAVMemInputPin_Release().
long WINAPI libAVPin_Connect | ( | libAVPin * | , |
IPin * | , | ||
const AM_MEDIA_TYPE * | |||
) |
Referenced by DECLARE_QUERYINTERFACE().
long WINAPI libAVPin_ReceiveConnection | ( | libAVPin * | , |
IPin * | , | ||
const AM_MEDIA_TYPE * | |||
) |
Definition at line 40 of file dshow_pin.c.
long WINAPI libAVPin_Disconnect | ( | libAVPin * | ) |
Definition at line 68 of file dshow_pin.c.
long WINAPI libAVPin_ConnectedTo | ( | libAVPin * | , |
IPin ** | |||
) |
Definition at line 82 of file dshow_pin.c.
long WINAPI libAVPin_ConnectionMediaType | ( | libAVPin * | , |
AM_MEDIA_TYPE * | |||
) |
Definition at line 96 of file dshow_pin.c.
Referenced by dshow_add_device().
long WINAPI libAVPin_QueryPinInfo | ( | libAVPin * | , |
PIN_INFO * | |||
) |
Definition at line 108 of file dshow_pin.c.
long WINAPI libAVPin_QueryDirection | ( | libAVPin * | , |
PIN_DIRECTION * | |||
) |
Definition at line 125 of file dshow_pin.c.
long WINAPI libAVPin_QueryId | ( | libAVPin * | , |
wchar_t ** | |||
) |
Definition at line 134 of file dshow_pin.c.
long WINAPI libAVPin_QueryAccept | ( | libAVPin * | , |
const AM_MEDIA_TYPE * | |||
) |
Definition at line 146 of file dshow_pin.c.
long WINAPI libAVPin_EnumMediaTypes | ( | libAVPin * | , |
IEnumMediaTypes ** | |||
) |
Definition at line 152 of file dshow_pin.c.
long WINAPI libAVPin_QueryInternalConnections | ( | libAVPin * | , |
IPin ** | , | ||
unsigned long * | |||
) |
Definition at line 168 of file dshow_pin.c.
long WINAPI libAVPin_EndOfStream | ( | libAVPin * | ) |
Definition at line 175 of file dshow_pin.c.
long WINAPI libAVPin_BeginFlush | ( | libAVPin * | ) |
Definition at line 182 of file dshow_pin.c.
long WINAPI libAVPin_EndFlush | ( | libAVPin * | ) |
Definition at line 189 of file dshow_pin.c.
long WINAPI libAVPin_NewSegment | ( | libAVPin * | , |
REFERENCE_TIME | , | ||
REFERENCE_TIME | , | ||
double | |||
) |
Definition at line 196 of file dshow_pin.c.
long WINAPI libAVMemInputPin_QueryInterface | ( | libAVMemInputPin * | , |
const GUID * | , | ||
void ** | |||
) |
Definition at line 259 of file dshow_pin.c.
unsigned long WINAPI libAVMemInputPin_AddRef | ( | libAVMemInputPin * | ) |
Definition at line 267 of file dshow_pin.c.
unsigned long WINAPI libAVMemInputPin_Release | ( | libAVMemInputPin * | ) |
Definition at line 274 of file dshow_pin.c.
long WINAPI libAVMemInputPin_GetAllocator | ( | libAVMemInputPin * | , |
IMemAllocator ** | |||
) |
Definition at line 281 of file dshow_pin.c.
long WINAPI libAVMemInputPin_NotifyAllocator | ( | libAVMemInputPin * | , |
IMemAllocator * | , | ||
BOOL | |||
) |
Definition at line 287 of file dshow_pin.c.
long WINAPI libAVMemInputPin_GetAllocatorRequirements | ( | libAVMemInputPin * | , |
ALLOCATOR_PROPERTIES * | |||
) |
Definition at line 294 of file dshow_pin.c.
long WINAPI libAVMemInputPin_Receive | ( | libAVMemInputPin * | , |
IMediaSample * | |||
) |
Definition at line 301 of file dshow_pin.c.
Referenced by libAVMemInputPin_ReceiveMultiple().
long WINAPI libAVMemInputPin_ReceiveMultiple | ( | libAVMemInputPin * | , |
IMediaSample ** | , | ||
long | , | ||
long * | |||
) |
Definition at line 358 of file dshow_pin.c.
long WINAPI libAVMemInputPin_ReceiveCanBlock | ( | libAVMemInputPin * | ) |
Definition at line 371 of file dshow_pin.c.
Referenced by libAVMemInputPin_Destroy().
libAVPin* libAVPin_Create | ( | libAVFilter * | filter | ) |
Referenced by libAVFilter_Setup().
void libAVMemInputPin_Destroy | ( | libAVMemInputPin * | ) |
Definition at line 379 of file dshow_pin.c.
long WINAPI libAVEnumPins_QueryInterface | ( | libAVEnumPins * | , |
const GUID * | , | ||
void ** | |||
) |
unsigned long WINAPI libAVEnumPins_AddRef | ( | libAVEnumPins * | ) |
unsigned long WINAPI libAVEnumPins_Release | ( | libAVEnumPins * | ) |
long WINAPI libAVEnumPins_Next | ( | libAVEnumPins * | , |
unsigned | long, | ||
IPin ** | , | ||
unsigned long * | |||
) |
Referenced by DECLARE_QUERYINTERFACE().
long WINAPI libAVEnumPins_Skip | ( | libAVEnumPins * | , |
unsigned | long | ||
) |
Definition at line 50 of file dshow_enumpins.c.
long WINAPI libAVEnumPins_Reset | ( | libAVEnumPins * | ) |
Definition at line 58 of file dshow_enumpins.c.
long WINAPI libAVEnumPins_Clone | ( | libAVEnumPins * | , |
libAVEnumPins ** | |||
) |
Definition at line 65 of file dshow_enumpins.c.
void libAVEnumPins_Destroy | ( | libAVEnumPins * | ) |
libAVEnumPins* libAVEnumPins_Create | ( | libAVPin * | pin, |
libAVFilter * | filter | ||
) |
Referenced by libAVEnumPins_Clone(), and libAVFilter_EnumPins().
long WINAPI libAVEnumMediaTypes_QueryInterface | ( | libAVEnumMediaTypes * | , |
const GUID * | , | ||
void ** | |||
) |
unsigned long WINAPI libAVEnumMediaTypes_AddRef | ( | libAVEnumMediaTypes * | ) |
unsigned long WINAPI libAVEnumMediaTypes_Release | ( | libAVEnumMediaTypes * | ) |
long WINAPI libAVEnumMediaTypes_Next | ( | libAVEnumMediaTypes * | , |
unsigned | long, | ||
AM_MEDIA_TYPE ** | , | ||
unsigned long * | |||
) |
Referenced by DECLARE_QUERYINTERFACE().
long WINAPI libAVEnumMediaTypes_Skip | ( | libAVEnumMediaTypes * | , |
unsigned | long | ||
) |
Definition at line 55 of file dshow_enummediatypes.c.
long WINAPI libAVEnumMediaTypes_Reset | ( | libAVEnumMediaTypes * | ) |
Definition at line 63 of file dshow_enummediatypes.c.
long WINAPI libAVEnumMediaTypes_Clone | ( | libAVEnumMediaTypes * | , |
libAVEnumMediaTypes ** | |||
) |
Definition at line 70 of file dshow_enummediatypes.c.
void libAVEnumMediaTypes_Destroy | ( | libAVEnumMediaTypes * | ) |
libAVEnumMediaTypes* libAVEnumMediaTypes_Create | ( | const AM_MEDIA_TYPE * | type | ) |
Referenced by libAVEnumMediaTypes_Clone(), and libAVPin_EnumMediaTypes().
long WINAPI libAVFilter_QueryInterface | ( | libAVFilter * | , |
const GUID * | , | ||
void ** | |||
) |
unsigned long WINAPI libAVFilter_AddRef | ( | libAVFilter * | ) |
Referenced by libAVEnumPins_Setup(), and libAVPin_QueryPinInfo().
unsigned long WINAPI libAVFilter_Release | ( | libAVFilter * | ) |
Referenced by dshow_read_close(), and libAVEnumPins_Cleanup().
long WINAPI libAVFilter_GetClassID | ( | libAVFilter * | , |
CLSID * | |||
) |
Referenced by DECLARE_QUERYINTERFACE().
long WINAPI libAVFilter_Stop | ( | libAVFilter * | ) |
Definition at line 37 of file dshow_filter.c.
long WINAPI libAVFilter_Pause | ( | libAVFilter * | ) |
Definition at line 44 of file dshow_filter.c.
long WINAPI libAVFilter_Run | ( | libAVFilter * | , |
REFERENCE_TIME | |||
) |
Definition at line 51 of file dshow_filter.c.
long WINAPI libAVFilter_GetState | ( | libAVFilter * | , |
DWORD | , | ||
FILTER_STATE * | |||
) |
Definition at line 59 of file dshow_filter.c.
long WINAPI libAVFilter_SetSyncSource | ( | libAVFilter * | , |
IReferenceClock * | |||
) |
Definition at line 68 of file dshow_filter.c.
long WINAPI libAVFilter_GetSyncSource | ( | libAVFilter * | , |
IReferenceClock ** | |||
) |
Definition at line 83 of file dshow_filter.c.
long WINAPI libAVFilter_EnumPins | ( | libAVFilter * | , |
IEnumPins ** | |||
) |
Definition at line 96 of file dshow_filter.c.
long WINAPI libAVFilter_FindPin | ( | libAVFilter * | , |
const wchar_t * | , | ||
IPin ** | |||
) |
Definition at line 111 of file dshow_filter.c.
long WINAPI libAVFilter_QueryFilterInfo | ( | libAVFilter * | , |
FILTER_INFO * | |||
) |
Definition at line 129 of file dshow_filter.c.
long WINAPI libAVFilter_JoinFilterGraph | ( | libAVFilter * | , |
IFilterGraph * | , | ||
const wchar_t * | |||
) |
Definition at line 142 of file dshow_filter.c.
long WINAPI libAVFilter_QueryVendorInfo | ( | libAVFilter * | , |
wchar_t ** | |||
) |
Definition at line 154 of file dshow_filter.c.
void libAVFilter_Destroy | ( | libAVFilter * | ) |
libAVFilter* libAVFilter_Create | ( | void * | , |
void * | , | ||
enum | dshowDeviceType | ||
) |
Referenced by dshow_open_device().
HRESULT dshow_try_setup_crossbar_options | ( | ICaptureGraphBuilder2 * | graph_builder2, |
IBaseFilter * | device_filter, | ||
enum dshowDeviceType | devtype, | ||
AVFormatContext * | avctx | ||
) |
Given a fully constructed graph, check if there is a cross bar filter, and configure its pins if so.
Definition at line 140 of file dshow_crossbar.c.
Referenced by dshow_open_device().
void dshow_show_filter_properties | ( | IBaseFilter * | pFilter, |
AVFormatContext * | avctx | ||
) |
Pops up a user dialog allowing them to adjust properties for the given filter, if possible.
Definition at line 512 of file dshow.c.
Referenced by dshow_cycle_pins(), and dshow_try_setup_crossbar_options().
const AVClass* ff_dshow_context_class_ptr |
Definition at line 60 of file dshow_common.c.