⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cs.h

📁 freescale i.mx31 BSP CE5.0全部源码
💻 H
📖 第 1 页 / 共 5 页
字号:
        struct {
            PKDPC               Dpc;
            ULONG               ReferenceCount;
            ULONG_PTR           Reserved;
        } Dpc;
        struct {
            PWORK_QUEUE_ITEM    WorkQueueItem;
            WORK_QUEUE_TYPE     WorkQueueType;
            ULONG_PTR           Reserved;
        } WorkItem;
        struct {
            PWORK_QUEUE_ITEM    WorkQueueItem;
            PCSWORKER           CsWorkerObject;
            ULONG_PTR           Reserved;
        } CsWorkItem;
// @@BEGIN_DDCSPLIT
        struct {
            PCSFILTER           Filter;
            ULONG_PTR           Reserved[2];
        } CsFilterProcessing;
        struct {
            PCSPIN              Pin;
            ULONG_PTR           Reserved[2];
        } CsPinProcessing;
// @@END_DDCSPLIT
#endif // defined(_NTDDK_)
        struct {
            PVOID               Unused;
            LONG_PTR            Alignment[2];
        } Alignment;
    };
} CSEVENTDATA, *PCSEVENTDATA;


#define CSEVENTF_EVENT_HANDLE       0x00000001
#define CSEVENTF_SEMAPHORE_HANDLE   0x00000002
#if defined(_NTDDK_)
#define CSEVENTF_EVENT_OBJECT       0x00000004
#define CSEVENTF_SEMAPHORE_OBJECT   0x00000008
#define CSEVENTF_DPC                0x00000010
#define CSEVENTF_WORKITEM           0x00000020
#define CSEVENTF_CSWORKITEM         0x00000080
// @@BEGIN_DDCSPLIT
#define CSEVENTF_CSFILTERPROCESSING 0x00000100
#define CSEVENTF_CSPINPROCESSING    0x00000200
// @@END_DDCSPLIT
#endif // defined(_NTDDK_)

#define CSEVENT_TYPE_ENABLE         0x00000001
#define CSEVENT_TYPE_ONESHOT        0x00000002
#define CSEVENT_TYPE_ENABLEBUFFERED 0x00000004
#define CSEVENT_TYPE_SETSUPPORT     0x00000100
#define CSEVENT_TYPE_BASICSUPPORT   0x00000200
#define CSEVENT_TYPE_QUERYBUFFER    0x00000400

#define CSEVENT_TYPE_TOPOLOGY 0x10000000

typedef struct {
    CSEVENT         Event;
    PCSEVENTDATA    EventData;
    PVOID           Reserved;
} CSQUERYBUFFER, *PCSQUERYBUFFER;

typedef struct {
    ULONG Size;
    ULONG Flags;
    union {
        HANDLE ObjectHandle;
        PVOID ObjectPointer;
    };
    PVOID Reserved;
    CSEVENT Event;
    CSEVENTDATA EventData;
} CSRELATIVEEVENT;

#define CSRELATIVEEVENT_FLAG_HANDLE 0x00000001
#define CSRELATIVEEVENT_FLAG_POINTER 0x00000002

//===========================================================================

typedef struct {
    CSEVENTDATA     EventData;
    LONGLONG        MarkTime;
} CSEVENT_TIME_MARK, *PCSEVENT_TIME_MARK;

typedef struct {
    CSEVENTDATA     EventData;
    LONGLONG        TimeBase;
    LONGLONG        Interval;
} CSEVENT_TIME_INTERVAL, *PCSEVENT_TIME_INTERVAL;

typedef struct {
    LONGLONG        TimeBase;
    LONGLONG        Interval;
} CSINTERVAL, *PCSINTERVAL;

#endif //#ifndef UNDER_CE
//===========================================================================
				
#define STATIC_CSPROPSETID_General\
    0x1464EDA5L, 0x6A8F, 0x11D1, 0x9A, 0xA7, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96
DEFINE_GUIDSTRUCT("1464EDA5-6A8F-11D1-9AA7-00A0C9223196", CSPROPSETID_General);
#define CSPROPSETID_General DEFINE_GUIDNAMED(CSPROPSETID_General)

typedef enum {
    CSPROPERTY_GENERAL_COMPONENTID
} CSPROPERTY_GENERAL;

#ifndef UNDER_CE
typedef struct {
    GUID    Manufacturer;
    GUID    Product;
    GUID    Component;
    GUID    Name;
    ULONG   Version;
    ULONG   Revision;
} CSCOMPONENTID, *PCSCOMPONENTID;

#define DEFINE_CSPROPERTY_ITEM_GENERAL_COMPONENTID(Handler)\
    DEFINE_CSPROPERTY_ITEM(\
        CSPROPERTY_GENERAL_COMPONENTID,\
        (Handler),\
        sizeof(CSPROPERTY),\
        sizeof(CSCOMPONENTID),\
        NULL, NULL, 0, NULL, NULL, 0)

#define STATIC_CSMETHODSETID_StreamIo\
    0x65D003CAL, 0x1523, 0x11D2, 0xB2, 0x7A, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96
DEFINE_GUIDSTRUCT("65D003CA-1523-11D2-B27A-00A0C9223196", CSMETHODSETID_StreamIo);
#define CSMETHODSETID_StreamIo DEFINE_GUIDNAMED(CSMETHODSETID_StreamIo)

typedef enum {
    CSMETHOD_STREAMIO_READ,
    CSMETHOD_STREAMIO_WRITE
} CSMETHOD_STREAMIO;

#define DEFINE_CSMETHOD_ITEM_STREAMIO_READ(Handler)\
    DEFINE_CSMETHOD_ITEM(\
        CSMETHOD_STREAMIO_READ,\
        CSMETHOD_TYPE_WRITE,\
        (Handler),\
        sizeof(CSMETHOD),\
        0,\
        NULL)

#define DEFINE_CSMETHOD_ITEM_STREAMIO_WRITE(Handler)\
    DEFINE_CSMETHOD_ITEM(\
        CSMETHOD_STREAMIO_WRITE,\
        CSMETHOD_TYPE_READ,\
        (Handler),\
        sizeof(CSMETHOD),\
        0,\
        NULL)

#define STATIC_CSPROPSETID_MediaSeeking\
    0xEE904F0CL, 0xD09B, 0x11D0, 0xAB, 0xE9, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96
DEFINE_GUIDSTRUCT("EE904F0C-D09B-11D0-ABE9-00A0C9223196", CSPROPSETID_MediaSeeking);
#define CSPROPSETID_MediaSeeking DEFINE_GUIDNAMED(CSPROPSETID_MediaSeeking)

typedef enum {
    CSPROPERTY_MEDIASEEKING_CAPABILITIES,
    CSPROPERTY_MEDIASEEKING_FORMATS,
    CSPROPERTY_MEDIASEEKING_TIMEFORMAT,
    CSPROPERTY_MEDIASEEKING_POSITION,
    CSPROPERTY_MEDIASEEKING_STOPPOSITION,
    CSPROPERTY_MEDIASEEKING_POSITIONS,
    CSPROPERTY_MEDIASEEKING_DURATION,
    CSPROPERTY_MEDIASEEKING_AVAILABLE,
    CSPROPERTY_MEDIASEEKING_PREROLL,
    CSPROPERTY_MEDIASEEKING_CONVERTTIMEFORMAT
} CSPROPERTY_MEDIASEEKING;

typedef enum {
    CS_SEEKING_NoPositioning,
    CS_SEEKING_AbsolutePositioning,
    CS_SEEKING_RelativePositioning,
    CS_SEEKING_IncrementalPositioning,
    CS_SEEKING_PositioningBitsMask = 0x3,
    CS_SEEKING_SeekToKeyFrame,
    CS_SEEKING_ReturnTime = 0x8
} CS_SEEKING_FLAGS;

typedef enum {
    CS_SEEKING_CanSeekAbsolute = 0x1,
    CS_SEEKING_CanSeekForwards = 0x2,
    CS_SEEKING_CanSeekBackwards = 0x4,
    CS_SEEKING_CanGetCurrentPos = 0x8,
    CS_SEEKING_CanGetStopPos = 0x10,
    CS_SEEKING_CanGetDuration = 0x20,
    CS_SEEKING_CanPlayBackwards = 0x40
} CS_SEEKING_CAPABILITIES;

typedef struct {
    LONGLONG            Current;
    LONGLONG            Stop;
    CS_SEEKING_FLAGS    CurrentFlags;
    CS_SEEKING_FLAGS    StopFlags;
} CSPROPERTY_POSITIONS, *PCSPROPERTY_POSITIONS;

typedef struct {
    LONGLONG    Earliest;
    LONGLONG    Latest;
} CSPROPERTY_MEDIAAVAILABLE, *PCSPROPERTY_MEDIAAVAILABLE;

typedef struct {
    CSPROPERTY  Property;
    GUID        SourceFormat;
    GUID        TargetFormat;
    LONGLONG    Time;
} CSP_TIMEFORMAT, *PCSP_TIMEFORMAT;

#define DEFINE_CSPROPERTY_ITEM_MEDIASEEKING_CAPABILITIES(Handler)\
    DEFINE_CSPROPERTY_ITEM(\
        CSPROPERTY_MEDIASEEKING_CAPABILITIES,\
        (Handler),\
        sizeof(CSPROPERTY),\
        sizeof(CS_SEEKING_CAPABILITIES),\
        NULL, NULL, 0, NULL, NULL, 0)

#define DEFINE_CSPROPERTY_ITEM_MEDIASEEKING_FORMATS(Handler)\
    DEFINE_CSPROPERTY_ITEM(\
        CSPROPERTY_MEDIASEEKING_FORMATS,\
        (Handler),\
        sizeof(CSPROPERTY),\
        0,\
        NULL, NULL, 0, NULL, NULL, 0)

#define DEFINE_CSPROPERTY_ITEM_MEDIASEEKING_TIMEFORMAT(GetHandler, SetHandler)\
    DEFINE_CSPROPERTY_ITEM(\
        CSPROPERTY_MEDIASEEKING_TIMEFORMAT,\
        (GetHandler),\
        sizeof(CSPROPERTY),\
        sizeof(GUID),\
        (SetHandler),\
        NULL, 0, NULL, NULL, 0)

#define DEFINE_CSPROPERTY_ITEM_MEDIASEEKING_POSITION(Handler)\
    DEFINE_CSPROPERTY_ITEM(\
        CSPROPERTY_MEDIASEEKING_POSITION,\
        (Handler),\
        sizeof(CSPROPERTY),\
        sizeof(LONGLONG),\
        NULL, NULL, 0, NULL, NULL, 0)

#define DEFINE_CSPROPERTY_ITEM_MEDIASEEKING_STOPPOSITION(Handler)\
    DEFINE_CSPROPERTY_ITEM(\
        CSPROPERTY_MEDIASEEKING_STOPPOSITION,\
        (Handler),\
        sizeof(CSPROPERTY),\
        sizeof(LONGLONG),\
        NULL, NULL, 0, NULL, NULL, 0)

#define DEFINE_CSPROPERTY_ITEM_MEDIASEEKING_POSITIONS(Handler)\
    DEFINE_CSPROPERTY_ITEM(\
        CSPROPERTY_MEDIASEEKING_POSITIONS,\
        NULL,\
        sizeof(CSPROPERTY),\
        sizeof(CSPROPERTY_POSITIONS),\
        (Handler),\
        NULL, 0, NULL, NULL, 0)

#define DEFINE_CSPROPERTY_ITEM_MEDIASEEKING_DURATION(Handler)\
    DEFINE_CSPROPERTY_ITEM(\
        CSPROPERTY_MEDIASEEKING_DURATION,\
        (Handler),\
        sizeof(CSPROPERTY),\
        sizeof(LONGLONG),\
        NULL, NULL, 0, NULL, NULL, 0)

#define DEFINE_CSPROPERTY_ITEM_MEDIASEEKING_AVAILABLE(Handler)\
    DEFINE_CSPROPERTY_ITEM(\
        CSPROPERTY_MEDIASEEKING_AVAILABLE,\
        (Handler),\
        sizeof(CSPROPERTY),\
        sizeof(CSPROPERTY_MEDIAAVAILABLE),\
        NULL, NULL, 0, NULL, NULL, 0)

#define DEFINE_CSPROPERTY_ITEM_MEDIASEEKING_PREROLL(Handler)\
    DEFINE_CSPROPERTY_ITEM(\
        CSPROPERTY_MEDIASEEKING_PREROLL,\
        (Handler),\
        sizeof(CSPROPERTY),\
        sizeof(LONGLONG),\
        NULL, NULL, 0, NULL, NULL, 0)

#define DEFINE_CSPROPERTY_ITEM_MEDIASEEKING_CONVERTTIMEFORMAT(Handler)\
    DEFINE_CSPROPERTY_ITEM(\
        CSPROPERTY_MEDIASEEKING_CONVERTTIMEFORMAT,\
        (Handler),\
        sizeof(CSP_TIMEFORMAT),\
        sizeof(LONGLONG),\
        NULL, NULL, 0, NULL, NULL, 0)

//===========================================================================

#define STATIC_CSPROPSETID_Topology\
    0x720D4AC0L, 0x7533, 0x11D0, 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00
DEFINE_GUIDSTRUCT("720D4AC0-7533-11D0-A5D6-28DB04C10000", CSPROPSETID_Topology);
#define CSPROPSETID_Topology DEFINE_GUIDNAMED(CSPROPSETID_Topology)

typedef enum {
    CSPROPERTY_TOPOLOGY_CATEGORIES,
    CSPROPERTY_TOPOLOGY_NODES,
    CSPROPERTY_TOPOLOGY_CONNECTIONS,
    CSPROPERTY_TOPOLOGY_NAME
} CSPROPERTY_TOPOLOGY;

#define DEFINE_CSPROPERTY_ITEM_TOPOLOGY_CATEGORIES(Handler)\
    DEFINE_CSPROPERTY_ITEM(\
        CSPROPERTY_TOPOLOGY_CATEGORIES,\
        (Handler),\
        sizeof(CSPROPERTY),\
        0,\
        NULL, NULL, 0, NULL, NULL, 0)

#define DEFINE_CSPROPERTY_ITEM_TOPOLOGY_NODES(Handler)\
    DEFINE_CSPROPERTY_ITEM(\
        CSPROPERTY_TOPOLOGY_NODES,\
        (Handler),\
        sizeof(CSPROPERTY),\
        0,\
        NULL, NULL, 0, NULL, NULL, 0)

#define DEFINE_CSPROPERTY_ITEM_TOPOLOGY_CONNECTIONS(Handler)\
    DEFINE_CSPROPERTY_ITEM(\
        CSPROPERTY_TOPOLOGY_CONNECTIONS,\
        (Handler),\
        sizeof(CSPROPERTY),\
        0,\
        NULL, NULL, 0, NULL, NULL, 0)

#define DEFINE_CSPROPERTY_ITEM_TOPOLOGY_NAME(Handler)\
    DEFINE_CSPROPERTY_ITEM(\
        CSPROPERTY_TOPOLOGY_NAME,\
        (Handler),\
        sizeof(CSP_NODE),\
        0,\
        NULL, NULL, 0, NULL, NULL, 0)

#define DEFINE_CSPROPERTY_TOPOLOGYSET(TopologySet, Handler)\
DEFINE_CSPROPERTY_TABLE(TopologySet) {\
    DEFINE_CSPROPERTY_ITEM_TOPOLOGY_CATEGORIES(Handler),\
    DEFINE_CSPROPERTY_ITEM_TOPOLOGY_NODES(Handler),\
    DEFINE_CSPROPERTY_ITEM_TOPOLOGY_CONNECTIONS(Handler),\
    DEFINE_CSPROPERTY_ITEM_TOPOLOGY_NAME(Handler)\
}

//=============================================================================

//
// properties used by graph manager to talk to particular filters
//
#if defined(_NTDDK_)

#define STATIC_CSPROPSETID_GM \
    0xAF627536L, 0xE719, 0x11D2, 0x8A, 0x1D, 0x00, 0x60, 0x97, 0xD2, 0xDF, 0x5D    
DEFINE_GUIDSTRUCT("AF627536-E719-11D2-8A1D-006097D2DF5D", CSPROPSETID_GM);
#define CSPROPSETID_GM DEFINE_GUIDNAMED(CSPROPSETID_GM)

typedef VOID (*PFNCSGRAPHMANAGER_NOTIFY)(IN PFILE_OBJECT GraphManager,
                                         IN ULONG EventId,
                                         IN PVOID Filter,
                                         IN PVOID Pin,
                                         IN PVOID Frame,
                                         IN ULONG Duration);

typedef struct CSGRAPHMANAGER_FUNCTIONTABLE {
    PFNCSGRAPHMANAGER_NOTIFY NotifyEvent;
} CSGRAPHMANAGER_FUNCTIONTABLE, PCSGRAPHMANAGER_FUNCTIONTABLE;

typedef struct _CSPROPERTY_GRAPHMANAGER_INTERFACE {
    PFILE_OBJECT                 GraphManager;
    CSGRAPHMANAGER_FUNCTIONTABLE FunctionTable;
} CSPROPERTY_GRAPHMANAGER_INTERFACE, *PCSPROPERTY_GRAPHMANAGER_INTERFACE;


//
// Commands
//
typedef enum {
    CSPROPERTY_GM_GRAPHMANAGER,    
    CSPROPERTY_GM_TIMESTAMP_CLOCK, 
    CSPROPERTY_GM_RATEMATCH,       
    CSPROPERTY_GM_RENDER_CLOCK,    
} CSPROPERTY_GM;

#endif

//===========================================================================

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -