qtpktasmstub.cpp

来自「symbian 下的helix player源代码」· C++ 代码 · 共 124 行

CPP
124
字号
/****************************************************************************
 * 
 *  $Id: qtpktasmstub.cpp,v 1.5 2003/08/01 22:36:56 jbloedow 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
 *
 */

/****************************************************************************
 *  Includes
 */
#define QTASM_MAX_SEGMENT_FRAG   20

/****************************************************************************
 *  Includes
 */
#include "qtffplin.h"
#include "qtpktasm.h"
#include "qtffrefcounter.h"

/****************************************************************************
 *  Class CQTPacketAssembler
 */
/****************************************************************************
 *  Constructor/Destructor
 */
CQTPacketAssembler::CQTPacketAssembler(void)
    : m_lRefCount(0)
    , m_pSample(NULL)
    , m_pHintTrack(NULL)
    , m_pDataTrack(NULL)
    , m_pClassFactory(NULL)
    , m_pFileFormat(NULL)
    , m_pPacket(NULL)
    , m_pCurrentSegmentStart(NULL)
    , m_ulCurrentSegmentSize(0)
    , m_ulCurrentSegmentIdx(0)
    , m_ulSegmentFragments(0)
{
    g_nRefCount_qtff++;
}

CQTPacketAssembler::~CQTPacketAssembler()
{
    g_nRefCount_qtff--;
}

/****************************************************************************
 *  Main Interface
 */
/****************************************************************************
 *  Init
 */
HX_RESULT CQTPacketAssembler::Init(CQTFileFormat* pFileFormat)
{
    return HXR_OK;
}

/****************************************************************************
 *  SegmentReady
 */
HX_RESULT CQTPacketAssembler::SegmentReady(HX_RESULT status,
					   IHXBuffer *pBuffer,
					   ULONG32 ulOffset,
					   ULONG32 ulSize)
{
    return HXR_NOTIMPL;
}


/****************************************************************************
 *  IUnknown methods
 */
/////////////////////////////////////////////////////////////////////////
//  Method:
//	IUnknown::QueryInterface
//
STDMETHODIMP CQTPacketAssembler::QueryInterface(REFIID riid, void** ppvObj)
{
    if (IsEqualIID(riid, IID_IUnknown))
    {
	AddRef();
	*ppvObj = this;
	return HXR_OK;
    }

    *ppvObj = NULL;

    return HXR_NOINTERFACE;
}

/////////////////////////////////////////////////////////////////////////
//  Method:
//	IUnknown::AddRef
//
STDMETHODIMP_(ULONG32) CQTPacketAssembler::AddRef()
{
    return InterlockedIncrement(&m_lRefCount);
}

/////////////////////////////////////////////////////////////////////////
//  Method:
//	IUnknown::Release
//
STDMETHODIMP_(ULONG32) CQTPacketAssembler::Release()
{
    if (InterlockedDecrement(&m_lRefCount) > 0)
    {
        return m_lRefCount;
    }

    delete this;
    return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?