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"
#include "libavcodec/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 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(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)   do { (vtbl)->fn = (void *) ff_dshow_##prefix##_##fn; } while(0)
 

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 ff_dshow_pin_QueryInterface (DShowPin *, const GUID *, void **)
 
unsigned long ff_dshow_pin_AddRef (DShowPin *)
 
unsigned long ff_dshow_pin_Release (DShowPin *)
 
long ff_dshow_pin_Connect (DShowPin *, IPin *, const AM_MEDIA_TYPE *)
 
long ff_dshow_pin_ReceiveConnection (DShowPin *, IPin *, const AM_MEDIA_TYPE *)
 
long ff_dshow_pin_Disconnect (DShowPin *)
 
long ff_dshow_pin_ConnectedTo (DShowPin *, IPin **)
 
long ff_dshow_pin_ConnectionMediaType (DShowPin *, AM_MEDIA_TYPE *)
 
long ff_dshow_pin_QueryPinInfo (DShowPin *, PIN_INFO *)
 
long ff_dshow_pin_QueryDirection (DShowPin *, PIN_DIRECTION *)
 
long ff_dshow_pin_QueryId (DShowPin *, wchar_t **)
 
long ff_dshow_pin_QueryAccept (DShowPin *, const AM_MEDIA_TYPE *)
 
long ff_dshow_pin_EnumMediaTypes (DShowPin *, IEnumMediaTypes **)
 
long ff_dshow_pin_QueryInternalConnections (DShowPin *, IPin **, unsigned long *)
 
long ff_dshow_pin_EndOfStream (DShowPin *)
 
long ff_dshow_pin_BeginFlush (DShowPin *)
 
long ff_dshow_pin_EndFlush (DShowPin *)
 
long ff_dshow_pin_NewSegment (DShowPin *, REFERENCE_TIME, REFERENCE_TIME, double)
 
long ff_dshow_meminputpin_QueryInterface (DShowMemInputPin *, const GUID *, void **)
 
unsigned long ff_dshow_meminputpin_AddRef (DShowMemInputPin *)
 
unsigned long ff_dshow_meminputpin_Release (DShowMemInputPin *)
 
long ff_dshow_meminputpin_GetAllocator (DShowMemInputPin *, IMemAllocator **)
 
long ff_dshow_meminputpin_NotifyAllocator (DShowMemInputPin *, IMemAllocator *, BOOL)
 
long ff_dshow_meminputpin_GetAllocatorRequirements (DShowMemInputPin *, ALLOCATOR_PROPERTIES *)
 
long ff_dshow_meminputpin_Receive (DShowMemInputPin *, IMediaSample *)
 
long ff_dshow_meminputpin_ReceiveMultiple (DShowMemInputPin *, IMediaSample **, long, long *)
 
long ff_dshow_meminputpin_ReceiveCanBlock (DShowMemInputPin *)
 
void ff_dshow_pin_Destroy (DShowPin *)
 
DShowPinff_dshow_pin_Create (DShowFilter *filter)
 
void ff_dshow_meminputpin_Destroy (DShowMemInputPin *)
 
long ff_dshow_enumpins_QueryInterface (DShowEnumPins *, const GUID *, void **)
 
unsigned long ff_dshow_enumpins_AddRef (DShowEnumPins *)
 
unsigned long ff_dshow_enumpins_Release (DShowEnumPins *)
 
long ff_dshow_enumpins_Next (DShowEnumPins *, unsigned long, IPin **, unsigned long *)
 
long ff_dshow_enumpins_Skip (DShowEnumPins *, unsigned long)
 
long ff_dshow_enumpins_Reset (DShowEnumPins *)
 
long ff_dshow_enumpins_Clone (DShowEnumPins *, DShowEnumPins **)
 
void ff_dshow_enumpins_Destroy (DShowEnumPins *)
 
DShowEnumPinsff_dshow_enumpins_Create (DShowPin *pin, DShowFilter *filter)
 
long ff_dshow_enummediatypes_QueryInterface (DShowEnumMediaTypes *, const GUID *, void **)
 
unsigned long ff_dshow_enummediatypes_AddRef (DShowEnumMediaTypes *)
 
unsigned long ff_dshow_enummediatypes_Release (DShowEnumMediaTypes *)
 
long ff_dshow_enummediatypes_Next (DShowEnumMediaTypes *, unsigned long, AM_MEDIA_TYPE **, unsigned long *)
 
long ff_dshow_enummediatypes_Skip (DShowEnumMediaTypes *, unsigned long)
 
long ff_dshow_enummediatypes_Reset (DShowEnumMediaTypes *)
 
long ff_dshow_enummediatypes_Clone (DShowEnumMediaTypes *, DShowEnumMediaTypes **)
 
void ff_dshow_enummediatypes_Destroy (DShowEnumMediaTypes *)
 
DShowEnumMediaTypesff_dshow_enummediatypes_Create (const AM_MEDIA_TYPE *type)
 
long ff_dshow_filter_QueryInterface (DShowFilter *, const GUID *, void **)
 
unsigned long ff_dshow_filter_AddRef (DShowFilter *)
 
unsigned long ff_dshow_filter_Release (DShowFilter *)
 
long ff_dshow_filter_GetClassID (DShowFilter *, CLSID *)
 
long ff_dshow_filter_Stop (DShowFilter *)
 
long ff_dshow_filter_Pause (DShowFilter *)
 
long ff_dshow_filter_Run (DShowFilter *, REFERENCE_TIME)
 
long ff_dshow_filter_GetState (DShowFilter *, DWORD, FILTER_STATE *)
 
long ff_dshow_filter_SetSyncSource (DShowFilter *, IReferenceClock *)
 
long ff_dshow_filter_GetSyncSource (DShowFilter *, IReferenceClock **)
 
long ff_dshow_filter_EnumPins (DShowFilter *, IEnumPins **)
 
long ff_dshow_filter_FindPin (DShowFilter *, const wchar_t *, IPin **)
 
long ff_dshow_filter_QueryFilterInfo (DShowFilter *, FILTER_INFO *)
 
long ff_dshow_filter_JoinFilterGraph (DShowFilter *, IFilterGraph *, const wchar_t *)
 
long 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. More...
 
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. 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 41 of file dshow_capture.h.

◆ dshowdebug

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

Definition at line 51 of file dshow_capture.h.

◆ DECLARE_QUERYINTERFACE

#define DECLARE_QUERYINTERFACE (   prefix,
  class,
  ... 
)
Value:
long \
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; \
}

Definition at line 72 of file dshow_capture.h.

◆ DECLARE_ADDREF

#define DECLARE_ADDREF (   prefix,
  class 
)
Value:
unsigned long \
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); \
}

Definition at line 95 of file dshow_capture.h.

◆ DECLARE_RELEASE

#define DECLARE_RELEASE (   prefix,
  class 
)
Value:
unsigned long \
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 102 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 113 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)); \
void *vtbl = CoTaskMemAlloc(sizeof(*this->vtbl)); \
dshowdebug("ff_dshow_"AV_STRINGIFY(prefix)"_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 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; \
}

Definition at line 124 of file dshow_capture.h.

◆ SETVTBL

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

Definition at line 146 of file dshow_capture.h.

Typedef Documentation

◆ DShowMemInputPin

Definition at line 153 of file dshow_capture.h.

Enumeration Type Documentation

◆ dshowDeviceType

Enumerator
VideoDevice 
AudioDevice 

Definition at line 62 of file dshow_capture.h.

◆ dshowSourceFilterType

Enumerator
VideoSourceDevice 
AudioSourceDevice 

Definition at line 67 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 53 of file dshow_capture.h.

◆ ff_dshow_pin_QueryInterface()

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

◆ ff_dshow_pin_AddRef()

unsigned long ff_dshow_pin_AddRef ( DShowPin )

◆ ff_dshow_pin_Release()

unsigned long ff_dshow_pin_Release ( DShowPin )

◆ ff_dshow_pin_Connect()

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

◆ ff_dshow_pin_ReceiveConnection()

long ff_dshow_pin_ReceiveConnection ( DShowPin ,
IPin *  ,
const AM_MEDIA_TYPE *   
)

Definition at line 38 of file dshow_pin.c.

◆ ff_dshow_pin_Disconnect()

long ff_dshow_pin_Disconnect ( DShowPin )

Definition at line 65 of file dshow_pin.c.

◆ ff_dshow_pin_ConnectedTo()

long ff_dshow_pin_ConnectedTo ( DShowPin ,
IPin **   
)

Definition at line 78 of file dshow_pin.c.

◆ ff_dshow_pin_ConnectionMediaType()

long ff_dshow_pin_ConnectionMediaType ( DShowPin ,
AM_MEDIA_TYPE *   
)

Definition at line 91 of file dshow_pin.c.

Referenced by dshow_add_device().

◆ ff_dshow_pin_QueryPinInfo()

long ff_dshow_pin_QueryPinInfo ( DShowPin ,
PIN_INFO *   
)

Definition at line 102 of file dshow_pin.c.

◆ ff_dshow_pin_QueryDirection()

long ff_dshow_pin_QueryDirection ( DShowPin ,
PIN_DIRECTION *   
)

Definition at line 118 of file dshow_pin.c.

◆ ff_dshow_pin_QueryId()

long ff_dshow_pin_QueryId ( DShowPin ,
wchar_t **   
)

Definition at line 126 of file dshow_pin.c.

◆ ff_dshow_pin_QueryAccept()

long ff_dshow_pin_QueryAccept ( DShowPin ,
const AM_MEDIA_TYPE *   
)

Definition at line 137 of file dshow_pin.c.

◆ ff_dshow_pin_EnumMediaTypes()

long ff_dshow_pin_EnumMediaTypes ( DShowPin ,
IEnumMediaTypes **   
)

Definition at line 142 of file dshow_pin.c.

◆ ff_dshow_pin_QueryInternalConnections()

long ff_dshow_pin_QueryInternalConnections ( DShowPin ,
IPin **  ,
unsigned long *   
)

Definition at line 157 of file dshow_pin.c.

◆ ff_dshow_pin_EndOfStream()

long ff_dshow_pin_EndOfStream ( DShowPin )

Definition at line 163 of file dshow_pin.c.

◆ ff_dshow_pin_BeginFlush()

long ff_dshow_pin_BeginFlush ( DShowPin )

Definition at line 169 of file dshow_pin.c.

◆ ff_dshow_pin_EndFlush()

long ff_dshow_pin_EndFlush ( DShowPin )

Definition at line 175 of file dshow_pin.c.

◆ ff_dshow_pin_NewSegment()

long ff_dshow_pin_NewSegment ( DShowPin ,
REFERENCE_TIME  ,
REFERENCE_TIME  ,
double   
)

Definition at line 181 of file dshow_pin.c.

◆ ff_dshow_meminputpin_QueryInterface()

long ff_dshow_meminputpin_QueryInterface ( DShowMemInputPin ,
const GUID *  ,
void **   
)

Definition at line 253 of file dshow_pin.c.

◆ ff_dshow_meminputpin_AddRef()

unsigned long ff_dshow_meminputpin_AddRef ( DShowMemInputPin )

Definition at line 260 of file dshow_pin.c.

◆ ff_dshow_meminputpin_Release()

unsigned long ff_dshow_meminputpin_Release ( DShowMemInputPin )

Definition at line 266 of file dshow_pin.c.

◆ ff_dshow_meminputpin_GetAllocator()

long ff_dshow_meminputpin_GetAllocator ( DShowMemInputPin ,
IMemAllocator **   
)

Definition at line 272 of file dshow_pin.c.

◆ ff_dshow_meminputpin_NotifyAllocator()

long ff_dshow_meminputpin_NotifyAllocator ( DShowMemInputPin ,
IMemAllocator *  ,
BOOL   
)

Definition at line 277 of file dshow_pin.c.

◆ ff_dshow_meminputpin_GetAllocatorRequirements()

long ff_dshow_meminputpin_GetAllocatorRequirements ( DShowMemInputPin ,
ALLOCATOR_PROPERTIES *   
)

Definition at line 283 of file dshow_pin.c.

◆ ff_dshow_meminputpin_Receive()

long ff_dshow_meminputpin_Receive ( DShowMemInputPin ,
IMediaSample *   
)

Definition at line 289 of file dshow_pin.c.

Referenced by ff_dshow_meminputpin_ReceiveMultiple().

◆ ff_dshow_meminputpin_ReceiveMultiple()

long ff_dshow_meminputpin_ReceiveMultiple ( DShowMemInputPin ,
IMediaSample **  ,
long  ,
long *   
)

Definition at line 345 of file dshow_pin.c.

◆ ff_dshow_meminputpin_ReceiveCanBlock()

long ff_dshow_meminputpin_ReceiveCanBlock ( DShowMemInputPin )

Definition at line 357 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 )

Definition at line 364 of file dshow_pin.c.

◆ ff_dshow_enumpins_QueryInterface()

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

◆ ff_dshow_enumpins_AddRef()

unsigned long ff_dshow_enumpins_AddRef ( DShowEnumPins )

◆ ff_dshow_enumpins_Release()

unsigned long ff_dshow_enumpins_Release ( DShowEnumPins )

◆ ff_dshow_enumpins_Next()

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

◆ ff_dshow_enumpins_Skip()

long ff_dshow_enumpins_Skip ( DShowEnumPins ,
unsigned long   
)

Definition at line 48 of file dshow_enumpins.c.

◆ ff_dshow_enumpins_Reset()

long ff_dshow_enumpins_Reset ( DShowEnumPins )

Definition at line 55 of file dshow_enumpins.c.

◆ ff_dshow_enumpins_Clone()

long ff_dshow_enumpins_Clone ( DShowEnumPins ,
DShowEnumPins **   
)

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 ff_dshow_enummediatypes_QueryInterface ( DShowEnumMediaTypes ,
const GUID *  ,
void **   
)

◆ ff_dshow_enummediatypes_AddRef()

unsigned long ff_dshow_enummediatypes_AddRef ( DShowEnumMediaTypes )

◆ ff_dshow_enummediatypes_Release()

unsigned long ff_dshow_enummediatypes_Release ( DShowEnumMediaTypes )

◆ ff_dshow_enummediatypes_Next()

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

◆ ff_dshow_enummediatypes_Skip()

long ff_dshow_enummediatypes_Skip ( DShowEnumMediaTypes ,
unsigned long   
)

Definition at line 53 of file dshow_enummediatypes.c.

◆ ff_dshow_enummediatypes_Reset()

long ff_dshow_enummediatypes_Reset ( DShowEnumMediaTypes )

Definition at line 60 of file dshow_enummediatypes.c.

◆ ff_dshow_enummediatypes_Clone()

long ff_dshow_enummediatypes_Clone ( DShowEnumMediaTypes ,
DShowEnumMediaTypes **   
)

Definition at line 66 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 ff_dshow_filter_QueryInterface ( DShowFilter ,
const GUID *  ,
void **   
)

◆ ff_dshow_filter_AddRef()

unsigned long ff_dshow_filter_AddRef ( DShowFilter )

◆ ff_dshow_filter_Release()

unsigned long ff_dshow_filter_Release ( DShowFilter )

◆ ff_dshow_filter_GetClassID()

long ff_dshow_filter_GetClassID ( DShowFilter ,
CLSID *   
)

◆ ff_dshow_filter_Stop()

long ff_dshow_filter_Stop ( DShowFilter )

Definition at line 35 of file dshow_filter.c.

◆ ff_dshow_filter_Pause()

long ff_dshow_filter_Pause ( DShowFilter )

Definition at line 41 of file dshow_filter.c.

◆ ff_dshow_filter_Run()

long ff_dshow_filter_Run ( DShowFilter ,
REFERENCE_TIME   
)

Definition at line 47 of file dshow_filter.c.

◆ ff_dshow_filter_GetState()

long ff_dshow_filter_GetState ( DShowFilter ,
DWORD  ,
FILTER_STATE *   
)

Definition at line 54 of file dshow_filter.c.

◆ ff_dshow_filter_SetSyncSource()

long ff_dshow_filter_SetSyncSource ( DShowFilter ,
IReferenceClock *   
)

Definition at line 62 of file dshow_filter.c.

◆ ff_dshow_filter_GetSyncSource()

long ff_dshow_filter_GetSyncSource ( DShowFilter ,
IReferenceClock **   
)

Definition at line 76 of file dshow_filter.c.

◆ ff_dshow_filter_EnumPins()

long ff_dshow_filter_EnumPins ( DShowFilter ,
IEnumPins **   
)

Definition at line 88 of file dshow_filter.c.

◆ ff_dshow_filter_FindPin()

long ff_dshow_filter_FindPin ( DShowFilter ,
const wchar_t *  ,
IPin **   
)

Definition at line 102 of file dshow_filter.c.

◆ ff_dshow_filter_QueryFilterInfo()

long ff_dshow_filter_QueryFilterInfo ( DShowFilter ,
FILTER_INFO *   
)

Definition at line 119 of file dshow_filter.c.

◆ ff_dshow_filter_JoinFilterGraph()

long ff_dshow_filter_JoinFilterGraph ( DShowFilter ,
IFilterGraph *  ,
const wchar_t *   
)

Definition at line 131 of file dshow_filter.c.

◆ ff_dshow_filter_QueryVendorInfo()

long ff_dshow_filter_QueryVendorInfo ( DShowFilter ,
wchar_t **   
)

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 513 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

Definition at line 60 of file dshow_common.c.

fail
#define fail()
Definition: checkasm.h:127
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:57
i
int i
Definition: input.c:406
AV_STRINGIFY
#define AV_STRINGIFY(s)
Definition: macros.h:66
ref
static int ref[MAX_W *MAX_W]
Definition: jpeg2000dwt.c:107