📄 hxrtsp2.h
字号:
STDMETHOD(GetValueAsInt) (THIS_ REF(INT32) val) PURE;
STDMETHOD(SetValueFromInt) (THIS_ INT32 val) PURE;
STDMETHOD(GetValueAsUint) (THIS_ REF(UINT32) val) PURE;
STDMETHOD(SetValueFromUint) (THIS_ UINT32 val) PURE;
STDMETHOD(GetValueAsBuffer) (THIS_ REF(IHXBuffer*)pbufVal) PURE;
STDMETHOD(SetValueFromBuffer) (THIS_ IHXBuffer* pbufVal) PURE;
//XXXTDM: added these for convenience when writing client code.
// we should come up with a clean, standardized interface.
STDMETHOD(SetFromString) (THIS_ const char* szKey,
const char* szVal) PURE;
STDMETHOD(SetFromBuffer) (THIS_ const char* szKey,
IHXBuffer* pbufVal) PURE;
};
// IHXRTSPMessage: 1bff98ab-e5c9-459d-80ee-b80d20e4f30e
DEFINE_GUID(IID_IHXRTSPMessage, 0x1bff98ab, 0xe5c9, 0x459d,
0x80, 0xee, 0xb8, 0x0d, 0x20, 0xe4, 0xf3, 0x0e);
#undef INTERFACE
#define INTERFACE IHXRTSPMessage
DECLARE_INTERFACE_(IHXRTSPMessage, IUnknown)
{
// IUnknown
STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
// IHXRTSPMessage
STDMETHOD_(UINT16,GetVersion) (THIS) PURE;
STDMETHOD(SetVersion) (THIS_ UINT16 ver) PURE;
STDMETHOD_(int,GetMajorVersion) (THIS) PURE;
STDMETHOD(SetMajorVersion) (THIS_ int uMajorVer) PURE;
STDMETHOD_(int,GetMinorVersion) (THIS) PURE;
STDMETHOD(SetMinorVersion) (THIS_ int uMinorVer) PURE;
STDMETHOD_(UINT32,GetCSeq) (THIS) PURE;
STDMETHOD(SetCSeq) (THIS_ UINT32 cseq) PURE;
STDMETHOD(GetContent) (THIS_ REF(IHXBuffer*) pbufContent) PURE;
STDMETHOD(SetContent) (THIS_ IHXBuffer* pbuf) PURE;
STDMETHOD(GetHeader) (THIS_ const char* key,
REF(IHXMIMEHeader*)pHeader) PURE;
STDMETHOD(AddHeader) (THIS_ IHXMIMEHeader* pHeader) PURE;
STDMETHOD(SetHeader) (THIS_ IHXMIMEHeader* pHeader) PURE;
STDMETHOD(RemoveHeader) (THIS_ const char* key) PURE;
STDMETHOD(GetHeaderList) (THIS_ REF(IHXList*) plistHeaders) PURE;
STDMETHOD(GetHeaderListConst) (THIS_ REF(IHXList*) plistHeaders) PURE;
STDMETHOD_(void,ReplaceDelimiters)(THIS_
BOOL bReplaceDelimiters,
int nReplacementDelimiter) PURE;
};
// IHXRTSPRequestMessage: ddb0e73f-0d5a-4fd1-bdc8-957f0d872a33
DEFINE_GUID(IID_IHXRTSPRequestMessage, 0xddb0e73f, 0x0d5a, 0x4fd1,
0xbd, 0xc8, 0x95, 0x7f, 0x0d, 0x87, 0x2a, 0x33);
#undef INTERFACE
#define INTERFACE IHXRTSPRequestMessage
DECLARE_INTERFACE_(IHXRTSPRequestMessage, IUnknown)
{
// IUnknown
STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
// IHXRTSPRequestMessage
STDMETHOD_(UINT32,GetSize) (THIS) PURE;
STDMETHOD_(UINT32,Write) (THIS_
BYTE* pBuf) PURE;
STDMETHOD_(RTSPMethod,GetMethod)(THIS) PURE;
STDMETHOD_(UINT32,GetVerb) (THIS) PURE;
STDMETHOD(SetVerb) (THIS_
UINT32 verb) PURE;
STDMETHOD(GetVerbEx) (THIS_
REF(IHXBuffer*) pBufVerb) PURE;
STDMETHOD(SetVerbEx) (THIS_
IHXBuffer* pBufVerb) PURE;
STDMETHOD(GetUrl) (THIS_
REF(IHXBuffer*) pBufUrl) PURE;
STDMETHOD(SetUrl) (THIS_
IHXBuffer* pBufUrl) PURE;
};
// IHXRTSPResponseMessage: 876baec2-ec9e-41dc-8cb6-e874b60fbad6
DEFINE_GUID(IID_IHXRTSPResponseMessage, 0x876baec2, 0xec9e, 0x41dc,
0x8c, 0xb6, 0xe8, 0x74, 0xb6, 0x0f, 0xba, 0xd6);
#undef INTERFACE
#define INTERFACE IHXRTSPResponseMessage
DECLARE_INTERFACE_(IHXRTSPResponseMessage, IUnknown)
{
// IUnknown
STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
// IHXRTSPResponseMessage
STDMETHOD_(UINT32,GetSize) (THIS) PURE;
STDMETHOD_(UINT32,Write) (THIS_ BYTE* pbuf) PURE;
STDMETHOD(GetStatusCode) (THIS_ REF(UINT32) status) PURE;
STDMETHOD(SetStatusCode) (THIS_ UINT32 status) PURE;
};
// IHXRTSPInterleavedPacket: 4d737eff-8218-4762-ace3-fcf27c08f916
DEFINE_GUID(IID_IHXRTSPInterleavedPacket, 0x4d737eff, 0x8218, 0x4762,
0xac, 0xe3, 0xfc, 0xf2, 0x7c, 0x08, 0xf9, 0x16);
#undef INTERFACE
#define INTERFACE IHXRTSPInterleavedPacket
DECLARE_INTERFACE_(IHXRTSPInterleavedPacket, IUnknown)
{
// IUnknown
STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
// IHXRTSPInterleavedPacket
STDMETHOD(Get) (THIS_ REF(BYTE) byChan,
REF(IHXBuffer*) pbufData) PURE;
STDMETHOD(Set) (THIS_ BYTE byChan,
IHXBuffer* pbufData) PURE;
};
/*
* The consumer is an abstract object that the protocol pumps data into.
* It can be interleaved data, a request message, or a response message.
* The return value from ReadDone() is one of:
* - RTSP_RES_AGAIN : Data was processed, object is not complete.
* - RTSP_RES_DONE : Data was processed, object is complete.
* - RTSP_RES_PARTIAL: Not enough data is available to process.
* - RTSP_RES_INVALID: Data was processed, not a valid rtsp message.
*
* As the consumer receives data, it creates static buffers that AddRef()
* the protocol's buffer and refer to chunks within it. When the consumer
* is destroyed, it Release()'s the static buffers which in turn Release()
* the protocol buffer. (see CHXStaticBuffer)
*/
// IHXRTSPConsumer: da62eb99-2120-410a-9866-90f7ec9cc15d
DEFINE_GUID(IID_IHXRTSPConsumer, 0xda62eb99, 0x2120, 0x410a,
0x98, 0x66, 0x90, 0xf7, 0xec, 0x9c, 0xc1, 0x5d);
#undef INTERFACE
#define INTERFACE IHXRTSPConsumer
DECLARE_INTERFACE_(IHXRTSPConsumer, IUnknown)
{
// IUnknown
STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
// IHXRTSPConsumer
STDMETHOD(ReadDone) (THIS_ IHXBuffer* pbufPacket,
UINT32* ppos) PURE;
STDMETHOD_(UINT32,GetSize) (THIS) PURE;
STDMETHOD_(UINT32,Write) (THIS_ BYTE* pbuf) PURE;
STDMETHOD_(UINT32,AsBuffer) (THIS_ REF(IHXBuffer*) pbuf) PURE;
};
// IHXRTSPProtocolResponse: bf646cd4-922c-4b9c-ac92-96e774de5639
DEFINE_GUID(IID_IHXRTSPProtocolResponse, 0xbf646cd4, 0x922c, 0x4b9c,
0xac, 0x92, 0x96, 0xe7, 0x74, 0xde, 0x56, 0x39);
#undef INTERFACE
#define INTERFACE IHXRTSPProtocolResponse
DECLARE_INTERFACE_(IHXRTSPProtocolResponse, IUnknown)
{
// IUnknown
STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
// IHXRTSPProtocolResponse
STDMETHOD(OnClosed) (THIS_ HX_RESULT status) PURE;
STDMETHOD(OnError) (THIS_ HX_RESULT status) PURE;
STDMETHOD(OnConnectDone) (THIS_ HX_RESULT status) PURE;
STDMETHOD(OnPacket) (THIS_ IHXRTSPInterleavedPacket* pPkt) PURE;
STDMETHOD(OnOptionsRequest) (THIS_ IHXRTSPRequestMessage* pMsg) PURE;
STDMETHOD(OnDescribeRequest) (THIS_ IHXRTSPRequestMessage* pMsg) PURE;
STDMETHOD(OnSetupRequest) (THIS_ IHXRTSPRequestMessage* pMsg) PURE;
STDMETHOD(OnPlayRequest) (THIS_ IHXRTSPRequestMessage* pMsg) PURE;
STDMETHOD(OnPauseRequest) (THIS_ IHXRTSPRequestMessage* pMsg) PURE;
STDMETHOD(OnAnnounceRequest) (THIS_ IHXRTSPRequestMessage* pMsg) PURE;
STDMETHOD(OnRecordRequest) (THIS_ IHXRTSPRequestMessage* pMsg) PURE;
STDMETHOD(OnTeardownRequest) (THIS_ IHXRTSPRequestMessage* pMsg) PURE;
STDMETHOD(OnGetParamRequest) (THIS_ IHXRTSPRequestMessage* pMsg) PURE;
STDMETHOD(OnSetParamRequest) (THIS_ IHXRTSPRequestMessage* pMsg) PURE;
STDMETHOD(OnRedirectRequest) (THIS_ IHXRTSPRequestMessage* pMsg) PURE;
STDMETHOD(OnExtensionRequest) (THIS_ IHXRTSPRequestMessage* pMsg) PURE;
STDMETHOD(OnOptionsResponse) (THIS_ IHXRTSPResponseMessage* pMsg) PURE;
STDMETHOD(OnDescribeResponse) (THIS_ IHXRTSPResponseMessage* pMsg) PURE;
STDMETHOD(OnSetupResponse) (THIS_ IHXRTSPResponseMessage* pMsg) PURE;
STDMETHOD(OnPlayResponse) (THIS_ IHXRTSPResponseMessage* pMsg) PURE;
STDMETHOD(OnPauseResponse) (THIS_ IHXRTSPResponseMessage* pMsg) PURE;
STDMETHOD(OnAnnounceResponse) (THIS_ IHXRTSPResponseMessage* pMsg) PURE;
STDMETHOD(OnRecordResponse) (THIS_ IHXRTSPResponseMessage* pMsg) PURE;
STDMETHOD(OnTeardownResponse) (THIS_ IHXRTSPResponseMessage* pMsg) PURE;
STDMETHOD(OnGetParamResponse) (THIS_ IHXRTSPResponseMessage* pMsg) PURE;
STDMETHOD(OnSetParamResponse) (THIS_ IHXRTSPResponseMessage* pMsg) PURE;
STDMETHOD(OnRedirectResponse) (THIS_ IHXRTSPResponseMessage* pMsg) PURE;
STDMETHOD(OnExtensionResponse) (THIS_ IHXRTSPResponseMessage* pMsg) PURE;
};
// IHXRTSPProtocol: 29d8eebf-5597-410b-a290-8181be1e2430
DEFINE_GUID(IID_IHXRTSPProtocol, 0x29d8eebf, 0x5597, 0x410b,
0xa2, 0x90, 0x81, 0x81, 0xbe, 0x1e, 0x24, 0x30);
#undef INTERFACE
#define INTERFACE IHXRTSPProtocol
DECLARE_INTERFACE_(IHXRTSPProtocol, IUnknown)
{
// IUnknown
STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
// IHXRTSPProtocol
STDMETHOD(Init) (THIS_ IHXRTSPProtocolResponse* presp,
IUnknown* punkContext) PURE;
//XXXTDM: The following two methods are for using an RTSPTransport object.
// Note that RTSPTransport is not a public class!!!
STDMETHOD(GetSocket) (THIS_ REF(IHXTCPSocket*) pSock) PURE;
STDMETHOD(SetTransport) (THIS_ BYTE byChan, RTSPTransport* pTran)
PURE;
STDMETHOD(Connect) (THIS_ const char* szHost,
UINT16 port) PURE;
STDMETHOD(Accept) (THIS_ IHXTCPSocket* psock) PURE;
STDMETHOD(Close) (THIS) PURE;
STDMETHOD(SendRequest) (THIS_ IHXRTSPRequestMessage* pReq) PURE;
STDMETHOD(SendResponse) (THIS_ IHXRTSPResponseMessage* pRsp) PURE;
STDMETHOD(SendPacket) (THIS_ IHXRTSPInterleavedPacket* pPkt)
PURE;
};
#undef INTERFACE
#define INTERFACE IHXRTSPAggregateEventStats
DECLARE_INTERFACE_(IHXRTSPAggregateEventStats, IUnknown)
{
/*
* IUknown methods
*/
STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
/*
* IHXRTSPAggregateEventStats methods
*/
STDMETHOD(Init) (THIS_ IUnknown* pContext) PURE;
STDMETHOD_(BOOL,IsInitDone) (THIS) PURE;
STDMETHOD(UpdateClientRequestCount) (THIS_ INT32 lCount,
RTSPMethod ulMethodId) PURE;
STDMETHOD(UpdateServerRequestCount) (THIS_ INT32 lCount,
RTSPMethod ulMethodId) PURE;
STDMETHOD(UpdateClientResponseCount) (THIS_ INT32 lCount,
RTSPMethod ulMethodId,
UINT32 ulStatusCode) PURE;
STDMETHOD(UpdateServerResponseCount) (THIS_ INT32 lCount,
RTSPMethod ulMethodId,
UINT32 ulStatusCode) PURE;
STDMETHOD(GetLicense) (THIS_ REF(BOOL) bIsLicensed) PURE;
STDMETHOD(GetStatsEventMask) (THIS_ REF(UINT32) ulEventMask) PURE;
};
#endif /* _HXRTSP2_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -