hxformt.h
来自「symbian 下的helix player源代码」· C头文件 代码 · 共 1,107 行 · 第 1/3 页
H
1,107 行
*
* Interface:
*
* IHXPacketTimeOffsetHandler
*
* Purpose:
*
* Provides methods for handling the changing of a packets timestamp.
*
* IID_IHXPacketTimeOffsetHandler:
*
* {00000F04-0901-11d1-8B06-00A024406D59}
*
*/
DEFINE_GUID(IID_IHXPacketTimeOffsetHandler, 0x00000F04, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
0xa0, 0x24, 0x40, 0x6d, 0x59);
DECLARE_INTERFACE_(IHXPacketTimeOffsetHandler, IUnknown)
{
/*
* IUnknown methods
*/
STDMETHOD(QueryInterface) (THIS_
REFIID riid,
void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
/*
* IHXPacketTimeOffsetHandler methods
*/
/************************************************************************
* Method:
* IHXPacketTimeOffsetHandler::Init
* Purpose:
* Initialize the IHXPacketTimeOffsetHandler and set the response.
* Implementors should look up the MimeType.
*/
STDMETHOD(Init) (THIS_
IHXPacketTimeOffsetHandlerResponse* pResponse,
IHXValues* pHeader,
IUnknown* pContext) PURE;
/************************************************************************
* Method:
* IHXPacketTimeOffsetHandler::SetTimeOffset
* Purpose:
* Called to set the time offset. Uses a bool and a UINT32 instead
* of and INT32 so that the time offset wraps around after 47 days
* instead of 24. bPlus says whether to add or subtract.
*/
STDMETHOD(SetTimeOffset) (THIS_
UINT32 ulTimeOffset,
BOOL bPlus) PURE;
/************************************************************************
* Method:
* IHXPacketTimeOffsetHandler::HandlePacket
* Purpose:
* give the IHXPacketTimeOffsetHandler a packet to modify for the
* time offset.
*/
STDMETHOD(HandlePacket) (THIS_
IHXPacket* pPacket) PURE;
};
/****************************************************************************
*
* Interface:
*
* IHXPacketTimeOffsetHandlerResponse
*
* Purpose:
*
* Provides methods for the IHXPacketTimeOffsetHandler to respond to.
*
* IID_IHXPacketTimeOffsetHandlerResponse:
*
* {00000F05-0901-11d1-8B06-00A024406D59}
*
*/
DEFINE_GUID(IID_IHXPacketTimeOffsetHandlerResponse, 0x00000F05, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
0xa0, 0x24, 0x40, 0x6d, 0x59);
DECLARE_INTERFACE_(IHXPacketTimeOffsetHandlerResponse, IUnknown)
{
/*
* IUnknown methods
*/
STDMETHOD(QueryInterface) (THIS_
REFIID riid,
void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
/*
* IHXPacketTimeOffsetHandler methods
*/
/************************************************************************
* Method:
* IHXPacketTimeOffsetHandler::PacketReady
* Purpose:
* Called by IHXPacketTimeOffsetHandler to pass back the packet
* when it is done with it.
*/
STDMETHOD(TimeOffsetPacketReady) (THIS_
IHXPacket* pPacket) PURE;
};
/****************************************************************************
*
* Interface:
*
* IHXLiveFileFormatInfo
*
* Purpose:
*
* Provides miscellaneous information needed to transmit a live stream.
* Optionally implemented by the file format object.
*
* IID_IHXLiveFileFormatInfo:
*
* {00000F06-0901-11d1-8B06-00A024406D59}
*
*/
DEFINE_GUID(IID_IHXLiveFileFormatInfo, 0x00000F06, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
0xa0, 0x24, 0x40, 0x6d, 0x59);
#undef INTERFACE
#define INTERFACE IHXLiveFileFormatInfo
DECLARE_INTERFACE_(IHXLiveFileFormatInfo, IUnknown)
{
/*
* IUnknown methods
*/
STDMETHOD(QueryInterface) (THIS_
REFIID riid,
void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
/*
* IHXLiveFileFormatInfo methods
*/
/************************************************************************
* Method:
* IHXLiveFileFormatInfo::VerifyFileCompatibility
* Purpose:
* Compares two file headers and returns HXR_OK if these two
* files can be transmitted sequentially in a single live
* presentation.
*/
STDMETHOD(VerifyFileCompatibility) (THIS_
IHXValues* pFileHeader1,
IHXValues* pFileHeader2) PURE;
/************************************************************************
* Method:
* IHXLiveFileFormatInfo::VerifyStreamCompatibility
* Purpose:
* Compares two stream headers and returns HXR_OK if these two
* streams can be transmitted sequentially in a single live
* presentation.
*/
STDMETHOD(VerifyStreamCompatibility) (THIS_
IHXValues* pStreamHeader1,
IHXValues* pStreamHeader2) PURE;
/************************************************************************
* Method:
* IHXLiveFileFormatInfo::IsLiveResendRequired
* 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 IHXSyncFileFormatObject
DECLARE_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 IHXBroadcastLatency
DECLARE_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}
*
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?