FFmpeg
Loading...
Searching...
No Matches
dshow_capture.h File Reference
#include "avdevice.h"
#include <windows.h>
#include <dshow.h>
#include <dvdmedia.h>
#include "libavcodec/internal.h"
#include "libavformat/packet_internal.h"

Go to the source code of this file.

Data Structures

struct  GUIDoffset
 
struct  DShowPin
 
struct  DShowEnumPins
 
struct  DShowEnumMediaTypes
 
struct  DShowFilter
 
struct  dshow_ctx
 

Macros

#define DSHOWDEBUG   0
 
#define COBJMACROS
 
#define NO_DSHOW_STRSAFE
 
#define EC_DEVICE_LOST   0x1f
 
#define dshowdebug(...)
 
#define DECLARE_QUERYINTERFACE(prefix, class, ...)
 
#define DECLARE_ADDREF(prefix, class)
 
#define DECLARE_RELEASE(prefix, class)
 
#define DECLARE_DESTROY(prefix, class, func)
 
#define DECLARE_CREATE(prefix, class, setup, ...)
 
#define SETVTBL(vtbl, prefix, fn)
 

Typedefs

typedef struct DShowMemInputPin DShowMemInputPin
 

Enumerations

enum  dshowDeviceType { VideoDevice = 0 , AudioDevice = 1 }
 
enum  dshowSourceFilterType { VideoSourceDevice = 0 , AudioSourceDevice = 1 }
 

Functions

long ff_copy_dshow_media_type (AM_MEDIA_TYPE *dst, const AM_MEDIA_TYPE *src)
 
void ff_print_VIDEO_STREAM_CONFIG_CAPS (const VIDEO_STREAM_CONFIG_CAPS *caps)
 
void ff_print_AUDIO_STREAM_CONFIG_CAPS (const AUDIO_STREAM_CONFIG_CAPS *caps)
 
void ff_print_AM_MEDIA_TYPE (const AM_MEDIA_TYPE *type)
 
void ff_printGUID (const GUID *g)
 
static void nothing (void *foo)
 
long WINAPI ff_dshow_pin_QueryInterface (DShowPin *, const GUID *, void **)
 
unsigned long WINAPI ff_dshow_pin_AddRef (DShowPin *)
 
unsigned long WINAPI ff_dshow_pin_Release (DShowPin *)
 
long WINAPI ff_dshow_pin_Connect (DShowPin *, IPin *, const AM_MEDIA_TYPE *)
 
long WINAPI ff_dshow_pin_ReceiveConnection (DShowPin *, IPin *, const AM_MEDIA_TYPE *)
 
long WINAPI ff_dshow_pin_Disconnect (DShowPin *)
 
long WINAPI ff_dshow_pin_ConnectedTo (DShowPin *, IPin **)
 
long WINAPI ff_dshow_pin_ConnectionMediaType (DShowPin *, AM_MEDIA_TYPE *)
 
long WINAPI ff_dshow_pin_QueryPinInfo (DShowPin *, PIN_INFO *)
 
long WINAPI ff_dshow_pin_QueryDirection (DShowPin *, PIN_DIRECTION *)
 
long WINAPI ff_dshow_pin_QueryId (DShowPin *, wchar_t **)
 
long WINAPI ff_dshow_pin_QueryAccept (DShowPin *, const AM_MEDIA_TYPE *)
 
long WINAPI ff_dshow_pin_EnumMediaTypes (DShowPin *, IEnumMediaTypes **)
 
long WINAPI ff_dshow_pin_QueryInternalConnections (DShowPin *, IPin **, unsigned long *)
 
long WINAPI ff_dshow_pin_EndOfStream (DShowPin *)
 
long WINAPI ff_dshow_pin_BeginFlush (DShowPin *)
 
long WINAPI ff_dshow_pin_EndFlush (DShowPin *)
 
long WINAPI ff_dshow_pin_NewSegment (DShowPin *, REFERENCE_TIME, REFERENCE_TIME, double)
 
long WINAPI ff_dshow_meminputpin_QueryInterface (DShowMemInputPin *, const GUID *, void **)
 
unsigned long WINAPI ff_dshow_meminputpin_AddRef (DShowMemInputPin *)
 
unsigned long WINAPI ff_dshow_meminputpin_Release (DShowMemInputPin *)
 
long WINAPI ff_dshow_meminputpin_GetAllocator (DShowMemInputPin *, IMemAllocator **)
 
long WINAPI ff_dshow_meminputpin_NotifyAllocator (DShowMemInputPin *, IMemAllocator *, BOOL)
 
long WINAPI ff_dshow_meminputpin_GetAllocatorRequirements (DShowMemInputPin *, ALLOCATOR_PROPERTIES *)
 
long WINAPI ff_dshow_meminputpin_Receive (DShowMemInputPin *, IMediaSample *)
 
long WINAPI ff_dshow_meminputpin_ReceiveMultiple (DShowMemInputPin *, IMediaSample **, long, long *)
 
long WINAPI ff_dshow_meminputpin_ReceiveCanBlock (DShowMemInputPin *)
 
void ff_dshow_pin_Destroy (DShowPin *)
 
DShowPinff_dshow_pin_Create (DShowFilter *filter)
 
void ff_dshow_meminputpin_Destroy (DShowMemInputPin *)
 
long WINAPI ff_dshow_enumpins_QueryInterface (DShowEnumPins *, const GUID *, void **)
 
unsigned long WINAPI ff_dshow_enumpins_AddRef (DShowEnumPins *)
 
unsigned long WINAPI ff_dshow_enumpins_Release (DShowEnumPins *)
 
long WINAPI ff_dshow_enumpins_Next (DShowEnumPins *, unsigned long, IPin **, unsigned long *)
 
long WINAPI ff_dshow_enumpins_Skip (DShowEnumPins *, unsigned long)
 
long WINAPI ff_dshow_enumpins_Reset (DShowEnumPins *)
 
long WINAPI ff_dshow_enumpins_Clone (DShowEnumPins *, DShowEnumPins **)
 
void ff_dshow_enumpins_Destroy (DShowEnumPins *)
 
DShowEnumPinsff_dshow_enumpins_Create (DShowPin *pin, DShowFilter *filter)
 
long WINAPI ff_dshow_enummediatypes_QueryInterface (DShowEnumMediaTypes *, const GUID *, void **)
 
unsigned long WINAPI ff_dshow_enummediatypes_AddRef (DShowEnumMediaTypes *)
 
unsigned long WINAPI ff_dshow_enummediatypes_Release (DShowEnumMediaTypes *)
 
long WINAPI ff_dshow_enummediatypes_Next (DShowEnumMediaTypes *, unsigned long, AM_MEDIA_TYPE **, unsigned long *)
 
long WINAPI ff_dshow_enummediatypes_Skip (DShowEnumMediaTypes *, unsigned long)
 
long WINAPI ff_dshow_enummediatypes_Reset (DShowEnumMediaTypes *)
 
long WINAPI ff_dshow_enummediatypes_Clone (DShowEnumMediaTypes *, DShowEnumMediaTypes **)
 
void ff_dshow_enummediatypes_Destroy (DShowEnumMediaTypes *)
 
DShowEnumMediaTypesff_dshow_enummediatypes_Create (const AM_MEDIA_TYPE *type)
 
long WINAPI ff_dshow_filter_QueryInterface (DShowFilter *, const GUID *, void **)
 
unsigned long WINAPI ff_dshow_filter_AddRef (DShowFilter *)
 
unsigned long WINAPI ff_dshow_filter_Release (DShowFilter *)
 
long WINAPI ff_dshow_filter_GetClassID (DShowFilter *, CLSID *)
 
long WINAPI ff_dshow_filter_Stop (DShowFilter *)
 
long WINAPI ff_dshow_filter_Pause (DShowFilter *)
 
long WINAPI ff_dshow_filter_Run (DShowFilter *, REFERENCE_TIME)
 
long WINAPI ff_dshow_filter_GetState (DShowFilter *, DWORD, FILTER_STATE *)
 
long WINAPI ff_dshow_filter_SetSyncSource (DShowFilter *, IReferenceClock *)
 
long WINAPI ff_dshow_filter_GetSyncSource (DShowFilter *, IReferenceClock **)
 
long WINAPI ff_dshow_filter_EnumPins (DShowFilter *, IEnumPins **)
 
long WINAPI ff_dshow_filter_FindPin (DShowFilter *, const wchar_t *, IPin **)
 
long WINAPI ff_dshow_filter_QueryFilterInfo (DShowFilter *, FILTER_INFO *)
 
long WINAPI ff_dshow_filter_JoinFilterGraph (DShowFilter *, IFilterGraph *, const wchar_t *)
 
long WINAPI ff_dshow_filter_QueryVendorInfo (DShowFilter *, wchar_t **)
 
void ff_dshow_filter_Destroy (DShowFilter *)
 
DShowFilterff_dshow_filter_Create (void *, void *, enum dshowDeviceType)
 
HRESULT ff_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.
 
void ff_dshow_show_filter_properties (IBaseFilter *pFilter, AVFormatContext *avctx)
 Pops up a user dialog allowing them to adjust properties for the given filter, if possible.
 

Variables

const AVClassff_dshow_context_class_ptr
 

Macro Definition Documentation

◆ DSHOWDEBUG

#define DSHOWDEBUG   0

Definition at line 25 of file dshow_capture.h.

◆ COBJMACROS

#define COBJMACROS

Definition at line 29 of file dshow_capture.h.

◆ NO_DSHOW_STRSAFE

#define NO_DSHOW_STRSAFE

Definition at line 31 of file dshow_capture.h.

◆ EC_DEVICE_LOST

#define EC_DEVICE_LOST   0x1f

Definition at line 40 of file dshow_capture.h.

Referenced by dshow_check_event_queue().

◆ dshowdebug

#define dshowdebug ( ...)
Value:
const AVClass * ff_dshow_context_class_ptr
#define ff_dlog(a,...)

Definition at line 50 of file dshow_capture.h.

Referenced by ff_dshow_enummediatypes_Clone(), ff_dshow_enummediatypes_Reset(), ff_dshow_enummediatypes_Skip(), ff_dshow_enumpins_Clone(), ff_dshow_enumpins_Reset(), ff_dshow_enumpins_Skip(), ff_dshow_filter_EnumPins(), ff_dshow_filter_FindPin(), ff_dshow_filter_GetState(), ff_dshow_filter_GetSyncSource(), ff_dshow_filter_JoinFilterGraph(), ff_dshow_filter_Pause(), ff_dshow_filter_QueryFilterInfo(), ff_dshow_filter_QueryVendorInfo(), ff_dshow_filter_Run(), ff_dshow_filter_SetSyncSource(), ff_dshow_filter_Stop(), ff_dshow_meminputpin_AddRef(), ff_dshow_meminputpin_Destroy(), ff_dshow_meminputpin_GetAllocator(), ff_dshow_meminputpin_GetAllocatorRequirements(), ff_dshow_meminputpin_NotifyAllocator(), ff_dshow_meminputpin_QueryInterface(), ff_dshow_meminputpin_Receive(), ff_dshow_meminputpin_ReceiveCanBlock(), ff_dshow_meminputpin_ReceiveMultiple(), ff_dshow_meminputpin_Release(), ff_dshow_pin_BeginFlush(), ff_dshow_pin_ConnectedTo(), ff_dshow_pin_ConnectionMediaType(), ff_dshow_pin_Disconnect(), ff_dshow_pin_EndFlush(), ff_dshow_pin_EndOfStream(), ff_dshow_pin_EnumMediaTypes(), ff_dshow_pin_NewSegment(), ff_dshow_pin_QueryAccept(), ff_dshow_pin_QueryDirection(), ff_dshow_pin_QueryId(), ff_dshow_pin_QueryInternalConnections(), ff_dshow_pin_QueryPinInfo(), ff_dshow_pin_ReceiveConnection(), ff_print_AM_MEDIA_TYPE(), ff_print_AUDIO_STREAM_CONFIG_CAPS(), ff_print_VIDEO_STREAM_CONFIG_CAPS(), and ff_printGUID().

◆ DECLARE_QUERYINTERFACE

#define DECLARE_QUERYINTERFACE ( prefix,
class,
... )
Value:
long WINAPI \
ff_dshow_##prefix##_QueryInterface(class *this, const GUID *riid, void **ppvObject) \
{ \
struct GUIDoffset ifaces[] = __VA_ARGS__; \
int i; \
dshowdebug("ff_dshow_"AV_STRINGIFY(prefix)"_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); \
ff_dshow_##prefix##_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; \
}
#define i(width, name, range_min, range_max)
Definition cbs_h264.c:63
#define NULL
Definition coverity.c:32
#define AV_STRINGIFY(s)
Definition macros.h:66
unsigned offset
Definition libaomenc.c:763
char prefix[8]

Definition at line 71 of file dshow_capture.h.

◆ DECLARE_ADDREF

#define DECLARE_ADDREF ( prefix,
class )
Value:
unsigned long WINAPI \
ff_dshow_##prefix##_AddRef(class *this) \
{ \
dshowdebug("ff_dshow_"AV_STRINGIFY(prefix)"_AddRef(%p)\t%ld\n", this, this->ref+1); \
return InterlockedIncrement(&this->ref); \
}
static int ref[MAX_W *MAX_W]

Definition at line 94 of file dshow_capture.h.

◆ DECLARE_RELEASE

#define DECLARE_RELEASE ( prefix,
class )
Value:
unsigned long WINAPI \
ff_dshow_##prefix##_Release(class *this) \
{ \
long ref = InterlockedDecrement(&this->ref); \
dshowdebug("ff_dshow_"AV_STRINGIFY(prefix)"_Release(%p)\t%ld\n", this, ref); \
if (!ref) \
ff_dshow_##prefix##_Destroy(this); \
return ref; \
}

Definition at line 101 of file dshow_capture.h.

◆ DECLARE_DESTROY

#define DECLARE_DESTROY ( prefix,
class,
func )
Value:
void ff_dshow_##prefix##_Destroy(class *this) \
{ \
dshowdebug("ff_dshow_"AV_STRINGIFY(prefix)"_Destroy(%p)\n", this); \
func(this); \
if (this) { \
if (this->vtbl) \
CoTaskMemFree(this->vtbl); \
CoTaskMemFree(this); \
} \
}

Definition at line 112 of file dshow_capture.h.

◆ DECLARE_CREATE

#define DECLARE_CREATE ( prefix,
class,
setup,
... )
Value:
class *ff_dshow_##prefix##_Create(__VA_ARGS__) \
{ \
class *this = CoTaskMemAlloc(sizeof(class)); \
dshowdebug("ff_dshow_"AV_STRINGIFY(prefix)"_Create(%p)\n", this); \
if (!this) \
goto fail; \
ZeroMemory(this, sizeof(class)); \
this->vtbl = CoTaskMemAlloc(sizeof(*this->vtbl)); \
if (!this->vtbl) \
goto fail; \
ZeroMemory(this->vtbl, sizeof(*this->vtbl)); \
this->ref = 1; \
if (!setup) \
goto fail; \
dshowdebug("created ff_dshow_"AV_STRINGIFY(prefix)" %p\n", this); \
return this; \
fail: \
ff_dshow_##prefix##_Destroy(this); \
dshowdebug("could not create ff_dshow_"AV_STRINGIFY(prefix)"\n"); \
return NULL; \
}
#define fail
Definition test.h:479

Definition at line 123 of file dshow_capture.h.

◆ SETVTBL

#define SETVTBL ( vtbl,
prefix,
fn )
Value:
do { (vtbl)->fn = (void *) ff_dshow_##prefix##_##fn; } while(0)
#define fn(a)
#define _

Definition at line 146 of file dshow_capture.h.

Referenced by ff_dshow_enummediatypes_Setup(), ff_dshow_enumpins_Setup(), ff_dshow_filter_Setup(), and ff_dshow_pin_Setup().

Typedef Documentation

◆ DShowMemInputPin

Definition at line 153 of file dshow_capture.h.

Enumeration Type Documentation

◆ dshowDeviceType

Enumerator
VideoDevice 
AudioDevice 

Definition at line 61 of file dshow_capture.h.

◆ dshowSourceFilterType

Enumerator
VideoSourceDevice 
AudioSourceDevice 

Definition at line 66 of file dshow_capture.h.

Function Documentation

◆ ff_copy_dshow_media_type()

long ff_copy_dshow_media_type ( AM_MEDIA_TYPE * dst,
const AM_MEDIA_TYPE * src )

◆ ff_print_VIDEO_STREAM_CONFIG_CAPS()

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().

◆ ff_print_AUDIO_STREAM_CONFIG_CAPS()

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().

◆ ff_print_AM_MEDIA_TYPE()

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 ff_dshow_pin_ReceiveConnection().

◆ ff_printGUID()

void ff_printGUID ( const GUID * g)

◆ nothing()

static void nothing ( void * foo)
inlinestatic

Definition at line 52 of file dshow_capture.h.

◆ ff_dshow_pin_QueryInterface()

long WINAPI ff_dshow_pin_QueryInterface ( DShowPin * ,
const GUID * ,
void **  )

◆ ff_dshow_pin_AddRef()

unsigned long WINAPI ff_dshow_pin_AddRef ( DShowPin * )

◆ ff_dshow_pin_Release()

unsigned long WINAPI ff_dshow_pin_Release ( DShowPin * )

◆ ff_dshow_pin_Connect()

long WINAPI ff_dshow_pin_Connect ( DShowPin * ,
IPin * ,
const AM_MEDIA_TYPE *  )

◆ ff_dshow_pin_ReceiveConnection()

long WINAPI ff_dshow_pin_ReceiveConnection ( DShowPin * this,
IPin * pin,
const AM_MEDIA_TYPE * type )

Definition at line 39 of file dshow_pin.c.

◆ ff_dshow_pin_Disconnect()

long WINAPI ff_dshow_pin_Disconnect ( DShowPin * this)

Definition at line 66 of file dshow_pin.c.

◆ ff_dshow_pin_ConnectedTo()

long WINAPI ff_dshow_pin_ConnectedTo ( DShowPin * this,
IPin ** pin )

Definition at line 79 of file dshow_pin.c.

◆ ff_dshow_pin_ConnectionMediaType()

long WINAPI ff_dshow_pin_ConnectionMediaType ( DShowPin * this,
AM_MEDIA_TYPE * type )

Definition at line 92 of file dshow_pin.c.

Referenced by dshow_add_device().

◆ ff_dshow_pin_QueryPinInfo()

long WINAPI ff_dshow_pin_QueryPinInfo ( DShowPin * this,
PIN_INFO * info )

Definition at line 103 of file dshow_pin.c.

◆ ff_dshow_pin_QueryDirection()

long WINAPI ff_dshow_pin_QueryDirection ( DShowPin * this,
PIN_DIRECTION * dir )

Definition at line 119 of file dshow_pin.c.

◆ ff_dshow_pin_QueryId()

long WINAPI ff_dshow_pin_QueryId ( DShowPin * this,
wchar_t ** id )

Definition at line 127 of file dshow_pin.c.

◆ ff_dshow_pin_QueryAccept()

long WINAPI ff_dshow_pin_QueryAccept ( DShowPin * this,
const AM_MEDIA_TYPE * type )

Definition at line 138 of file dshow_pin.c.

◆ ff_dshow_pin_EnumMediaTypes()

long WINAPI ff_dshow_pin_EnumMediaTypes ( DShowPin * this,
IEnumMediaTypes ** enumtypes )

Definition at line 143 of file dshow_pin.c.

◆ ff_dshow_pin_QueryInternalConnections()

long WINAPI ff_dshow_pin_QueryInternalConnections ( DShowPin * this,
IPin ** pin,
unsigned long * npin )

Definition at line 158 of file dshow_pin.c.

◆ ff_dshow_pin_EndOfStream()

long WINAPI ff_dshow_pin_EndOfStream ( DShowPin * this)

Definition at line 164 of file dshow_pin.c.

◆ ff_dshow_pin_BeginFlush()

long WINAPI ff_dshow_pin_BeginFlush ( DShowPin * this)

Definition at line 170 of file dshow_pin.c.

◆ ff_dshow_pin_EndFlush()

long WINAPI ff_dshow_pin_EndFlush ( DShowPin * this)

Definition at line 176 of file dshow_pin.c.

◆ ff_dshow_pin_NewSegment()

long WINAPI ff_dshow_pin_NewSegment ( DShowPin * this,
REFERENCE_TIME start,
REFERENCE_TIME stop,
double rate )

Definition at line 182 of file dshow_pin.c.

◆ ff_dshow_meminputpin_QueryInterface()

long WINAPI ff_dshow_meminputpin_QueryInterface ( DShowMemInputPin * this,
const GUID * riid,
void ** ppvObject )

Definition at line 254 of file dshow_pin.c.

Referenced by ff_dshow_meminputpin_QueryInterface().

◆ ff_dshow_meminputpin_AddRef()

unsigned long WINAPI ff_dshow_meminputpin_AddRef ( DShowMemInputPin * this)

Definition at line 261 of file dshow_pin.c.

◆ ff_dshow_meminputpin_Release()

unsigned long WINAPI ff_dshow_meminputpin_Release ( DShowMemInputPin * this)

Definition at line 267 of file dshow_pin.c.

◆ ff_dshow_meminputpin_GetAllocator()

long WINAPI ff_dshow_meminputpin_GetAllocator ( DShowMemInputPin * this,
IMemAllocator ** alloc )

Definition at line 273 of file dshow_pin.c.

◆ ff_dshow_meminputpin_NotifyAllocator()

long WINAPI ff_dshow_meminputpin_NotifyAllocator ( DShowMemInputPin * this,
IMemAllocator * alloc,
BOOL rdwr )

Definition at line 278 of file dshow_pin.c.

◆ ff_dshow_meminputpin_GetAllocatorRequirements()

long WINAPI ff_dshow_meminputpin_GetAllocatorRequirements ( DShowMemInputPin * this,
ALLOCATOR_PROPERTIES * props )

Definition at line 284 of file dshow_pin.c.

◆ ff_dshow_meminputpin_Receive()

long WINAPI ff_dshow_meminputpin_Receive ( DShowMemInputPin * this,
IMediaSample * sample )

Definition at line 290 of file dshow_pin.c.

Referenced by ff_dshow_meminputpin_ReceiveMultiple().

◆ ff_dshow_meminputpin_ReceiveMultiple()

long WINAPI ff_dshow_meminputpin_ReceiveMultiple ( DShowMemInputPin * this,
IMediaSample ** samples,
long n,
long * nproc )

Definition at line 358 of file dshow_pin.c.

◆ ff_dshow_meminputpin_ReceiveCanBlock()

long WINAPI ff_dshow_meminputpin_ReceiveCanBlock ( DShowMemInputPin * this)

Definition at line 370 of file dshow_pin.c.

◆ ff_dshow_pin_Destroy()

void ff_dshow_pin_Destroy ( DShowPin * )

◆ ff_dshow_pin_Create()

DShowPin * ff_dshow_pin_Create ( DShowFilter * filter)

Referenced by ff_dshow_filter_Setup().

◆ ff_dshow_meminputpin_Destroy()

void ff_dshow_meminputpin_Destroy ( DShowMemInputPin * this)

Definition at line 377 of file dshow_pin.c.

◆ ff_dshow_enumpins_QueryInterface()

long WINAPI ff_dshow_enumpins_QueryInterface ( DShowEnumPins * ,
const GUID * ,
void **  )

◆ ff_dshow_enumpins_AddRef()

unsigned long WINAPI ff_dshow_enumpins_AddRef ( DShowEnumPins * )

◆ ff_dshow_enumpins_Release()

unsigned long WINAPI ff_dshow_enumpins_Release ( DShowEnumPins * )

◆ ff_dshow_enumpins_Next()

long WINAPI ff_dshow_enumpins_Next ( DShowEnumPins * ,
unsigned long ,
IPin ** ,
unsigned long *  )

◆ ff_dshow_enumpins_Skip()

long WINAPI ff_dshow_enumpins_Skip ( DShowEnumPins * this,
unsigned long n )

Definition at line 48 of file dshow_enumpins.c.

◆ ff_dshow_enumpins_Reset()

long WINAPI ff_dshow_enumpins_Reset ( DShowEnumPins * this)

Definition at line 55 of file dshow_enumpins.c.

◆ ff_dshow_enumpins_Clone()

long WINAPI ff_dshow_enumpins_Clone ( DShowEnumPins * this,
DShowEnumPins ** pins )

Definition at line 61 of file dshow_enumpins.c.

◆ ff_dshow_enumpins_Destroy()

void ff_dshow_enumpins_Destroy ( DShowEnumPins * )

◆ ff_dshow_enumpins_Create()

DShowEnumPins * ff_dshow_enumpins_Create ( DShowPin * pin,
DShowFilter * filter )

◆ ff_dshow_enummediatypes_QueryInterface()

long WINAPI ff_dshow_enummediatypes_QueryInterface ( DShowEnumMediaTypes * ,
const GUID * ,
void **  )

◆ ff_dshow_enummediatypes_AddRef()

unsigned long WINAPI ff_dshow_enummediatypes_AddRef ( DShowEnumMediaTypes * )

◆ ff_dshow_enummediatypes_Release()

unsigned long WINAPI ff_dshow_enummediatypes_Release ( DShowEnumMediaTypes * )

◆ ff_dshow_enummediatypes_Next()

long WINAPI ff_dshow_enummediatypes_Next ( DShowEnumMediaTypes * ,
unsigned long ,
AM_MEDIA_TYPE ** ,
unsigned long *  )

◆ ff_dshow_enummediatypes_Skip()

long WINAPI ff_dshow_enummediatypes_Skip ( DShowEnumMediaTypes * this,
unsigned long n )

Definition at line 54 of file dshow_enummediatypes.c.

◆ ff_dshow_enummediatypes_Reset()

long WINAPI ff_dshow_enummediatypes_Reset ( DShowEnumMediaTypes * this)

Definition at line 61 of file dshow_enummediatypes.c.

◆ ff_dshow_enummediatypes_Clone()

long WINAPI ff_dshow_enummediatypes_Clone ( DShowEnumMediaTypes * this,
DShowEnumMediaTypes ** enums )

Definition at line 67 of file dshow_enummediatypes.c.

◆ ff_dshow_enummediatypes_Destroy()

void ff_dshow_enummediatypes_Destroy ( DShowEnumMediaTypes * )

◆ ff_dshow_enummediatypes_Create()

DShowEnumMediaTypes * ff_dshow_enummediatypes_Create ( const AM_MEDIA_TYPE * type)

◆ ff_dshow_filter_QueryInterface()

long WINAPI ff_dshow_filter_QueryInterface ( DShowFilter * ,
const GUID * ,
void **  )

◆ ff_dshow_filter_AddRef()

unsigned long WINAPI ff_dshow_filter_AddRef ( DShowFilter * )

◆ ff_dshow_filter_Release()

unsigned long WINAPI ff_dshow_filter_Release ( DShowFilter * )

◆ ff_dshow_filter_GetClassID()

long WINAPI ff_dshow_filter_GetClassID ( DShowFilter * ,
CLSID *  )

◆ ff_dshow_filter_Stop()

long WINAPI ff_dshow_filter_Stop ( DShowFilter * this)

Definition at line 35 of file dshow_filter.c.

◆ ff_dshow_filter_Pause()

long WINAPI ff_dshow_filter_Pause ( DShowFilter * this)

Definition at line 41 of file dshow_filter.c.

◆ ff_dshow_filter_Run()

long WINAPI ff_dshow_filter_Run ( DShowFilter * this,
REFERENCE_TIME start )

Definition at line 47 of file dshow_filter.c.

◆ ff_dshow_filter_GetState()

long WINAPI ff_dshow_filter_GetState ( DShowFilter * this,
DWORD ms,
FILTER_STATE * state )

Definition at line 54 of file dshow_filter.c.

◆ ff_dshow_filter_SetSyncSource()

long WINAPI ff_dshow_filter_SetSyncSource ( DShowFilter * this,
IReferenceClock * clock )

Definition at line 62 of file dshow_filter.c.

◆ ff_dshow_filter_GetSyncSource()

long WINAPI ff_dshow_filter_GetSyncSource ( DShowFilter * this,
IReferenceClock ** clock )

Definition at line 76 of file dshow_filter.c.

◆ ff_dshow_filter_EnumPins()

long WINAPI ff_dshow_filter_EnumPins ( DShowFilter * this,
IEnumPins ** enumpin )

Definition at line 88 of file dshow_filter.c.

◆ ff_dshow_filter_FindPin()

long WINAPI ff_dshow_filter_FindPin ( DShowFilter * this,
const wchar_t * id,
IPin ** pin )

Definition at line 102 of file dshow_filter.c.

◆ ff_dshow_filter_QueryFilterInfo()

long WINAPI ff_dshow_filter_QueryFilterInfo ( DShowFilter * this,
FILTER_INFO * info )

Definition at line 119 of file dshow_filter.c.

◆ ff_dshow_filter_JoinFilterGraph()

long WINAPI ff_dshow_filter_JoinFilterGraph ( DShowFilter * this,
IFilterGraph * graph,
const wchar_t * name )

Definition at line 131 of file dshow_filter.c.

◆ ff_dshow_filter_QueryVendorInfo()

long WINAPI ff_dshow_filter_QueryVendorInfo ( DShowFilter * this,
wchar_t ** info )

Definition at line 142 of file dshow_filter.c.

◆ ff_dshow_filter_Destroy()

void ff_dshow_filter_Destroy ( DShowFilter * )

◆ ff_dshow_filter_Create()

DShowFilter * ff_dshow_filter_Create ( void * ,
void * ,
enum dshowDeviceType )

Referenced by dshow_open_device().

◆ ff_dshow_try_setup_crossbar_options()

HRESULT ff_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().

◆ ff_dshow_show_filter_properties()

void ff_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 1123 of file dshow.c.

Referenced by dshow_cycle_pins(), and ff_dshow_try_setup_crossbar_options().

Variable Documentation

◆ ff_dshow_context_class_ptr

const AVClass* ff_dshow_context_class_ptr
extern

Definition at line 60 of file dshow_common.c.