📄 rtspif.h
字号:
*/ STDMETHOD(Done) (THIS) PURE; /************************************************************************ * Method: * IHXRTSPClientProtocol::SendStreamDescriptionRequest * Purpose: * Request stream description from URL */ STDMETHOD(SendStreamDescriptionRequest) (THIS_ const char* pURL, IHXValues* pRequestHeaders ) PURE; STDMETHOD(SendStreamRecordDescriptionRequest) (THIS_ const char* pURL, IHXValues* pFileHeader, CHXSimpleList* pStreams, IHXValues* pRequestHeaders ) PURE; /************************************************************************ * Method: * IHXRTSPClientProtocol::SendTransportRequest * Purpose: * Request a transport type for data stream from an array of * available transport types */ STDMETHOD(SendSetupRequest) ( THIS_ RTSPTransportType* pTransType, UINT16 nTransTypes, IHXValues* pIHXValuesRequestHeaders ) PURE; STDMETHOD(SendSetParameterRequest) (THIS_ UINT32 lParamType, const char* pParamName, IHXBuffer* pParamValue ) PURE; STDMETHOD(SendSetParameterRequest) (THIS_ const char* pParamName, const char* pParamValue, const char* pMimeType, const char* pContent) PURE; STDMETHOD(SendGetParameterRequest) (THIS_ UINT32 lParamType, const char* pParamName ) PURE; /************************************************************************ * Method: * IHXRTSPClientProtocol::SendPlayRequest * Purpose: * Request start of packet delivery */ STDMETHOD(SendPlayRequest) (THIS_ UINT32 lFrom, UINT32 lTo, CHXSimpleList* pSubList /* RTSPSubscription */ ) PURE; STDMETHOD(SendPauseRequest) (THIS) PURE; STDMETHOD(SendResumeRequest) (THIS) PURE; STDMETHOD(SendRecordRequest) (THIS) PURE; /************************************************************************ * Method: * IHXRTSPClientProtocol::SendTeardownRequest * Purpose: * Request release of connection resources */ STDMETHOD(SendTeardownRequest) (THIS) PURE; /************************************************************************ * Method: * IHXRTSPClientProtocol::SendPacket * Purpose: * Send data packet to server (for RECORD) */ STDMETHOD(SendPacket) (THIS_ BasePacket* pPacket ) PURE; /************************************************************************ * Method: * IHXRTSPClientProtocol::SendStreamDone * Purpose: * Send data end packet to server (for RECORD) */ STDMETHOD(SendStreamDone) (THIS_ UINT16 streamID ) PURE; /************************************************************************ * Method: * IHXRTSPClientProtocol::SendStatistics * Purpose: * Send cumulative stats from player to server */ STDMETHOD(SendPlayerStats) (THIS_ const char* pStats ) PURE; /************************************************************************ * Method: * IHXRTSPClientProtocol::SendKeepAlive * Purpose: * Send keep alive request to server */ STDMETHOD(SendKeepAlive) (THIS) PURE; /************************************************************************ * Method: * IHXRTSPClientProtocol::GetPacket * Purpose: * Get data packet from transport layer */ STDMETHOD(GetPacket) (THIS_ UINT16 uStreamNumber, REF(IHXPacket*) pPacket ) PURE; STDMETHOD(StartPackets) (THIS_ UINT16 uStreamNumber ) PURE; STDMETHOD(StopPackets) (THIS_ UINT16 uStreamNumber ) PURE; STDMETHOD(SetProxy) (THIS_ const char* pProxyHost, UINT16 proxyPort ) PURE; STDMETHOD(SetResponse) (THIS_ IHXRTSPClientProtocolResponse* pResp ) PURE; STDMETHOD(InitSockets) (THIS) PURE; STDMETHOD(GetCurrentBuffering) (THIS_ UINT16 uStreamNumber, REF(INT64) llLowestTimestamp, REF(INT64) llHighestTimestamp, REF(UINT32) ulNumBytes, REF(BOOL) bDone) PURE; STDMETHOD(SeekFlush) (THIS) PURE; STDMETHOD_(BOOL, IsDataReceived) (THIS) PURE; STDMETHOD_(BOOL,IsSourceDone) (THIS) PURE; /* * XXX...The following 3 functions had better be removed under * full IRMA */ STDMETHOD_(IHXPendingStatus*, GetPendingStatus) (THIS) PURE; STDMETHOD_(IHXStatistics*, GetStatistics) (THIS) PURE; STDMETHOD_(BOOL, HttpOnly) (THIS) PURE; /***************************************** * Methods specific to TNG/ASM transport * */ STDMETHOD(Subscribe) (THIS_ CHXSimpleList* pSubscriptions /* RTSPSubscription */ ) PURE; STDMETHOD(Unsubscribe) (THIS_ CHXSimpleList* pUnsubscriptions /* RTSPSubscription */ ) PURE; STDMETHOD(RuleChange) (THIS_ CHXSimpleList* pChanges) PURE; STDMETHOD(BackChannelPacketReady) (THIS_ IHXPacket* pPacket) PURE; STDMETHOD(SendRTTRequest) (THIS) PURE; STDMETHOD(SendBWReport) (THIS_ INT32 aveBandwidth, INT32 packetLoss, INT32 bandwidthWanted ) PURE; STDMETHOD(SetFirstSeqNum) (THIS_ UINT16 uStreamNumber, UINT16 uSeqNum ) PURE; STDMETHOD(SetRTPInfo) (THIS_ UINT16 uStreamNumber, UINT16 uSeqNum, UINT32 ulRTPTime, RTPInfoEnum info ) PURE; STDMETHOD(SetConnectionTimeout) (THIS_ UINT32 uSeconds ) PURE; /* This is a quick fix to correctly display UDPMode in the client. * We currently always show Multicast since the rtsp library * never tells the reponse object that the protocol that actually * succeeded is UDP and not Mutlicast. * * This is an interim soluton. * Correct solution is to add transport type in HandleSetupResponse(). * Will do after B2 since I do not break any builds - XXXRA * * MULTICAST_MODE = 1, * UDP_MODE = 2, * TCP_MODE = 3, * */ STDMETHOD_(UINT16, GetProtocolType) (THIS) PURE; STDMETHOD(InitPacketFilter) (THIS_ RawPacketFilter* pFilter) PURE;};DECLARE_INTERFACE_(IHXRTSPTransportResponse, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; /* * PacketReady() is for control packets only. Data packets should * be retrieved with the getPacket() call exported by RTSPTransport */ STDMETHOD(PacketReady) (THIS_ HX_RESULT status, const char* pSessionID, IHXPacket* pPacket ) PURE; STDMETHOD(OnRTTRequest) (THIS_ HX_RESULT status, const char* pSessionID ) PURE; STDMETHOD(OnRTTResponse) (THIS_ HX_RESULT status, const char* pSessionID, UINT32 ulSecs, UINT32 ulUSecs ) PURE; STDMETHOD(OnBWReport) (THIS_ HX_RESULT status, const char* pSessionID, INT32 aveBandwidth, INT32 packetLoss, INT32 bandwidthWanted ) PURE; STDMETHOD(OnCongestion) (THIS_ HX_RESULT status, const char* pSessionID, INT32 xmitMultiplier, INT32 recvMultiplier ) PURE; STDMETHOD(OnStreamDone) (THIS_ HX_RESULT status, UINT16 uStreamNumber ) PURE; STDMETHOD(OnSourceDone) (THIS) PURE; STDMETHOD(OnACK) (THIS_ HX_RESULT status, RTSPResendBuffer* pResendBuffer, UINT16 uStreamNumber, const char* pSessionID, UINT16* pAckList, UINT32 uAckListCount, UINT16* pNakList, UINT32 uNakListCount ) PURE; STDMETHOD(OnProtocolError) (THIS_ HX_RESULT status ) PURE;};DECLARE_INTERFACE_(IHXRTSPServerTransportResponse, IHXRTSPTransportResponse){ STDMETHOD(OnRTTRequest) (THIS_ HX_RESULT status, const char* pSessionID ) PURE; STDMETHOD(OnRTTResponse) (THIS_ HX_RESULT status, const char* pSessionID, UINT32 ulSecs, UINT32 ulUSecs ) PURE; STDMETHOD(OnBWReport) (THIS_ HX_RESULT status, const char* pSessionID, INT32 aveBandwidth, INT32 packetLoss, INT32 bandwidthWanted ) PURE; STDMETHOD(OnCongestion) (THIS_ HX_RESULT status, const char* pSessionID, INT32 xmitMultiplier, INT32 recvMultiplier ) PURE; STDMETHOD(OnStreamDone) (THIS_ HX_RESULT status, UINT16 uStreamNumber ) PURE; STDMETHOD(OnSourceDone) (THIS) PURE; STDMETHOD(OnACK) (THIS_ HX_RESULT status, RTSPResendBuffer* pResendBuffer, UINT16 uStreamNumber, const char* pSessionID, UINT16* pAckList, UINT32 uAckListCount, UINT16* pNakList, UINT32 uNakListCount ) PURE; STDMETHOD(OnProtocolError) (THIS_ HX_RESULT status ) PURE;};DECLARE_INTERFACE_(IHXRTSPClientTransportResponse, IHXRTSPTransportResponse){ STDMETHOD(OnRTTRequest) (THIS_ HX_RESULT status, const char* pSessionID ) PURE; STDMETHOD(OnRTTResponse) (THIS_ HX_RESULT status, const char* pSessionID, UINT32 ulSecs, UINT32 ulUSecs ) PURE; STDMETHOD(OnBWReport) (THIS_ HX_RESULT status, const char* pSessionID, INT32 aveBandwidth, INT32 packetLoss, INT32 bandwidthWanted ) PURE; STDMETHOD(OnCongestion) (THIS_ HX_RESULT status, const char* pSessionID, INT32 xmitMultiplier, INT32 recvMultiplier ) PURE; STDMETHOD(OnStreamDone) (THIS_ HX_RESULT status, UINT16 uStreamNumber ) PURE; /* This only indicates that all packets have been received from the * server. We still need to read packets from the transport buffer * StreamDone will indicate when there are no more packets to be * read from Transport buffer */ STDMETHOD(OnSourceDone) (THIS) PURE; STDMETHOD(OnACK) (THIS_ HX_RESULT status, RTSPResendBuffer* pResendBuffer, UINT16 uStreamNumber, const char* pSessionID, UINT16* pAckList, UINT32 uAckListCount, UINT16* pNakList, UINT32 uNakListCount ) PURE; STDMETHOD(OnProtocolError) (THIS_ HX_RESULT status ) PURE;};DEFINE_GUID(IID_IHXPacketResend, 0x00000400, 0xb4c8, 0x11d0, 0x99, 0x95, 0x0, 0xa0, 0x24, 0x8d, 0xa5, 0xf0);DECLARE_INTERFACE_(IHXPacketResend, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; STDMETHOD(OnPacket) (THIS_ UINT16 uStreamNumber, BasePacket** ppPacket) PURE;};DEFINE_GUID(IID_IHXRTSPContext, 0x00000401, 0xb4c8, 0x11d0, 0x99, 0x95, 0x0, 0xa0, 0x24, 0x8d, 0xa5, 0xf0);DECLARE_INTERFACE_(IHXRTSPContext, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; STDMETHOD(GetCurrentSequenceNumber) ( THIS_ REF(UINT32) ulSequenceNumber ) PURE; STDMETHOD(GetSessionID) ( THIS_ REF(IHXBuffer*) pIHXBufferSessionID ) PURE;};DEFINE_GUID(IID_IHXTimeStampSync, 0x00000402, 0xb4c8, 0x11d0, 0x99, 0x95, 0x0, 0xa0, 0x24, 0x8d, 0xa5, 0xf0);DECLARE_INTERFACE_(IHXTimeStampSync, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; STDMETHOD(SetInitialTS(const char* pSessionID, UINT32 ulInitialTS)) PURE; STDMETHOD_(BOOL, NeedInitialTS(const char* pSessionID)) PURE; STDMETHOD_(UINT32, GetInitialTS(const char* pSessionID)) PURE; STDMETHOD(ClearInitialTS(const char* pSessionID)) PURE;};DEFINE_GUID(IID_IHXTransportSyncServer, 0x16b420d0, 0xf4d0, 0x11d5, 0xaa, 0xc0, 0x0, 0x1, 0x2, 0x51, 0xb3, 0x40);DECLARE_INTERFACE_(IHXTransportSyncServer, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; STDMETHOD(DistributeSyncAnchor) (THIS_ ULONG32 ulHXTime, ULONG32 ulNTPTime) PURE; STDMETHOD(DistributeSync) (ULONG32 ulHXTime, LONG32 lHXTimeOffset) PURE; STDMETHOD(DistributeStartTime) (ULONG32 ulHXRefTime) PURE;};DECLARE_INTERFACE_(IHXRTSPServerPauseResponse, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; STDMETHOD(HandlePauseRequest) (THIS_ const char* pSessionID, UINT32 ulPausePoint) PURE;};#endif /* _RTSPIF_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -