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

📄 rtspif.h

📁 著名的 helix realplayer 基于手机 symbian 系统的 播放器全套源代码
💻 H
📖 第 1 页 / 共 3 页
字号:
     *	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 + -