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

📄 rtspclnt.h

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

    STDMETHOD(InitPacketFilter)		(THIS_
					RawPacketFilter* pFilter);

    STDMETHOD(SetResendBufferDepth)	(THIS_
					UINT32 uSeconds);

⌨️ 快捷键说明

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