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

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

Referenced by dshow_check_event_queue().

#define dshowdebug (   ...)    ff_dlog(&ff_dshow_context_class_ptr, __VA_ARGS__)
#define DECLARE_QUERYINTERFACE (   prefix,
  class,
  ... 
)
Value:
long \
ff_dshow_##prefix##_QueryInterface(class *this, const GUID *riid, void **ppvObject) \
{ \
struct GUIDoffset ifaces[] = __VA_ARGS__; \
dshowdebug("ff_dshow_"AV_STRINGIFY(prefix)"_QueryInterface(%p, %p, %p)\n", this, riid, ppvObject); \
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 NULL
Definition: coverity.c:32
#define dshowdebug(...)
Definition: dshow_capture.h:51
uint8_t
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
typedef void(APIENTRY *FF_PFNGLACTIVETEXTUREPROC)(GLenum texture)
if(ret)
void ff_printGUID(const GUID *g)
Definition: dshow_common.c:42
#define AV_STRINGIFY(s)
Definition: macros.h:36
int
these buffered frames must be flushed immediately if a new input produces new the filter must not call request_frame to get more It must just process the frame or queue it The task of requesting more frames is left to the filter s request_frame method or the application If a filter has several the filter must be ready for frames arriving randomly on any input any filter with several inputs will most likely require some kind of queuing mechanism It is perfectly acceptable to have a limited queue and to drop frames when the inputs are too unbalanced request_frame For filters that do not use the this method is called when a frame is wanted on an output For a it should directly call filter_frame on the corresponding output For a if there are queued frames already one of these frames should be pushed If the filter should request a frame on one of its repeatedly until at least one frame has been pushed Return or at least make progress towards producing a it should return
for(j=16;j >0;--j)
int i
Definition: input.c:407

Definition at line 72 of file dshow_capture.h.

#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); \
}
#define dshowdebug(...)
Definition: dshow_capture.h:51
#define AV_STRINGIFY(s)
Definition: macros.h:36
static int ref[MAX_W *MAX_W]
Definition: jpeg2000dwt.c:107
these buffered frames must be flushed immediately if a new input produces new the filter must not call request_frame to get more It must just process the frame or queue it The task of requesting more frames is left to the filter s request_frame method or the application If a filter has several the filter must be ready for frames arriving randomly on any input any filter with several inputs will most likely require some kind of queuing mechanism It is perfectly acceptable to have a limited queue and to drop frames when the inputs are too unbalanced request_frame For filters that do not use the this method is called when a frame is wanted on an output For a it should directly call filter_frame on the corresponding output For a if there are queued frames already one of these frames should be pushed If the filter should request a frame on one of its repeatedly until at least one frame has been pushed Return or at least make progress towards producing a it should return

Definition at line 95 of file dshow_capture.h.

Referenced by DECLARE_QUERYINTERFACE().

#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); \
}
#define dshowdebug(...)
Definition: dshow_capture.h:51
if(ret)
#define AV_STRINGIFY(s)
Definition: macros.h:36
static int ref[MAX_W *MAX_W]
Definition: jpeg2000dwt.c:107
these buffered frames must be flushed immediately if a new input produces new the filter must not call request_frame to get more It must just process the frame or queue it The task of requesting more frames is left to the filter s request_frame method or the application If a filter has several the filter must be ready for frames arriving randomly on any input any filter with several inputs will most likely require some kind of queuing mechanism It is perfectly acceptable to have a limited queue and to drop frames when the inputs are too unbalanced request_frame For filters that do not use the this method is called when a frame is wanted on an output For a it should directly call filter_frame on the corresponding output For a if there are queued frames already one of these frames should be pushed If the filter should request a frame on one of its repeatedly until at least one frame has been pushed Return or at least make progress towards producing a it should return

Definition at line 102 of file dshow_capture.h.

Referenced by DECLARE_QUERYINTERFACE().

#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); \
} \
}
#define dshowdebug(...)
Definition: dshow_capture.h:51
if(ret)
#define AV_STRINGIFY(s)
Definition: macros.h:36
int(* func)(AVBPrint *dst, const char *in, const char *arg)
Definition: jacosubdec.c:67

Definition at line 113 of file dshow_capture.h.

Referenced by ff_dshow_enummediatypes_Setup(), ff_dshow_enumpins_Cleanup(), ff_dshow_filter_Cleanup(), and ff_dshow_pin_Free().

#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"); \
}
#define NULL
Definition: coverity.c:32
#define dshowdebug(...)
Definition: dshow_capture.h:51
#define fail()
Definition: checkasm.h:133
typedef void(APIENTRY *FF_PFNGLACTIVETEXTUREPROC)(GLenum texture)
if(ret)
#define AV_STRINGIFY(s)
Definition: macros.h:36
#define class
Definition: math.h:25
these buffered frames must be flushed immediately if a new input produces new the filter must not call request_frame to get more It must just process the frame or queue it The task of requesting more frames is left to the filter s request_frame method or the application If a filter has several the filter must be ready for frames arriving randomly on any input any filter with several inputs will most likely require some kind of queuing mechanism It is perfectly acceptable to have a limited queue and to drop frames when the inputs are too unbalanced request_frame For filters that do not use the this method is called when a frame is wanted on an output For a it should directly call filter_frame on the corresponding output For a if there are queued frames already one of these frames should be pushed If the filter should request a frame on one of its repeatedly until at least one frame has been pushed Return or at least make progress towards producing a it should return

Definition at line 124 of file dshow_capture.h.

Referenced by ff_dshow_enummediatypes_Setup(), ff_dshow_enumpins_Cleanup(), ff_dshow_filter_Cleanup(), and ff_dshow_pin_Free().

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

Typedef Documentation

Definition at line 153 of file dshow_capture.h.

Enumeration Type Documentation

Enumerator
VideoDevice 
AudioDevice 

Definition at line 62 of file dshow_capture.h.

Enumerator
VideoSourceDevice 
AudioSourceDevice 

Definition at line 67 of file dshow_capture.h.

Function Documentation

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)

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

void ff_printGUID ( const GUID *  g)
static void nothing ( void foo)
inlinestatic

Definition at line 53 of file dshow_capture.h.

Referenced by ff_dshow_enummediatypes_Setup().

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

Referenced by DECLARE_QUERYINTERFACE().

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

Definition at line 38 of file dshow_pin.c.

long ff_dshow_pin_Disconnect ( DShowPin )

Definition at line 65 of file dshow_pin.c.

long ff_dshow_pin_ConnectedTo ( DShowPin ,
IPin **   
)

Definition at line 78 of file dshow_pin.c.

long ff_dshow_pin_ConnectionMediaType ( DShowPin ,
AM_MEDIA_TYPE *   
)

Definition at line 91 of file dshow_pin.c.

Referenced by dshow_add_device().

long ff_dshow_pin_QueryPinInfo ( DShowPin ,
PIN_INFO *   
)

Definition at line 102 of file dshow_pin.c.

long ff_dshow_pin_QueryDirection ( DShowPin ,
PIN_DIRECTION *   
)

Definition at line 118 of file dshow_pin.c.

long ff_dshow_pin_QueryId ( DShowPin ,
wchar_t **   
)

Definition at line 126 of file dshow_pin.c.

long ff_dshow_pin_QueryAccept ( DShowPin ,
const AM_MEDIA_TYPE *   
)

Definition at line 137 of file dshow_pin.c.

long ff_dshow_pin_EnumMediaTypes ( DShowPin ,
IEnumMediaTypes **   
)

Definition at line 142 of file dshow_pin.c.

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

Definition at line 157 of file dshow_pin.c.

long ff_dshow_pin_EndOfStream ( DShowPin )

Definition at line 163 of file dshow_pin.c.

long ff_dshow_pin_BeginFlush ( DShowPin )

Definition at line 169 of file dshow_pin.c.

long ff_dshow_pin_EndFlush ( DShowPin )

Definition at line 175 of file dshow_pin.c.

long ff_dshow_pin_NewSegment ( DShowPin ,
REFERENCE_TIME  ,
REFERENCE_TIME  ,
double   
)

Definition at line 181 of file dshow_pin.c.

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

Definition at line 253 of file dshow_pin.c.

unsigned long ff_dshow_meminputpin_AddRef ( DShowMemInputPin )

Definition at line 260 of file dshow_pin.c.

unsigned long ff_dshow_meminputpin_Release ( DShowMemInputPin )

Definition at line 266 of file dshow_pin.c.

long ff_dshow_meminputpin_GetAllocator ( DShowMemInputPin ,
IMemAllocator **   
)

Definition at line 272 of file dshow_pin.c.

long ff_dshow_meminputpin_NotifyAllocator ( DShowMemInputPin ,
IMemAllocator *  ,
BOOL   
)

Definition at line 277 of file dshow_pin.c.

long ff_dshow_meminputpin_GetAllocatorRequirements ( DShowMemInputPin ,
ALLOCATOR_PROPERTIES *   
)

Definition at line 283 of file dshow_pin.c.

long ff_dshow_meminputpin_Receive ( DShowMemInputPin ,
IMediaSample *   
)

Definition at line 289 of file dshow_pin.c.

Referenced by ff_dshow_meminputpin_ReceiveMultiple().

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

Definition at line 345 of file dshow_pin.c.

long ff_dshow_meminputpin_ReceiveCanBlock ( DShowMemInputPin )

Definition at line 357 of file dshow_pin.c.

void ff_dshow_pin_Destroy ( DShowPin )
DShowPin* ff_dshow_pin_Create ( DShowFilter filter)

Referenced by ff_dshow_filter_Setup().

void ff_dshow_meminputpin_Destroy ( DShowMemInputPin )

Definition at line 364 of file dshow_pin.c.

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

Referenced by DECLARE_QUERYINTERFACE().

long ff_dshow_enumpins_Skip ( DShowEnumPins ,
unsigned  long 
)

Definition at line 48 of file dshow_enumpins.c.

long ff_dshow_enumpins_Reset ( DShowEnumPins )

Definition at line 55 of file dshow_enumpins.c.

long ff_dshow_enumpins_Clone ( DShowEnumPins ,
DShowEnumPins **   
)

Definition at line 61 of file dshow_enumpins.c.

void ff_dshow_enumpins_Destroy ( DShowEnumPins )
DShowEnumPins* ff_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 *   
)

Referenced by DECLARE_QUERYINTERFACE().

long ff_dshow_enummediatypes_Skip ( DShowEnumMediaTypes ,
unsigned  long 
)

Definition at line 53 of file dshow_enummediatypes.c.

long ff_dshow_enummediatypes_Reset ( DShowEnumMediaTypes )

Definition at line 60 of file dshow_enummediatypes.c.

long ff_dshow_enummediatypes_Clone ( DShowEnumMediaTypes ,
DShowEnumMediaTypes **   
)

Definition at line 66 of file dshow_enummediatypes.c.

void ff_dshow_enummediatypes_Destroy ( DShowEnumMediaTypes )
DShowEnumMediaTypes* ff_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 *   
)

Referenced by DECLARE_QUERYINTERFACE().

long ff_dshow_filter_Stop ( DShowFilter )

Definition at line 35 of file dshow_filter.c.

long ff_dshow_filter_Pause ( DShowFilter )

Definition at line 41 of file dshow_filter.c.

long ff_dshow_filter_Run ( DShowFilter ,
REFERENCE_TIME   
)

Definition at line 47 of file dshow_filter.c.

long ff_dshow_filter_GetState ( DShowFilter ,
DWORD  ,
FILTER_STATE *   
)

Definition at line 54 of file dshow_filter.c.

long ff_dshow_filter_SetSyncSource ( DShowFilter ,
IReferenceClock *   
)

Definition at line 62 of file dshow_filter.c.

long ff_dshow_filter_GetSyncSource ( DShowFilter ,
IReferenceClock **   
)

Definition at line 76 of file dshow_filter.c.

long ff_dshow_filter_EnumPins ( DShowFilter ,
IEnumPins **   
)

Definition at line 88 of file dshow_filter.c.

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

Definition at line 102 of file dshow_filter.c.

long ff_dshow_filter_QueryFilterInfo ( DShowFilter ,
FILTER_INFO *   
)

Definition at line 119 of file dshow_filter.c.

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

Definition at line 131 of file dshow_filter.c.

long ff_dshow_filter_QueryVendorInfo ( DShowFilter ,
wchar_t **   
)

Definition at line 142 of file dshow_filter.c.

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

Referenced by dshow_open_device().

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

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

const AVClass* ff_dshow_context_class_ptr

Definition at line 60 of file dshow_common.c.