FFmpeg  4.4.4
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; \
}
uint8_t
#define NULL
Definition: coverity.c:32
#define AV_STRINGIFY(s)
Definition: macros.h:36
int i
Definition: input.c:407
static const uint8_t offset[127][2]
Definition: vf_spp.c:107

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); \
}
static int ref[MAX_W *MAX_W]
Definition: jpeg2000dwt.c:107

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; \
}
#define fail()
Definition: checkasm.h:133

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 53 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 this,
IPin *  pin,
const AM_MEDIA_TYPE *  type 
)

Definition at line 38 of file dshow_pin.c.

◆ ff_dshow_pin_Disconnect()

long ff_dshow_pin_Disconnect ( DShowPin this)

Definition at line 65 of file dshow_pin.c.

◆ ff_dshow_pin_ConnectedTo()

long ff_dshow_pin_ConnectedTo ( DShowPin this,
IPin **  pin 
)

Definition at line 78 of file dshow_pin.c.

◆ ff_dshow_pin_ConnectionMediaType()

long ff_dshow_pin_ConnectionMediaType ( DShowPin this,
AM_MEDIA_TYPE *  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 this,
PIN_INFO *  info 
)

Definition at line 102 of file dshow_pin.c.

◆ ff_dshow_pin_QueryDirection()

long ff_dshow_pin_QueryDirection ( DShowPin this,
PIN_DIRECTION *  dir 
)

Definition at line 118 of file dshow_pin.c.

◆ ff_dshow_pin_QueryId()

long ff_dshow_pin_QueryId ( DShowPin this,
wchar_t **  id 
)

Definition at line 126 of file dshow_pin.c.

◆ ff_dshow_pin_QueryAccept()

long ff_dshow_pin_QueryAccept ( DShowPin this,
const AM_MEDIA_TYPE *  type 
)

Definition at line 137 of file dshow_pin.c.

◆ ff_dshow_pin_EnumMediaTypes()

long ff_dshow_pin_EnumMediaTypes ( DShowPin this,
IEnumMediaTypes **  enumtypes 
)

Definition at line 142 of file dshow_pin.c.

◆ ff_dshow_pin_QueryInternalConnections()

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

Definition at line 157 of file dshow_pin.c.

◆ ff_dshow_pin_EndOfStream()

long ff_dshow_pin_EndOfStream ( DShowPin this)

Definition at line 163 of file dshow_pin.c.

◆ ff_dshow_pin_BeginFlush()

long ff_dshow_pin_BeginFlush ( DShowPin this)

Definition at line 169 of file dshow_pin.c.

◆ ff_dshow_pin_EndFlush()

long ff_dshow_pin_EndFlush ( DShowPin this)

Definition at line 175 of file dshow_pin.c.

◆ ff_dshow_pin_NewSegment()

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

Definition at line 181 of file dshow_pin.c.

◆ ff_dshow_meminputpin_QueryInterface()

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

Definition at line 253 of file dshow_pin.c.

◆ ff_dshow_meminputpin_AddRef()

unsigned long ff_dshow_meminputpin_AddRef ( DShowMemInputPin this)

Definition at line 260 of file dshow_pin.c.

◆ ff_dshow_meminputpin_Release()

unsigned long ff_dshow_meminputpin_Release ( DShowMemInputPin this)

Definition at line 266 of file dshow_pin.c.

◆ ff_dshow_meminputpin_GetAllocator()

long ff_dshow_meminputpin_GetAllocator ( DShowMemInputPin this,
IMemAllocator **  alloc 
)

Definition at line 272 of file dshow_pin.c.

◆ ff_dshow_meminputpin_NotifyAllocator()

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

Definition at line 277 of file dshow_pin.c.

◆ ff_dshow_meminputpin_GetAllocatorRequirements()

long ff_dshow_meminputpin_GetAllocatorRequirements ( DShowMemInputPin this,
ALLOCATOR_PROPERTIES *  props 
)

Definition at line 283 of file dshow_pin.c.

◆ ff_dshow_meminputpin_Receive()

long ff_dshow_meminputpin_Receive ( DShowMemInputPin this,
IMediaSample *  sample 
)

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 this,
IMediaSample **  samples,
long  n,
long *  nproc 
)

Definition at line 345 of file dshow_pin.c.

◆ ff_dshow_meminputpin_ReceiveCanBlock()

long ff_dshow_meminputpin_ReceiveCanBlock ( DShowMemInputPin this)

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 this)

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 this,
unsigned long  n 
)

Definition at line 48 of file dshow_enumpins.c.

◆ ff_dshow_enumpins_Reset()

long ff_dshow_enumpins_Reset ( DShowEnumPins this)

Definition at line 55 of file dshow_enumpins.c.

◆ ff_dshow_enumpins_Clone()

long 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 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 this,
unsigned long  n 
)

Definition at line 53 of file dshow_enummediatypes.c.

◆ ff_dshow_enummediatypes_Reset()

long ff_dshow_enummediatypes_Reset ( DShowEnumMediaTypes this)

Definition at line 60 of file dshow_enummediatypes.c.

◆ ff_dshow_enummediatypes_Clone()

long ff_dshow_enummediatypes_Clone ( DShowEnumMediaTypes this,
DShowEnumMediaTypes **  enums 
)

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 this)

Definition at line 35 of file dshow_filter.c.

◆ ff_dshow_filter_Pause()

long ff_dshow_filter_Pause ( DShowFilter this)

Definition at line 41 of file dshow_filter.c.

◆ ff_dshow_filter_Run()

long ff_dshow_filter_Run ( DShowFilter this,
REFERENCE_TIME  start 
)

Definition at line 47 of file dshow_filter.c.

◆ ff_dshow_filter_GetState()

long 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 ff_dshow_filter_SetSyncSource ( DShowFilter this,
IReferenceClock *  clock 
)

Definition at line 62 of file dshow_filter.c.

◆ ff_dshow_filter_GetSyncSource()

long ff_dshow_filter_GetSyncSource ( DShowFilter this,
IReferenceClock **  clock 
)

Definition at line 76 of file dshow_filter.c.

◆ ff_dshow_filter_EnumPins()

long ff_dshow_filter_EnumPins ( DShowFilter this,
IEnumPins **  enumpin 
)

Definition at line 88 of file dshow_filter.c.

◆ ff_dshow_filter_FindPin()

long 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 ff_dshow_filter_QueryFilterInfo ( DShowFilter this,
FILTER_INFO *  info 
)

Definition at line 119 of file dshow_filter.c.

◆ ff_dshow_filter_JoinFilterGraph()

long 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 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 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
extern

Definition at line 60 of file dshow_common.c.