📄 ppffplin.h
字号:
HX_RESULT GetSocket (UINT32 ulAddr, UINT16 uPort, UINT16 iStream, REF(IHXUDPSocket*) pSock, REF(IHXUDPResponse*) pResp, REF(BOOL) bNewSocket); HX_RESULT HandleRTPMsg (HX_RESULT status, IHXBuffer* pBuf, UINT16 iStream); HX_RESULT HandleRTCPMsg (HX_RESULT status, IHXBuffer* pBuf, UINT16 iStream); HX_RESULT SyncStreams (void); HX_RESULT ProcessFileHeaderCallback(void); BOOL IsFileHeaderReady(CHXPtrArray* prgStreams, REF(UINT32) ulTimeoutVal); UINT32 AssignStreamNumbers(UINT32 ulNumInterfacesReady, CHXPtrArray** ppInterfacesReady); HX_RESULT SwitchToUnicast (void); BOOL GetSourceObj(REF(CPurePlaySource*)pSrc, UINT32 i); BOOL GetStreamObj(REF(CStream*)pStrm, UINT32 i); HX_RESULT Distribute(ULONG32 ulDistributionMode, ULONG32 ulVal1, ULONG32 ulVal2 = 0); // for stats void statistics_cat (char* pStats, UINT32 ulStatsBufLen, LONG32 lData); BOOL GetRAStreamNum (REF(UINT32) ulRAStreamNum); BOOL SendStatistics (void); HX_RESULT BeginPost (CHAR* pszStats);private: /****** Private Class Variables ****************************************/ INT32 m_lRefCount; IUnknown* m_pContext; IHXStreamDescription* m_pStreamDesc; IHXRTPPayloadInfo* m_pRTPInfo; IHXErrorMessages* m_pLog; IHXScheduler* m_pScheduler; IHXRegistry* m_pRegistry; IHXCommonClassFactory* m_pClassFactory; /* * needed for switching to unicast */public: TryUnicast m_tryUnicast; CHXString m_strLastErr;private: IHXFileObject* m_pFileObject; CHXSimpleList* m_pFileBufferList; IHXBuffer* m_pSDPDesc; IHXValues* m_pFileHeader; CHXPtrArray m_rgStreams; CStream* m_pMasterSyncStream; IHXFormatResponse* m_pFFResponse; //PurePlayFFState m_state; BOOL m_bInitialPacket; UINT16 m_uActiveStreams; CallbackHandle m_hFileHeader; ULONG32 m_ulFileHeaderWaitStartTime; ULONG32 m_ulListeningWaitStartTime; BOOL m_bOneMoreTry; // this time out value is taken from the player preference UINT32 m_ulServerTimeout; // this is teaken from SDP if present, otherwise it is assigned the // same value as m_ulServerTimeout UINT32 m_ulFailoverTimeout; UINT16 m_uStatusCode; IHXBuffer* m_pStatusDesc; IHXBuffer* m_pCName; IHXBuffer* m_pUserName; IHXBuffer* m_pTool; IHXBuffer* m_pEmail; BOOL m_bSourceAdmissionClosed; BOOL m_bRMPresentation; BOOL m_bDisableOffsetting; INT32 m_lSmallestTSStrm; ULONG32 m_ulSmallestTS; ULONG32 m_ulHXOffset; ULONG32 m_ulStartTimeMS; UINT32 m_ulFirstTSSent; BOOL m_bFirstPktSent; BOOL m_bFirstPktRcvd; IHXRequest* m_pRequest; INT32 m_lRAStreamNum; BOOL m_bWantClientStats; BOOL m_bAttempMulticast; CHXPtrArray** m_ppInterfacesReady; ULONG32 m_ulNumInterfacesReady; /* * class to deal with multiple NICs. Will be deleted as soon as * we decide a NIC to use... */ class InterfaceManager { public: InterfaceManager(UINT32 ulNumInterfaces); ~InterfaceManager(); /* set it in Host byte order */ void SetInterface(UINT32 ulInterfaceNo, UINT32 ulInterface); CHXPtrArray* GetSession(UINT32 ulInterfaceNo); void SetSession(UINT32 ulInterfaceNo, CHXPtrArray* pSession); UINT32 m_ulNumInterfaces; UINT32* m_pulInterfaces; // holds an CHXPtrArray*s of CPurePlaySource*s CHXPtrArray m_rgInterfaceSessions; }; InterfaceManager* m_pInterfaceMgr; // for stats static const char* zm_pRegistryEntryies[]; #ifdef BW_BASED INT32 m_lRuleNumber;#endif #ifdef _DEBUG BOOL m_bFileHeaderReadyCalled;#endif #ifdef XXXGo_DEBUG FILE* m_file;#endifpublic: PurePlayFFState m_state;public: /****** Public functions************************************************/ HX_RESULT GetLogger(REF(IHXErrorMessages*) pLog); BOOL IsSourceAdmissionClosed() { return m_bSourceAdmissionClosed; } inline PurePlayFFState GetCurrentState(void); BOOL IsRMPresentation(void) { return m_bRMPresentation; } BOOL IsRAStream(UINT32 ulStrmNum); BOOL WantClientStats() { return m_bWantClientStats; } void SetMasterSyncStream(CStream* pSyncStream) { m_pMasterSyncStream = pSyncStream; } CStream* GetMasterSyncStream(void) { return m_pMasterSyncStream; } BOOL HasMasterSyncStream(void) { return (m_pMasterSyncStream != NULL); } // error reporting void ReportError (UINT32 ulErrID, const UINT8 chSeverity, HX_RESULT ulHXCode); void ReportErrorWithFormat (UINT32 ulErrID, REF(CHXString) strText, const UINT8 chSeverity, HX_RESULT ulHXCode);private: HX_RESULT MakeHeader(HX_RESULT status); BOOL GetStreamCountNoTrust(IHXValues** ppHeaders, UINT16 unNumHeader, REF(ULONG32) ulNumStream); BOOL DetermineIfRMPresentation(IHXValues* pFileHeader, IHXValues** ppStrmHeaders, ULONG32 ulNumStreams); BOOL GetSubscriptionBW(IHXValues* pFileHeader, IHXValues** ppStrmHeaders, UINT16 unNumStrmHeaders, REF(UINT32*) pulSubscriptionBW, UINT32 ulNumStreams, IHXBuffer* pBandwidth); BOOL GetRightHeaders(REF(IHXValues**) ppRealHeaders, // out UINT32 ulNumStreams, IHXValues** ppHeaders, UINT32 cHeaders, UINT32* pulSubscriptionBW); // error reporting HX_RESULT GetResourceErrorString(UINT32 ulErrID, REF(CHXString) strErr); void GetDefaultErrorString(UINT32 ulErrID, REF(CHXString) strErr); void ClearFileBufferList(); HX_RESULT AggregateBuffers(REF(IHXBuffer*) rpBuffer);private: /************************************************************************** * Callback to figure out the number of streams */ class CFileHeaderCallback : public IHXCallback { public: CFileHeaderCallback(CPurePlayFileFormat* pFF); ~CFileHeaderCallback(); // *** IUnknown methods *** STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj); STDMETHOD_(ULONG32,AddRef) (THIS); STDMETHOD_(ULONG32,Release) (THIS); STDMETHOD(Func) (THIS); private: INT32 m_lRefCount; CPurePlayFileFormat* m_pFF; }; friend class CFileHeaderCallback; friend class CPurePlaySource;private: /****** Private Static Class Variables *********************************/ static const char* zm_pDescription; static const char* zm_pCopyright; static const char* zm_pMoreInfoURL; static const char* zm_pFileMimeTypes[]; static const char* zm_pFileExtensions[]; static const char* zm_pFileOpenNames[];};_INTERFACE IHXHyperNavigate;class CUnicastCallback: public IHXCallback{public: CUnicastCallback(IHXScheduler* pScheduler, IHXPlayer* pPlayer, IHXHyperNavigate* pHyperNavigate, const char* pURL); ~CUnicastCallback(); // *** IUnknown methods *** STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj); STDMETHOD_(ULONG32,AddRef) (THIS); STDMETHOD_(ULONG32,Release) (THIS); STDMETHOD(Func) (THIS); private: INT32 m_lRefCount; IHXScheduler* m_pScheduler; IHXPlayer* m_pPlayer; IHXHyperNavigate* m_pHyperNavigate; CHXString m_strURL;};#endif // ndef _PPLYPLIN_H_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -