rtsptran.h
来自「symbian 下的helix player源代码」· C头文件 代码 · 共 440 行 · 第 1/2 页
H
440 行
virtual void Done () = 0;
virtual void Reset () = 0;
virtual void Restart () = 0;
virtual RTSPTransportTypeEnum tag () = 0;
virtual void addStreamInfo (RTSPStreamInfo* pStreamInfo,
UINT32 ulBufferDepth = TRANSPORT_BUF_DURATION_UNDEF);
virtual void setSessionID (const char* pSessionID);
virtual HX_RESULT sendPacket (BasePacket* pPacket) = 0;
virtual HX_RESULT sendToResendBuffer(BasePacket* pPacket) { return HXR_OK; }
virtual HX_RESULT handlePacket (IHXBuffer* pBuffer) = 0;
virtual HX_RESULT handleMasterSync (ULONG32 ulHXTime, LONG32 lHXOffsetToMaster)
{ return HXR_OK; }
virtual HX_RESULT anchorSync (ULONG32 ulHXTime, ULONG32 ulNTPTime)
{ return HXR_OK; }
virtual HX_RESULT releasePackets () { return HXR_OK; }
virtual HX_RESULT streamDone (UINT16 streamNumber) = 0;
virtual IHXUDPSocket* getUDPSocket ();
virtual IHXUDPSocket* getMulticastSocket ();
virtual HX_RESULT sendNAKPacket (UINT16 uStreamNumber,
UINT16 uBeingSeqNo,
UINT16 uEndSeqNo)
{ return HXR_OK; }
virtual BOOL isNullSetup() { return FALSE; }
virtual BOOL isRTP() { return FALSE; }
virtual BOOL isReflector() { return FALSE; }
// BCM
virtual RTSPStreamHandler* GetStreamHandler(void) { HX_ASSERT(FALSE); return NULL;}
virtual void SetStreamHandler (RTSPStreamHandler* pHandler) {;}
// virtual void MulticastSetup (RTSPTransport* pTrans) {}
virtual void MulticastSetup (RTSPStreamHandler* pHandler) {}
virtual void JoinMulticast (UINT32 ulAddress, UINT32 ulPort,
IHXUDPSocket* pUDP) {};
virtual BOOL isBCM(void) { return FALSE; }
// end BCM
UINT16 getSeqNum (UINT16 streamNumber);
UINT32 getTimestamp (UINT16 streamNumber);
// HX_RESULT setMarkerRule (UINT16 ruleNumber);
virtual HX_RESULT setFirstSeqNum (UINT16 streamNumber,
UINT16 seqNum);
virtual void setFirstTimeStamp (UINT16 uStreamNumber, UINT32 ulTS,
BOOL bIsRaw = FALSE);
// only in RTPTransport...
virtual void notifyEmptyRTPInfo(void) {;}
virtual void setPlayRange (UINT32 ulFrom, UINT32 ulTo);
virtual HX_RESULT setFirstPlayTime (Timeval* pTv) {return HXR_OK;};
HX_RESULT resetFlags (UINT16 streamNumber);
HX_RESULT getPacket (UINT16 uStreamNumber,
IHXPacket*& pPacket);
virtual HX_RESULT startPackets (UINT16 uStreamNumber);
virtual HX_RESULT stopPackets (UINT16 uStreamNumber);
HX_RESULT storePacket (IHXPacket* pPacket,
UINT16 uStreamNumber,
UINT16 uSeqNo,
UINT16 uReliableSeqNo,
BOOL isReliable);
HX_RESULT packetReady (HX_RESULT status,
RTSPStreamData* pStreamData,
IHXPacket* pPacket);
HX_RESULT packetReady (HX_RESULT status,
UINT16 uStreamNumber,
IHXPacket* pPacket);
RTSPTransportBuffer* getTransportBuffer(UINT16 uStreamNumber);
RTSPResendBuffer* getResendBuffer(UINT16 streamNumber);
HX_RESULT getStatus (UINT16& uStatusCode,
IHXBuffer*& pStatusDesc,
UINT16& ulPercentDone);
HX_RESULT GetCurrentBuffering(UINT16 uStreamNumber,
INT64& llLowestTimestamp,
INT64& llHighestTimestamp,
UINT32& ulNumBytes,
BOOL& bDone);
HX_RESULT SeekFlush (UINT16 uStreamNumber);
BOOL IsDataReceived() {return m_bIsReceivedData;};
BOOL IsSourceDone(void);
HX_RESULT initializeStatistics (UINT32 ulRegistryID);
HX_RESULT SetStatistics (UINT16 uStreamNumber, STREAM_STATS* pStats);
HX_RESULT updateStatistics (BOOL bUseRegistry = TRUE);
HX_RESULT UpdateRegistry (UINT32 ulStreamNumber,
UINT32 ulRegistryID);
INT64 getBytesSent () {return m_lBytesSent;}
UINT32 getPacketsSent () {return m_ulPacketsSent;}
HX_RESULT playReset ();
virtual HX_RESULT pauseBuffers ();
virtual HX_RESULT resumeBuffers ();
HX_RESULT Init (IUnknown* pContext);
HX_RESULT SetResendBufferDepth (UINT32 uMilliseconds);
BOOL IsInitialized ();
BOOL IsUpdated ();
UINT32 wrapSequenceNumber ();
void CheckForSourceDone (UINT16 uStreamNumber);
void HandleBufferError ();
IHXScheduler* GetScheduler(void) {return m_pScheduler;};
virtual BOOL SupportsPacketAggregation() { return FALSE; }
virtual HX_RESULT sendPackets (BasePacket** pPacket) { return HXR_NOTIMPL; }
/*XXXMC
*Special-case handling for PV clients
*/
virtual HX_RESULT sendPVHandshakeResponse(UINT8* pPktPayload)
{ return HXR_NOTIMPL; }
//XXXGH...Fix this stuff left over from Ogre
BOOL m_bHackedRecordFlag;
IHXPlayerState* m_pPlayerState;
void FilterPacket(IHXPacket* pPacket);
void SetFilterResponse(RawPacketFilter*);
BOOL isSparseStream(UINT16 uStreamNumber);
void GetContext(IUnknown*& pContext);
void EnterPrefetch(void) { m_bPrefetch = TRUE; };
void LeavePrefetch(void);
void EnterFastStart(void);
void LeaveFastStart(void);
inline BOOL HasPlayRequestBeenSent() { return m_bPlayRequestSent; }
inline void SetPlayRequestSent(BOOL bValue) { m_bPlayRequestSent = bValue; }
UINT32 GetPacketsSent() { return m_ulPacketsSent; }
INT64 GetBytesSent() { return m_lBytesSent; }
UINT32 GetTotalSuccessfulResends() { return m_ulTotalSuccessfulResends; }
UINT32 GetTotalFailedResends() { return m_ulTotalFailedResends; }
UINT32 GetSendingTime() { return m_ulSendingTime; }
protected:
IUnknown* m_pContext;
IHXCommonClassFactory* m_pCommonClassFactory;
IHXScheduler* m_pScheduler;
IHXRTSPTransportResponse* m_pResp;
IHXRegistry* m_pRegistry;
IHXInternalReset* m_pInternalReset;
IHXSourceBufferingStats2* m_pSrcBufferStats;
CHXString m_sessionID;
RTSPStreamHandler* m_pStreamHandler;
BOOL m_bIsSource;
UINT32 m_ulRegistryID;
UINT32 m_ulPacketsSent;
INT64 m_lBytesSent;
UINT32 m_ulStartTime;
UINT32 m_ulPlayRangeFrom;
UINT32 m_ulPlayRangeTo;
BOOL m_bIsInitialized;
BOOL m_bIsUpdated;
BOOL m_bPrefetch;
BOOL m_bFastStart;
BOOL m_bIsReceivedData;
BOOL m_bSourceDone;
UINT32 m_wrapSequenceNumber;
// actual multicast sender
BOOL m_bMulticast;
RawPacketFilter* m_pPacketFilter;
CHXSimpleList* m_pClientPacketList;
BOOL m_bPlayRequestSent;
UINT32 m_ulTotalSuccessfulResends;
UINT32 m_ulTotalFailedResends;
UINT32 m_ulSendingTime;
BOOL m_drop_packets;
UINT32 m_packets_since_last_drop;
BOOL m_bSkipTimeAdjustment;
#ifdef RDT_MESSAGE_DEBUG
BOOL m_bRDTMessageDebug;
CHXString m_RDTmessageDebugFileName;
void RDTmessageFormatDebugFileOut(const char* fmt, ...);
#endif // RDT_MESSAGE_DEBUG
};
inline IHXUDPSocket*
RTSPTransport::getUDPSocket()
{
return 0;
}
inline IHXUDPSocket*
RTSPTransport::getMulticastSocket()
{
return 0;
}
inline BOOL
RTSPTransport::IsInitialized()
{
return m_bIsInitialized;
}
inline BOOL
RTSPTransport::IsUpdated()
{
return m_bIsUpdated;
}
inline UINT32
RTSPTransport::wrapSequenceNumber()
{
return m_wrapSequenceNumber;
}
#endif /* ndef _RTSPTRAN_H_ */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?