FFmpeg
Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
dshow_capture.h File Reference
#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 }
 

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 libAVPin_QueryInterface (libAVPin *, const GUID *, void **)
 
unsigned long WINAPI libAVPin_AddRef (libAVPin *)
 
unsigned long WINAPI libAVPin_Release (libAVPin *)
 
long WINAPI libAVPin_Connect (libAVPin *, IPin *, const AM_MEDIA_TYPE *)
 
long WINAPI libAVPin_ReceiveConnection (libAVPin *, IPin *, const AM_MEDIA_TYPE *)
 
long WINAPI libAVPin_Disconnect (libAVPin *)
 
long WINAPI libAVPin_ConnectedTo (libAVPin *, IPin **)
 
long WINAPI libAVPin_ConnectionMediaType (libAVPin *, AM_MEDIA_TYPE *)
 
long WINAPI libAVPin_QueryPinInfo (libAVPin *, PIN_INFO *)
 
long WINAPI libAVPin_QueryDirection (libAVPin *, PIN_DIRECTION *)
 
long WINAPI libAVPin_QueryId (libAVPin *, wchar_t **)
 
long WINAPI libAVPin_QueryAccept (libAVPin *, const AM_MEDIA_TYPE *)
 
long WINAPI libAVPin_EnumMediaTypes (libAVPin *, IEnumMediaTypes **)
 
long WINAPI libAVPin_QueryInternalConnections (libAVPin *, IPin **, unsigned long *)
 
long WINAPI libAVPin_EndOfStream (libAVPin *)
 
long WINAPI libAVPin_BeginFlush (libAVPin *)
 
long WINAPI libAVPin_EndFlush (libAVPin *)
 
long WINAPI libAVPin_NewSegment (libAVPin *, REFERENCE_TIME, REFERENCE_TIME, double)
 
long WINAPI libAVMemInputPin_QueryInterface (libAVMemInputPin *, const GUID *, void **)
 
unsigned long WINAPI libAVMemInputPin_AddRef (libAVMemInputPin *)
 
unsigned long WINAPI libAVMemInputPin_Release (libAVMemInputPin *)
 
long WINAPI libAVMemInputPin_GetAllocator (libAVMemInputPin *, IMemAllocator **)
 
long WINAPI libAVMemInputPin_NotifyAllocator (libAVMemInputPin *, IMemAllocator *, BOOL)
 
long WINAPI libAVMemInputPin_GetAllocatorRequirements (libAVMemInputPin *, ALLOCATOR_PROPERTIES *)
 
long WINAPI libAVMemInputPin_Receive (libAVMemInputPin *, IMediaSample *)
 
long WINAPI libAVMemInputPin_ReceiveMultiple (libAVMemInputPin *, IMediaSample **, long, long *)
 
long WINAPI libAVMemInputPin_ReceiveCanBlock (libAVMemInputPin *)
 
void libAVPin_Destroy (libAVPin *)
 
libAVPinlibAVPin_Create (libAVFilter *filter)
 
void libAVMemInputPin_Destroy (libAVMemInputPin *)
 
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 *)
 
long WINAPI libAVEnumPins_Skip (libAVEnumPins *, unsigned long)
 
long WINAPI libAVEnumPins_Reset (libAVEnumPins *)
 
long WINAPI libAVEnumPins_Clone (libAVEnumPins *, libAVEnumPins **)
 
void libAVEnumPins_Destroy (libAVEnumPins *)
 
libAVEnumPinslibAVEnumPins_Create (libAVPin *pin, libAVFilter *filter)
 
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 *)
 
long WINAPI libAVEnumMediaTypes_Skip (libAVEnumMediaTypes *, unsigned long)
 
long WINAPI libAVEnumMediaTypes_Reset (libAVEnumMediaTypes *)
 
long WINAPI libAVEnumMediaTypes_Clone (libAVEnumMediaTypes *, libAVEnumMediaTypes **)
 
void libAVEnumMediaTypes_Destroy (libAVEnumMediaTypes *)
 
libAVEnumMediaTypeslibAVEnumMediaTypes_Create (const AM_MEDIA_TYPE *type)
 
long WINAPI libAVFilter_QueryInterface (libAVFilter *, const GUID *, void **)
 
unsigned long WINAPI libAVFilter_AddRef (libAVFilter *)
 
unsigned long WINAPI libAVFilter_Release (libAVFilter *)
 
long WINAPI libAVFilter_GetClassID (libAVFilter *, CLSID *)
 
long WINAPI libAVFilter_Stop (libAVFilter *)
 
long WINAPI libAVFilter_Pause (libAVFilter *)
 
long WINAPI libAVFilter_Run (libAVFilter *, REFERENCE_TIME)
 
long WINAPI libAVFilter_GetState (libAVFilter *, DWORD, FILTER_STATE *)
 
long WINAPI libAVFilter_SetSyncSource (libAVFilter *, IReferenceClock *)
 
long WINAPI libAVFilter_GetSyncSource (libAVFilter *, IReferenceClock **)
 
long WINAPI libAVFilter_EnumPins (libAVFilter *, IEnumPins **)
 
long WINAPI libAVFilter_FindPin (libAVFilter *, const wchar_t *, IPin **)
 
long WINAPI libAVFilter_QueryFilterInfo (libAVFilter *, FILTER_INFO *)
 
long WINAPI libAVFilter_JoinFilterGraph (libAVFilter *, IFilterGraph *, const wchar_t *)
 
long WINAPI libAVFilter_QueryVendorInfo (libAVFilter *, wchar_t **)
 
void libAVFilter_Destroy (libAVFilter *)
 
libAVFilterlibAVFilter_Create (void *, void *, enum dshowDeviceType)
 
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. More...
 
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. More...
 

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.

◆ WIN32_LEAN_AND_MEAN

#define WIN32_LEAN_AND_MEAN

Definition at line 30 of file dshow_capture.h.

◆ NO_DSHOW_STRSAFE

#define NO_DSHOW_STRSAFE

Definition at line 32 of file dshow_capture.h.

◆ EC_DEVICE_LOST

#define EC_DEVICE_LOST   0x1f

Definition at line 40 of file dshow_capture.h.

◆ dshowdebug

#define dshowdebug (   ...)    ff_dlog(&ff_dshow_context_class_ptr, __VA_ARGS__)

Definition at line 50 of file dshow_capture.h.

◆ DECLARE_QUERYINTERFACE

#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 71 of file dshow_capture.h.

◆ DECLARE_ADDREF

#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 94 of file dshow_capture.h.

◆ DECLARE_RELEASE

#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 101 of file dshow_capture.h.

◆ DECLARE_DESTROY

#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 112 of file dshow_capture.h.

◆ DECLARE_CREATE

#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 123 of file dshow_capture.h.

◆ SETVTBL

#define SETVTBL (   vtbl,
  class,
  fn 
)    do { (vtbl)->fn = (void *) class##_##fn; } while(0)

Definition at line 145 of file dshow_capture.h.

Typedef Documentation

◆ libAVMemInputPin

Definition at line 152 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 libAVPin_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.

◆ libAVPin_QueryInterface()

long WINAPI libAVPin_QueryInterface ( libAVPin ,
const GUID *  ,
void **   
)

◆ libAVPin_AddRef()

unsigned long WINAPI libAVPin_AddRef ( libAVPin )

◆ libAVPin_Release()

unsigned long WINAPI libAVPin_Release ( libAVPin )

◆ libAVPin_Connect()

long WINAPI libAVPin_Connect ( libAVPin ,
IPin *  ,
const AM_MEDIA_TYPE *   
)

◆ libAVPin_ReceiveConnection()

long WINAPI libAVPin_ReceiveConnection ( libAVPin ,
IPin *  ,
const AM_MEDIA_TYPE *   
)

Definition at line 40 of file dshow_pin.c.

◆ libAVPin_Disconnect()

long WINAPI libAVPin_Disconnect ( libAVPin )

Definition at line 68 of file dshow_pin.c.

◆ libAVPin_ConnectedTo()

long WINAPI libAVPin_ConnectedTo ( libAVPin ,
IPin **   
)

Definition at line 82 of file dshow_pin.c.

◆ libAVPin_ConnectionMediaType()

long WINAPI libAVPin_ConnectionMediaType ( libAVPin ,
AM_MEDIA_TYPE *   
)

Definition at line 96 of file dshow_pin.c.

Referenced by dshow_add_device().

◆ libAVPin_QueryPinInfo()

long WINAPI libAVPin_QueryPinInfo ( libAVPin ,
PIN_INFO *   
)

Definition at line 108 of file dshow_pin.c.

◆ libAVPin_QueryDirection()

long WINAPI libAVPin_QueryDirection ( libAVPin ,
PIN_DIRECTION *   
)

Definition at line 125 of file dshow_pin.c.

◆ libAVPin_QueryId()

long WINAPI libAVPin_QueryId ( libAVPin ,
wchar_t **   
)

Definition at line 134 of file dshow_pin.c.

◆ libAVPin_QueryAccept()

long WINAPI libAVPin_QueryAccept ( libAVPin ,
const AM_MEDIA_TYPE *   
)

Definition at line 146 of file dshow_pin.c.

◆ libAVPin_EnumMediaTypes()

long WINAPI libAVPin_EnumMediaTypes ( libAVPin ,
IEnumMediaTypes **   
)

Definition at line 152 of file dshow_pin.c.

◆ libAVPin_QueryInternalConnections()

long WINAPI libAVPin_QueryInternalConnections ( libAVPin ,
IPin **  ,
unsigned long *   
)

Definition at line 168 of file dshow_pin.c.

◆ libAVPin_EndOfStream()

long WINAPI libAVPin_EndOfStream ( libAVPin )

Definition at line 175 of file dshow_pin.c.

◆ libAVPin_BeginFlush()

long WINAPI libAVPin_BeginFlush ( libAVPin )

Definition at line 182 of file dshow_pin.c.

◆ libAVPin_EndFlush()

long WINAPI libAVPin_EndFlush ( libAVPin )

Definition at line 189 of file dshow_pin.c.

◆ libAVPin_NewSegment()

long WINAPI libAVPin_NewSegment ( libAVPin ,
REFERENCE_TIME  ,
REFERENCE_TIME  ,
double   
)

Definition at line 196 of file dshow_pin.c.

◆ libAVMemInputPin_QueryInterface()

long WINAPI libAVMemInputPin_QueryInterface ( libAVMemInputPin ,
const GUID *  ,
void **   
)

Definition at line 271 of file dshow_pin.c.

◆ libAVMemInputPin_AddRef()

unsigned long WINAPI libAVMemInputPin_AddRef ( libAVMemInputPin )

Definition at line 279 of file dshow_pin.c.

◆ libAVMemInputPin_Release()

unsigned long WINAPI libAVMemInputPin_Release ( libAVMemInputPin )

Definition at line 286 of file dshow_pin.c.

◆ libAVMemInputPin_GetAllocator()

long WINAPI libAVMemInputPin_GetAllocator ( libAVMemInputPin ,
IMemAllocator **   
)

Definition at line 293 of file dshow_pin.c.

◆ libAVMemInputPin_NotifyAllocator()

long WINAPI libAVMemInputPin_NotifyAllocator ( libAVMemInputPin ,
IMemAllocator *  ,
BOOL   
)

Definition at line 299 of file dshow_pin.c.

◆ libAVMemInputPin_GetAllocatorRequirements()

long WINAPI libAVMemInputPin_GetAllocatorRequirements ( libAVMemInputPin ,
ALLOCATOR_PROPERTIES *   
)

Definition at line 306 of file dshow_pin.c.

◆ libAVMemInputPin_Receive()

long WINAPI libAVMemInputPin_Receive ( libAVMemInputPin ,
IMediaSample *   
)

Definition at line 313 of file dshow_pin.c.

Referenced by libAVMemInputPin_ReceiveMultiple().

◆ libAVMemInputPin_ReceiveMultiple()

long WINAPI libAVMemInputPin_ReceiveMultiple ( libAVMemInputPin ,
IMediaSample **  ,
long  ,
long *   
)

Definition at line 370 of file dshow_pin.c.

◆ libAVMemInputPin_ReceiveCanBlock()

long WINAPI libAVMemInputPin_ReceiveCanBlock ( libAVMemInputPin )

Definition at line 383 of file dshow_pin.c.

◆ libAVPin_Destroy()

void libAVPin_Destroy ( libAVPin )

◆ libAVPin_Create()

libAVPin* libAVPin_Create ( libAVFilter filter)

Referenced by libAVFilter_Setup().

◆ libAVMemInputPin_Destroy()

void libAVMemInputPin_Destroy ( libAVMemInputPin )

Definition at line 391 of file dshow_pin.c.

◆ libAVEnumPins_QueryInterface()

long WINAPI libAVEnumPins_QueryInterface ( libAVEnumPins ,
const GUID *  ,
void **   
)

◆ libAVEnumPins_AddRef()

unsigned long WINAPI libAVEnumPins_AddRef ( libAVEnumPins )

◆ libAVEnumPins_Release()

unsigned long WINAPI libAVEnumPins_Release ( libAVEnumPins )

◆ libAVEnumPins_Next()

long WINAPI libAVEnumPins_Next ( libAVEnumPins ,
unsigned long  ,
IPin **  ,
unsigned long *   
)

◆ libAVEnumPins_Skip()

long WINAPI libAVEnumPins_Skip ( libAVEnumPins ,
unsigned long   
)

Definition at line 50 of file dshow_enumpins.c.

◆ libAVEnumPins_Reset()

long WINAPI libAVEnumPins_Reset ( libAVEnumPins )

Definition at line 58 of file dshow_enumpins.c.

◆ libAVEnumPins_Clone()

long WINAPI libAVEnumPins_Clone ( libAVEnumPins ,
libAVEnumPins **   
)

Definition at line 65 of file dshow_enumpins.c.

◆ libAVEnumPins_Destroy()

void libAVEnumPins_Destroy ( libAVEnumPins )

◆ libAVEnumPins_Create()

libAVEnumPins* libAVEnumPins_Create ( libAVPin pin,
libAVFilter filter 
)

◆ libAVEnumMediaTypes_QueryInterface()

long WINAPI libAVEnumMediaTypes_QueryInterface ( libAVEnumMediaTypes ,
const GUID *  ,
void **   
)

◆ libAVEnumMediaTypes_AddRef()

unsigned long WINAPI libAVEnumMediaTypes_AddRef ( libAVEnumMediaTypes )

◆ libAVEnumMediaTypes_Release()

unsigned long WINAPI libAVEnumMediaTypes_Release ( libAVEnumMediaTypes )

◆ libAVEnumMediaTypes_Next()

long WINAPI libAVEnumMediaTypes_Next ( libAVEnumMediaTypes ,
unsigned long  ,
AM_MEDIA_TYPE **  ,
unsigned long *   
)

◆ libAVEnumMediaTypes_Skip()

long WINAPI libAVEnumMediaTypes_Skip ( libAVEnumMediaTypes ,
unsigned long   
)

Definition at line 55 of file dshow_enummediatypes.c.

◆ libAVEnumMediaTypes_Reset()

long WINAPI libAVEnumMediaTypes_Reset ( libAVEnumMediaTypes )

Definition at line 63 of file dshow_enummediatypes.c.

◆ libAVEnumMediaTypes_Clone()

long WINAPI libAVEnumMediaTypes_Clone ( libAVEnumMediaTypes ,
libAVEnumMediaTypes **   
)

Definition at line 70 of file dshow_enummediatypes.c.

◆ libAVEnumMediaTypes_Destroy()

void libAVEnumMediaTypes_Destroy ( libAVEnumMediaTypes )

◆ libAVEnumMediaTypes_Create()

libAVEnumMediaTypes* libAVEnumMediaTypes_Create ( const AM_MEDIA_TYPE *  type)

◆ libAVFilter_QueryInterface()

long WINAPI libAVFilter_QueryInterface ( libAVFilter ,
const GUID *  ,
void **   
)

◆ libAVFilter_AddRef()

unsigned long WINAPI libAVFilter_AddRef ( libAVFilter )

◆ libAVFilter_Release()

unsigned long WINAPI libAVFilter_Release ( libAVFilter )

◆ libAVFilter_GetClassID()

long WINAPI libAVFilter_GetClassID ( libAVFilter ,
CLSID  
)

◆ libAVFilter_Stop()

long WINAPI libAVFilter_Stop ( libAVFilter )

Definition at line 37 of file dshow_filter.c.

◆ libAVFilter_Pause()

long WINAPI libAVFilter_Pause ( libAVFilter )

Definition at line 44 of file dshow_filter.c.

◆ libAVFilter_Run()

long WINAPI libAVFilter_Run ( libAVFilter ,
REFERENCE_TIME   
)

Definition at line 51 of file dshow_filter.c.

◆ libAVFilter_GetState()

long WINAPI libAVFilter_GetState ( libAVFilter ,
DWORD  ,
FILTER_STATE *   
)

Definition at line 59 of file dshow_filter.c.

◆ libAVFilter_SetSyncSource()

long WINAPI libAVFilter_SetSyncSource ( libAVFilter ,
IReferenceClock *   
)

Definition at line 68 of file dshow_filter.c.

◆ libAVFilter_GetSyncSource()

long WINAPI libAVFilter_GetSyncSource ( libAVFilter ,
IReferenceClock **   
)

Definition at line 83 of file dshow_filter.c.

◆ libAVFilter_EnumPins()

long WINAPI libAVFilter_EnumPins ( libAVFilter ,
IEnumPins **   
)

Definition at line 96 of file dshow_filter.c.

◆ libAVFilter_FindPin()

long WINAPI libAVFilter_FindPin ( libAVFilter ,
const wchar_t *  ,
IPin **   
)

Definition at line 111 of file dshow_filter.c.

◆ libAVFilter_QueryFilterInfo()

long WINAPI libAVFilter_QueryFilterInfo ( libAVFilter ,
FILTER_INFO *   
)

Definition at line 129 of file dshow_filter.c.

◆ libAVFilter_JoinFilterGraph()

long WINAPI libAVFilter_JoinFilterGraph ( libAVFilter ,
IFilterGraph *  ,
const wchar_t *   
)

Definition at line 142 of file dshow_filter.c.

◆ libAVFilter_QueryVendorInfo()

long WINAPI libAVFilter_QueryVendorInfo ( libAVFilter ,
wchar_t **   
)

Definition at line 154 of file dshow_filter.c.

◆ libAVFilter_Destroy()

void libAVFilter_Destroy ( libAVFilter )

◆ libAVFilter_Create()

libAVFilter* libAVFilter_Create ( void *  ,
void *  ,
enum  dshowDeviceType 
)

Referenced by dshow_open_device().

◆ dshow_try_setup_crossbar_options()

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

◆ dshow_show_filter_properties()

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 513 of file dshow.c.

Referenced by dshow_cycle_pins(), and dshow_try_setup_crossbar_options().

Variable Documentation

◆ ff_dshow_context_class_ptr

const AVClass* ff_dshow_context_class_ptr

Definition at line 60 of file dshow_common.c.

InterlockedDecrement
#define InterlockedDecrement(x)
Definition: windows2linux.h:63
E_POINTER
#define E_POINTER
Definition: windows2linux.h:43
E_NOINTERFACE
#define E_NOINTERFACE
Definition: windows2linux.h:42
S_OK
#define S_OK
Definition: windows2linux.h:40
fail
#define fail()
Definition: checkasm.h:120
NULL
#define NULL
Definition: coverity.c:32
offset
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf offset
Definition: writing_filters.txt:86
GUIDoffset
Definition: dshow_capture.h:56
i
#define i(width, name, range_min, range_max)
Definition: cbs_h2645.c:259
AV_STRINGIFY
#define AV_STRINGIFY(s)
Definition: macros.h:36
uint8_t
uint8_t
Definition: audio_convert.c:194
ref
static int ref[MAX_W *MAX_W]
Definition: jpeg2000dwt.c:107
InterlockedIncrement
#define InterlockedIncrement(x)
Definition: windows2linux.h:62