📄 hxformt.h
字号:
* Purpose: * Returns TRUE if this stream requires the latest packet to be * resent periodically in a live presentation. */ STDMETHOD_(BOOL,IsLiveResendRequired) (THIS_ UINT16 unStreamNumber) PURE; /************************************************************************ * Method: * IHXLiveFileFormatInfo::GetResendBitrate * Purpose: * If periodic live resends are required for this stream, this * method returns the rate at which we should resend packets. The * resend rate is measured in bits per second. */ STDMETHOD(GetResendBitrate) (THIS_ UINT16 unStreamNumber, REF(UINT32) ulBitrate) PURE; /************************************************************************ * Method: * IHXLiveFileFormatInfo::GetResendDuration * Purpose: * If periodic live resends are required for this stream, this * method returns the number of milliseconds for which this packet * should be resent. */ STDMETHOD(GetResendDuration) (THIS_ IHXPacket* pPacket, REF(UINT32) ulDuration) PURE; /************************************************************************ * Method: * IHXLiveFileFormatInfo::FormResendPacket * Purpose: * Forms a live resend packet based upon the original packet passed * as the first parameter. This allows the file format plugin to * make resend packets distinguishable from original packets. */ STDMETHOD(FormResendPacket) (THIS_ IHXPacket* pOriginalPacket, REF(IHXPacket*) pResendPacket) PURE;};/**************************************************************************** * * Interface: * * IHXSyncFileFormatObject * * Purpose: * * Simple syncronized file format interface * * IID_IHXSyncFileFormatObject: * * {00000F0C-0901-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXSyncFileFormatObject, 0x00000F0C, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#define CLSID_IHXSyncFileFormatObject IID_IHXSyncFileFormatObject#undef INTERFACE#define INTERFACE IHXSyncFileFormatObjectDECLARE_INTERFACE_(IHXSyncFileFormatObject, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; /* * IHXSyncFileFormatObject methods */ STDMETHOD(GetFileFormatInfo) (THIS_ REF(const char**) /*OUT*/ pFileMimeTypes, REF(const char**) /*OUT*/ pFileExtensions, REF(const char**) /*OUT*/ pFileOpenNames ) PURE; STDMETHOD(InitFileFormat) (THIS_ IHXRequest* /*IN*/ pRequest) PURE; STDMETHOD(GetFileHeader) (THIS_ REF(IHXValues*) /*OUT*/ pHeader) PURE; STDMETHOD(GetStreamHeader) (THIS_ REF(IHXValues*) /*OUT*/ pStreamHeader, UINT16 /*IN*/ unStreamNumber) PURE; STDMETHOD(GetPacket) (THIS_ REF(IHXPacket*) /*OUT*/ pPacket) PURE; STDMETHOD(Seek) (THIS_ ULONG32 /*IN*/ ulSeekTime) PURE; STDMETHOD(Close) (THIS) PURE;};// $Private:/**************************************************************************** * * Interface: * * IHXBroadcastLatency * * Purpose: * * Provides information on latency requirements of broadcast streams. * Optionally implemented by the broadcast format objec. * * IID_IHXBroadcastLatency: * * {00000F08-0901-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXBroadcastLatency, 0x00000F08, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#undef INTERFACE#define INTERFACE IHXBroadcastLatencyDECLARE_INTERFACE_(IHXBroadcastLatency, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; /* * IHXBroadcastLatency methods */ /************************************************************************ * Method: * IHXBroadcastLatency::GetLatencyRequirements * Purpose: * Get latency reqruirements from broadcast format object. * * ulBackOff: the amount of time in mS that packet flow from * the broadcast format object should backoff when no data is available. * * bUsePreBuffer: TRUE means that there will be some realtime latency * between the packets sent to clients at time now, and the live packets * that are available at time now. FALSE means there will be no realtime * latency. */ STDMETHOD(GetLatencyRequirements) (THIS_ REF(UINT32) ulBackoff, REF(BOOL) bUsePreBuffer) PURE;};/**************************************************************************** * * Interface: * * IHXPayloadFormatObject * * Purpose: * * Object that knows how to properly convert data into a particular * payload format * * IID_IHXPayloadFormatObject: * * {00000F07-0901-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXPayloadFormatObject, 0x00000F07, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#undef INTERFACE#define INTERFACE IHXPayloadFormatObjectDECLARE_INTERFACE_(IHXPayloadFormatObject, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; /* * IHXPayloadFormatObject methods */ STDMETHOD(Init) (THIS_ IUnknown* pContext, BOOL bPacketize) PURE; STDMETHOD(Close) (THIS) PURE; STDMETHOD(Reset) (THIS) PURE; STDMETHOD(SetStreamHeader) (THIS_ IHXValues* pHeader) PURE; STDMETHOD(GetStreamHeader) (THIS_ REF(IHXValues*) pHeader) PURE; STDMETHOD(SetPacket) (THIS_ IHXPacket* pPacket) PURE; STDMETHOD(GetPacket) (THIS_ REF(IHXPacket*) pPacket) PURE; STDMETHOD(Flush) (THIS) PURE;};// $EndPrivate.// $Private:/**************************************************************************** * * Interface: * * IHXBlockFormatObject * * Purpose: * * Object that knows how to properly convert data into a particular * payload format * * IID_IHXBlockFormatObject: * * {00000F08-0901-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXBlockFormatObject, 0x00000F09, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#undef INTERFACE#define INTERFACE IHXBlockFormatObjectDECLARE_INTERFACE_(IHXBlockFormatObject, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; /* * IHXBlockFormatObject methods */ STDMETHOD(SetByteRange) (THIS_ UINT64 ulFrom, UINT64 ulTo) PURE;};typedef enum _HX_CLIENT_MESSAGE_TYPE{ CM_RTSP_UNKNOWN, CM_RTSP_OPTIONS, CM_RTSP_DESCRIBE, CM_RTSP_ANNOUNCE, CM_RTSP_SETUP, CM_RTSP_PLAY, CM_RTSP_PAUSE, CM_RTSP_TEARDOWN, CM_RTSP_GET_PARAMETER, CM_RTSP_SET_PARAMETER, CM_RTSP_REDIRECT, CM_RTSP_RECORD} HX_CLIENT_MESSAGE_TYPE;/**************************************************************************** * * Interface: * * IHXFileFormatHeaderAdvise * * Purpose: * * File format wants notification when headers arrive from client. * * IID_IHXFileFormatHeaderAdvise: * * {00000F0A-0901-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXFileFormatHeaderAdvise, 0x00000F0A, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#undef INTERFACE#define INTERFACE IHXFileFormatHeaderAdviseDECLARE_INTERFACE_(IHXFileFormatHeaderAdvise, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; /* * IHXFileFormatHeaderAdvise methods * * Only implemented for SETUP, other messages may be added later. */ STDMETHOD(OnHeaders) (THIS_ HX_CLIENT_MESSAGE_TYPE pMessageType, IHXValues* pRequestHeaders, IHXFileFormatHeaderAdviseResponse* pResp ) PURE;};/**************************************************************************** * * Interface: * * IHXFileFormatHeaderAdviseResponse * * Purpose: * * Response for RTSP header advise. * * IID_IHXFileFormatHeaderAdviseResponse: * * {00000F0B-0901-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXFileFormatHeaderAdviseResponse, 0x00000F0B, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#undef INTERFACE#define INTERFACE IHXFileFormatHeaderAdviseResponseDECLARE_INTERFACE_(IHXFileFormatHeaderAdviseResponse, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; /* * IHXFileFormatHeaderAdviseResponse methods * * If file format returns error in status, server will disconnect * from client. Optional RTSP error code will be returned to client, * if non-zero; else 461 will be used. */ STDMETHOD(OnHeadersDone) (THIS_ HX_RESULT status, UINT32 ulErrNo) PURE;};typedef enum _HX_PLAY_PARAM{ HX_PLAYPARAM_SCALE // cast ulValues to FIXED32 and use macro} HX_PLAY_PARAM;/**************************************************************************** * * Interface: * * IHXSetPlayParam * * Purpose: * * * * IID_IHXSetPlayParam: * * {0x503c212c-413f-478b-9fc8daa7b145b8a9} * */DEFINE_GUID(IID_IHXSetPlayParam, 0x503c212c, 0x413f, 0x478b, 0x9f, 0xc8, 0xda, 0xa7, 0xb1, 0x45, 0xb8, 0xa9);#undef INTERFACE#define INTERFACE IHXSetPlayParamDECLARE_INTERFACE_(IHXSetPlayParam, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; /* * IHXSetPlayParam methods */ STDMETHOD(SetParam) (THIS_ HX_PLAY_PARAM param, UINT32 ulValue, IHXSetPlayParamResponse* pResp) PURE;};/**************************************************************************** * * Interface: * * IHXSetPlayParamResponse * * Purpose: * * * * IID_IHXSetPlayParamResponse: * * {0x750008af-5588-4838-85faaa203a32c799} * */DEFINE_GUID(IID_IHXSetPlayParamResponse, 0x750008af, 0x5588, 0x4838, 0x85, 0xfa, 0xaa, 0x20, 0x3a, 0x32, 0xc7, 0x99);#undef INTERFACE#define INTERFACE IHXSetPlayParamResponseDECLARE_INTERFACE_(IHXSetPlayParamResponse, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; /* * IHXSetPlayParamResponse methods */ STDMETHOD(SetParamDone) (THIS_ HX_RESULT status, HX_PLAY_PARAM param, UINT32 ulValue) PURE;};/**************************************************************************** * * Interface: * * IHXSeekByPacket * * Purpose: * * * * IID_IHXSeekByPacket: * * {0x171c3c4e-c4ea-46fd-b47b-c3b82dbb9517} * */DEFINE_GUID(IID_IHXSeekByPacket, 0x171c3c4e, 0xc4ea, 0x46fd, 0xb4, 0x7b, 0xc3, 0xb8, 0x2d, 0xbb, 0x95, 0x17);#undef INTERFACE#define INTERFACE IHXSeekByPacketDECLARE_INTERFACE_(IHXSeekByPacket, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; /* * IHXSeekByPacket methods */ STDMETHOD(SeekToPacket) (THIS_ UINT32 ulPacketNumber, IHXSeekByPacketResponse* pResp) PURE;};/**************************************************************************** * * Interface: * * IHXSeekByPacketResponse * * Purpose: * * * * IID_IHXSeekByPacketResponse: * * {0xe978476d-6c99-4dc6-9279-7525c693dc34} * */DEFINE_GUID(IID_IIHXSeekByPacketResponse, 0xe978476d, 0x6c99, 0x4dc6, 0x92, 0x79, 0x75, 0x25, 0xc6, 0x93, 0xdc, 0x34);#undef INTERFACE#define INTERFACE IHXSeekByPacketResponseDECLARE_INTERFACE_(IHXSeekByPacketResponse, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; /* * IHXSeekByPacketResponse methods */ STDMETHOD(SeekToPacketDone) (THIS_ HX_RESULT status, UINT32 ulStartingTimestamp) PURE; };// $EndPrivate.#endif /* _HXFORMT_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -