qtpktasm.h
来自「symbian 下的helix player源代码」· C头文件 代码 · 共 112 行
H
112 行
/****************************************************************************
*
* $Id: qtpktasm.h,v 1.1 2003/03/30 22:17:13 milko Exp $
*
* Copyright (C) 1995-1999 RealNetworks, Inc. All rights reserved.
*
* http://www.real.com/devzone
*
* This program contains proprietary
* information of Progressive Networks, Inc, and is licensed
* subject to restrictions on use and distribution.
*
*
* Packet Assembler
*
*/
#ifndef _QTPKTASM_H_
#define _QTPKTASM_H_
/****************************************************************************
* Defines
*/
/****************************************************************************
* Includes
*/
#include "hxcom.h"
#include "hxtypes.h"
#include "hxcomm.h"
#include "qttrack.h"
class CQTTrack;
class CQTRTPSample;
class CQTHintTrack;
/****************************************************************************
*
* Class:
* CQTPacketAssembler
*
* Purpose:
* Implements Quick Time Hint Track Packet Assembler
*/
class CQTPacketAssembler : public IUnknown
{
public:
/*
* Constructor/Destructor
*/
CQTPacketAssembler(void);
~CQTPacketAssembler();
/*
* Main Interface
*/
HX_RESULT Init(CQTFileFormat* pFileFormat);
HX_RESULT AssemblePacket( CQTRTPSample* pSample,
CQTHintTrack* pHintTrack);
HX_RESULT SegmentReady( HX_RESULT status,
IHXBuffer* pBuffer);
HX_RESULT SegmentReady( HX_RESULT status,
IHXBuffer* pBuffer,
ULONG32 ulOffset,
ULONG32 ulSize);
/*
* IUnknown methods
*/
STDMETHOD (QueryInterface ) (THIS_
REFIID ID,
void** ppInterfaceObj);
STDMETHOD_(UINT32, AddRef ) (THIS);
STDMETHOD_(UINT32, Release) (THIS);
private:
HX_RESULT MakePacket(IHXBuffer* pBuffer = NULL);
inline HX_RESULT LoadPacket(void);
inline CQTTrack* FindTrackByRefIdx(UINT8 uRefIdx);
inline BOOL NeedToSkipPacket(void);
HX_RESULT AddSegmentToPacket(HX_RESULT status,
IHXBuffer* pBuffer,
UINT8* pData,
ULONG32 ulOffset,
ULONG32 ulSize);
HX_RESULT HandleAsyncFailure(HX_RESULT status);
CQTRTPSample* m_pSample;
CQTHintTrack* m_pHintTrack;
CQTTrack* m_pDataTrack;
IHXCommonClassFactory* m_pClassFactory;
CQTFileFormat* m_pFileFormat;
IHXPacket* m_pPacket;
UINT8* m_pCurrentSegmentStart;
ULONG32 m_ulCurrentSegmentSize;
UINT16 m_ulCurrentSegmentIdx;
UINT16 m_ulSegmentFragments;
LONG32 m_lRefCount;
};
#endif // _QTPKTASM_H_
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?