📄 rtspclnt.h
字号:
public IHXStatistics, public IHXResolverResponse, public IHXThinnableSource, public IHXPacketResend, public IHXInterruptSafe, public IHXResendBufferControl, public IHXTransportSyncServer, public IHXTransportBufferLimit{public: RTSPClientProtocol (); ~RTSPClientProtocol (); enum State { INIT, READY, PLAYING, RECORDING }; class UDPResponseHelper: public IHXUDPResponse, public IHXInterruptSafe { private: LONG32 m_lRefCount; UINT16 m_nPort; RTSPClientProtocol* m_pOwner; public: UDPResponseHelper(RTSPClientProtocol* pParent, UINT16 nPort); ~UDPResponseHelper(); /* IUnknown Interfaces */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj); STDMETHOD_(ULONG32,AddRef) (THIS); STDMETHOD_(ULONG32,Release) (THIS); /* * IHXInterruptSafe methods */ STDMETHOD_(BOOL,IsInterruptSafe)(THIS) {return TRUE;}; /* * IHXUDPSocket methods */ STDMETHOD(ReadDone) (THIS_ HX_RESULT status, IHXBuffer* pBuffer, UINT32 ulAddr, UINT16 nPort); }; class ConnectionCheckCallback : public IHXCallback { public: ConnectionCheckCallback(RTSPClientProtocol* pOwner); ~ConnectionCheckCallback(); /* IUnknown Interfaces */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj); STDMETHOD_(ULONG32,AddRef) (THIS); STDMETHOD_(ULONG32,Release) (THIS); STDMETHOD(Func) (THIS); private: LONG32 m_lRefCount; RTSPClientProtocol* m_pOwner; };#ifdef _MACINTOSH class RTSPClientProtocolCallback : public IHXCallback { public: RTSPClientProtocolCallback(RTSPClientProtocol* pOwner); ~RTSPClientProtocolCallback(); /* IUnknown Interfaces */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj); STDMETHOD_(ULONG32,AddRef) (THIS); STDMETHOD_(ULONG32,Release) (THIS); STDMETHOD(Func) (THIS); LONG32 m_lRefCount; RTSPClientProtocol* m_pOwner; BOOL m_bIsCallbackPending; CallbackHandle m_Handle; IHXValues* m_pPendingRequestHeaders; CHXString m_PendingDescURL; }; friend class RTSPClientProtocolCallback;#endif /* _MACINTOSH */ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj); STDMETHOD_(ULONG32,AddRef) (THIS); STDMETHOD_(ULONG32,Release) (THIS); /* * IHXRTSPClientProtocol methods */ STDMETHOD(Init) (THIS_ IUnknown* pContext, const char* pHostName, UINT16 foreignPort, IHXRTSPClientProtocolResponse* pClient, UINT32 initializationType, IHXValues* pSessionHeaders, IHXValues* pInfo, BOOL bHTTPCloak, UINT16 uCloakPort, BOOL bNoReuseConnection); STDMETHOD(SetBuildVersion) (THIS_ const char* pVersionString); STDMETHOD(Done) (THIS); STDMETHOD(SendStreamDescriptionRequest) (THIS_ const char* pURL, IHXValues* pRequestHeaders); STDMETHOD(SendStreamRecordDescriptionRequest) (THIS_ const char* pURL, IHXValues* pFileHeader, CHXSimpleList* pStreams, IHXValues* pRequestHeaders); STDMETHOD(SendSetupRequest) ( THIS_ RTSPTransportType* pTransType, UINT16 nTransTypes, IHXValues* pIHXValuesRequestHeaders ); STDMETHOD(SendPlayRequest) (THIS_ UINT32 lFrom, UINT32 lTo, CHXSimpleList* pSubscriptions); STDMETHOD(SendRecordRequest) (THIS); STDMETHOD(SendPauseRequest) (THIS); STDMETHOD(SendResumeRequest) (THIS); STDMETHOD(SendTeardownRequest) (THIS); STDMETHOD(SendSetParameterRequest) (THIS_ UINT32 lParamType, const char* pParamName, IHXBuffer* pParamValue); STDMETHOD(SendSetParameterRequest) (THIS_ const char* pParamName, const char* pParamValue, const char* pMimeType, const char* pContent); STDMETHOD(SendGetParameterRequest) (THIS_ UINT32 lParamType, const char* pParamName); STDMETHOD(SendPacket) (THIS_ BasePacket* pPacket); STDMETHOD(SendStreamDone) (THIS_ UINT16 streamNumber); STDMETHOD(SendPlayerStats) (THIS_ const char* pStats); STDMETHOD(SendKeepAlive) (THIS); STDMETHOD(GetPacket) (THIS_ UINT16 uStreamNumber, REF(IHXPacket*) pPacket); STDMETHOD(StartPackets) (THIS_ UINT16 uStreamNumber); STDMETHOD(StopPackets) (THIS_ UINT16 uStreamNumber); STDMETHOD(SetProxy) (THIS_ const char* pProxyHost, UINT16 proxyPort); STDMETHOD(SetResponse) (THIS_ IHXRTSPClientProtocolResponse* pResp); /* * IHXThinnableSource methods. */ /************************************************************************ * Method: * IHXThinnableSource::DropByN * Purpose: * * Implemented by protocols that allow infinite thinnability through * LimitBandwidthByDropping */ STDMETHOD(LimitBandwidthByDropping) (THIS_ UINT32 ulStreamNo, UINT32 ulBandwidthLimit); STDMETHOD(SetDeliveryBandwidth) (THIS_ UINT32 ulBandwidth, UINT32 ulMsBackoff); /* * XXX...The following 3 functions had better be removed under * full IRMA */ STDMETHOD_(IHXPendingStatus*, GetPendingStatus) (THIS); STDMETHOD_(IHXStatistics*, GetStatistics) (THIS); STDMETHOD_(BOOL, HttpOnly) (THIS); STDMETHOD(Subscribe) (THIS_ CHXSimpleList* pSubscriptions); STDMETHOD(Unsubscribe) (THIS_ CHXSimpleList* pUnsubscriptions); STDMETHOD(RuleChange) (THIS_ CHXSimpleList* pRuleChanges); STDMETHOD(BackChannelPacketReady) (THIS_ IHXPacket* pPacket); STDMETHOD(SendRTTRequest) (THIS); STDMETHOD(SendBWReport) (THIS_ INT32 aveBandwidth, INT32 packetLoss, INT32 bandwidthWanted); STDMETHOD(SetFirstSeqNum) (THIS_ UINT16 uStreamNumber, UINT16 uSeqNum); STDMETHOD(SetRTPInfo) (THIS_ UINT16 uStreamNumber, UINT16 uSeqNum, UINT32 ulRTPTime, RTPInfoEnum info ); STDMETHOD(InitSockets) (THIS); STDMETHOD(GetCurrentBuffering) (THIS_ UINT16 uStreamNumber, REF(INT64) llLowestTimestamp, REF(INT64) llHighestTimestamp, REF(UINT32) ulNumBytes, REF(BOOL) bDone); STDMETHOD(SeekFlush) (THIS); STDMETHOD_(BOOL, IsDataReceived) (THIS); STDMETHOD_(BOOL,IsSourceDone) (THIS); /* * IHXInterruptSafe methods */ STDMETHOD_(BOOL,IsInterruptSafe) (THIS) {return TRUE;}; /* * IHXRTSPClientTransportResponse methods */ STDMETHOD(PacketReady) (THIS_ HX_RESULT status, const char* pSessionID, IHXPacket* pPacket); STDMETHOD(OnRTTRequest) (THIS_ HX_RESULT status, const char* pSessionID ); STDMETHOD(OnRTTResponse) (THIS_ HX_RESULT status, const char* pSessionID, UINT32 ulSecs, UINT32 ulUSecs); STDMETHOD(OnBWReport) (THIS_ HX_RESULT status, const char* pSessionID, INT32 aveBandwidth, INT32 packetLoss, INT32 bandwidthWanted ); STDMETHOD(OnCongestion) (THIS_ HX_RESULT status, const char* pSessionID, INT32 xmitMultiplier, INT32 recvMultiplier); STDMETHOD(OnACK) (THIS_ HX_RESULT status, RTSPResendBuffer* pResendBuffer, UINT16 uStreamNumber, const char* pSessionID, UINT16* pAckList, UINT32 uAckListCount, UINT16* pNakList, UINT32 uNakListCount); STDMETHOD(OnStreamDone) (THIS_ HX_RESULT status, UINT16 uStreamNumber); STDMETHOD(OnSourceDone) (THIS); STDMETHOD(OnProtocolError) (THIS_ HX_RESULT status); /* * IHXPendingStatus methods */ STDMETHOD(GetStatus) (THIS_ REF(UINT16) uStatusCode, REF(IHXBuffer*) pStatusDesc, REF(UINT16) ulPercentDone); /* * IHXResolverResponse methods */ STDMETHOD(GetHostByNameDone) (THIS_ HX_RESULT status, UINT32 ulAddr); /* * IHXStatistics methods */ STDMETHOD (InitializeStatistics) (THIS_ UINT32 /*IN*/ ulRegistryID); STDMETHOD (UpdateStatistics) (THIS); STDMETHOD(OnPacket) (THIS_ UINT16 uStreamNumber, BasePacket** ppPacket); STDMETHOD(SetConnectionTimeout) (THIS_ UINT32 uSeconds); STDMETHOD_(UINT16, GetProtocolType) (THIS) {return m_uProtocolType;};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -