亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? hxaudstr.cpp

?? symbian 下的helix player源代碼
?? CPP
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
/* ***** BEGIN LICENSE BLOCK *****
 * Source last modified: $Id: hxaudstr.cpp,v 1.17.2.1.2.1 2005/07/08 18:12:41 gwright Exp $
 * 
 * Portions Copyright (c) 1995-2004 RealNetworks, Inc. All Rights Reserved.
 * 
 * The contents of this file, and the files included with this file,
 * are subject to the current version of the RealNetworks Public
 * Source License (the "RPSL") available at
 * http://www.helixcommunity.org/content/rpsl unless you have licensed
 * the file under the current version of the RealNetworks Community
 * Source License (the "RCSL") available at
 * http://www.helixcommunity.org/content/rcsl, in which case the RCSL
 * will apply. You may also obtain the license terms directly from
 * RealNetworks.  You may not use this file except in compliance with
 * the RPSL or, if you have a valid RCSL with RealNetworks applicable
 * to this file, the RCSL.  Please see the applicable RPSL or RCSL for
 * the rights, obligations and limitations governing use of the
 * contents of the file.
 * 
 * Alternatively, the contents of this file may be used under the
 * terms of the GNU General Public License Version 2 or later (the
 * "GPL") in which case the provisions of the GPL are applicable
 * instead of those above. If you wish to allow use of your version of
 * this file only under the terms of the GPL, and not to allow others
 * to use your version of this file under the terms of either the RPSL
 * or RCSL, indicate your decision by deleting the provisions above
 * and replace them with the notice and other provisions required by
 * the GPL. If you do not delete the provisions above, a recipient may
 * use your version of this file under the terms of any one of the
 * RPSL, the RCSL or the GPL.
 * 
 * This file is part of the Helix DNA Technology. RealNetworks is the
 * developer of the Original Code and owns the copyrights in the
 * portions it created.
 * 
 * This file, and the files included with this file, is distributed
 * and made available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY
 * KIND, EITHER EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS
 * ALL SUCH WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY WARRANTIES
 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, QUIET
 * ENJOYMENT OR NON-INFRINGEMENT.
 * 
 * Technology Compatibility Kit Test Suite(s) Location:
 *    http://www.helixcommunity.org/content/tck
 * 
 * Contributor(s):
 * 
 * ***** END LICENSE BLOCK ***** */

#include "hlxclib/stdio.h"
#include "hlxclib/string.h"



#include "hxresult.h"
#include "hxtypes.h"

#include "hxcom.h"
#include "hxengin.h"
#include "ihxpckts.h"
#include "hxausvc.h"
#include "hxrasyn.h"
#include "hxprefs.h"
#include "hxerror.h"

#include "errdbg.h"
#include "chxpckts.h"
#include "hxaudply.h"
#include "hxaudstr.h"
#include "hxaudses.h"
#include "hxmixer.h"
#include "hxaudvol.h"   

#include "hxslist.h"
#include "hxmap.h"
#include "auderrs.h"

#include "hxtick.h"

//#include "rmarsmp.h"
#ifdef _WINDOWS
#include "hxrsmp2.h"
#endif /* _WINDOWS */

//#include "resample.h"   
//#include "interp.h"   
#include "crosfade.h"

#include "hxheap.h"
#ifdef _DEBUG
#undef HX_THIS_FILE             
static const char HX_THIS_FILE[] = __FILE__;
#endif

#define CACHE_INCREMENT_SIZE    2

//#define _TESTING    1
#ifdef _TESTING
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>

#if defined (_WINDOWS) || defined (_WIN32)

#include <io.h>

#endif

int g_log = -1;
#endif

/************************************************************************
 *  Method:
 *              IHXAudioStream::CHXAudioStream()
 *      Purpose:
 *              Constructor. 
 */
CHXAudioStream::CHXAudioStream(CHXAudioPlayer* owner, IUnknown* pContext)
:       m_lRefCount(0)
,       m_wLastError(HXR_OK)
,       m_pResampler(NULL)
,       m_pValues(0)
,       m_bDisableWrite(FALSE)
,       m_ulGranularity(0)
,       m_ulInputBytesPerGran(0)
,       m_ulOutputBytesPerGran(0)
,       m_ulExcessInterpBufferSize(0)
,       m_ulPreviousExcessInterpBufferSize(0)
,       m_pDataList(0)
,       m_pInstantaneousList(0)
,       m_pRAByToTsInList(0)
,       m_pRAByToTsAdjustedList(0)
,       m_bFirstWrite(TRUE)
,       m_bHooksInitialized(FALSE)
,       m_bInited(FALSE)
,       m_bSetupDone(FALSE)
,       m_bAudioFormatKnown(FALSE)
,       m_ulMaxBlockSize(0)
,       m_pResampleBuf(0)
,       m_pTmpResBuf(0)
,       m_pCrossFader(0)
,       m_pCrossFadeBuffer(0)
,       m_pExcessInterpBuffer(NULL)
,       m_pTempInterpBuffer(NULL)
,       m_fVolume((float)1.0)
,       m_bChannelConvert(FALSE)
,       m_pStreamVolume(0)
,       m_uVolume(HX_MAX_VOLUME)
,       m_bMute(FALSE)
,       m_bGotHooks(FALSE)
,       m_llLastWriteTime(0)
,       m_ulFudge(5)
,       m_pInDataPtr(0)
,       m_pOutDataPtr(0)
,       m_pVolumeAdviseSink(0)
,       m_bTobeTimed(TRUE)
,       m_bIsFirstPacket(TRUE)
,       m_bIsLive(FALSE)
,       m_ulBaseTime(0)
,       m_ulLiveDelay(0)
,       m_bSetupToBeDone(FALSE)
,       m_bCrossFadingToBeDone(FALSE)
,       m_pCrossFadeStream(NULL)
,       m_llCrossFadeStartTime(0)
,       m_ulCrossFadeDuration(0)
,       m_bFadeToThisStream(FALSE)
,       m_bFadeAlreadyDone(FALSE)
,       m_bRealAudioStream(FALSE)
,       m_ulLastInputStartTime(0)
,       m_ulLastInputEndTime(0)
,       m_llLastStartTimePlayed(0)
,       m_ulTSRollOver(0)
,       m_bLastWriteTimeUpdated(FALSE)
,       m_pCommonClassFactory(NULL)
,       m_pAvailableBuffers(NULL)
,       m_uCacheSize(CACHE_INCREMENT_SIZE)
,       m_bCacheMayBeGrown(FALSE)
,       m_bDeterminedInitialCacheSize(FALSE)
,       m_bLastNMilliSecsToBeSaved(FALSE)
,       m_ulLastNMilliSeconds(MINIMUM_INITIAL_PUSHDOWN)
,       m_pLastNMilliSecsList(NULL)
,       m_ulLastNHeadTime(0)
,       m_ulLastNTailTime(0)
,       m_eState(E_STOPPED)
,       m_bCanBeRewound(FALSE)
,       m_bAudioDeviceReflushHint(FALSE)
,       m_bIsResumed(FALSE)
,       m_bPlayerPause(FALSE)
,       m_pPreferences(NULL)
,       m_bMayNeedToRollbackTimestamp(FALSE)
{
/*
 *  Left around for future debugging
    static int fnum = 0;

    char fname[80];
 
    sprintf(fname, "c:\\temp\\before.%d", fnum);
    fdbefore = fopen(fname, "ab+");

    sprintf(fname, "c:\\temp\\before.%d.txt", fnum);
    fdbeforetxt = fopen(fname, "w+");

    sprintf(fname, "c:\\temp\\after.%d", fnum);
    fdafter = fopen(fname, "ab+");

    sprintf(fname, "c:\\temp\\after.%d.txt", fnum);
    fdaftertxt = fopen(fname, "w+");

    sprintf(fname, "c:\\temp\\in.%d", fnum);
    fdin = fopen(fname, "ab+");
    
    fnum++;
*/

    m_Owner         = owner;
    if (m_Owner)
    {
        m_Owner->AddRef();
    }

    if (pContext)
    {
        HX_VERIFY(HXR_OK == pContext->QueryInterface(IID_IHXCommonClassFactory, 
                                            (void**) &m_pCommonClassFactory));
    }

#if defined(HELIX_FEATURE_PREFERENCES)
    if (pContext)
    {
        HX_VERIFY(HXR_OK == pContext->QueryInterface(IID_IHXPreferences, (void**) &m_pPreferences));
    }
#endif /* HELIX_FEATURE_PREFERENCES */


    m_pInDataPtr    = new HXAudioData;
    m_pOutDataPtr   = new HXAudioData;
};

/************************************************************************
 *  Method:
 *              IHXAudioStream::~CHXAudioStream()
 *      Purpose:
 *              Destructor. Clean up and set free.
 */
CHXAudioStream::~CHXAudioStream()
{
    ResetStream();
/*
 *  Left around for future debugging
    if (fdbefore)
    {
        fclose(fdbefore);
    }
    if (fdbeforetxt)
    {
        fclose(fdbeforetxt);
    }
    if (fdafter)
    {
        fclose(fdafter);
    }
    if (fdaftertxt)
    {
        fclose(fdaftertxt);
    }
    if (fdin)
    {
        fclose(fdin);
    }
*/
}

/////////////////////////////////////////////////////////////////////////
//  Method:
//      IUnknown::QueryInterface
//  Purpose:
//      Implement this to export the interfaces supported by your
//      object.
//
STDMETHODIMP CHXAudioStream::QueryInterface(REFIID riid, void** ppvObj)
{
	QInterfaceList qiList[] =
	{
		{ GET_IIDHANDLE(IID_IHXAudioStream), (IHXAudioStream*) this },
		{ GET_IIDHANDLE(IID_IHXRealAudioSync), (IHXRealAudioSync*) this },
		{ GET_IIDHANDLE(IID_IHXAudioStream2), (IHXAudioStream2*) this },
		{ GET_IIDHANDLE(IID_IHXCommonClassFactory), (IHXCommonClassFactory*) this },
		{ GET_IIDHANDLE(IID_IHXUpdateProperties), (IHXUpdateProperties*) this },
	};	
    return QIFind(qiList, QILISTSIZE(qiList), riid, ppvObj);
}

/////////////////////////////////////////////////////////////////////////
//  Method:
//      IUnknown::AddRef
//  Purpose:
//      Everyone usually implements this the same... feel free to use
//      this implementation.
//
STDMETHODIMP_(ULONG32) CHXAudioStream::AddRef()
{
    return InterlockedIncrement(&m_lRefCount);
}

/////////////////////////////////////////////////////////////////////////
//  Method:
//      IUnknown::Release
//  Purpose:
//      Everyone usually implements this the same... feel free to use
//      this implementation.
//
STDMETHODIMP_(ULONG32) CHXAudioStream::Release()
{
    if (InterlockedDecrement(&m_lRefCount) > 0)
    {
        return m_lRefCount;
    }

    delete this;
    return 0;
}

/*
 *  IHXAudioStream methods
 */

/************************************************************************
 *  Method:
 *              IHXAudioStream::Init
 *      Purpose:
 *              Init the audio stream.
 */
STDMETHODIMP CHXAudioStream::Init
(
    const HXAudioFormat*        pAudioFormat,
          IHXValues*            pValues
)
{
    if (m_bAudioFormatKnown)
    {
        return HXR_OK;
    }

    HX_RESULT theErr = HXR_OK;
    m_pValues = pValues;
    if (m_pValues)
    {
        m_pValues->AddRef();
        UINT32 ulVal = 0;
        m_pValues->GetPropertyULONG32("audioDeviceReflushHint", ulVal);
        if (ulVal == 1)
        {
            SetAudioDeviceReflushHint(TRUE);
            m_Owner->m_Owner->CheckIfLastNMilliSecsToBeStored();
        }
    }

    memcpy( &m_AudioFmt, pAudioFormat, sizeof(HXAudioFormat) ); /* Flawfinder: ignore */

    // Create the audio data list 
    m_pDataList = new CHXSimpleList;
    if ( !m_pDataList )
        theErr = HXR_OUTOFMEMORY;
    if(!theErr) // check if list constructor really succeeded
    {
        if(!m_pDataList->IsPtrListValid())
            theErr = HXR_OUTOFMEMORY;
    }

    m_pInstantaneousList = new CHXSimpleList;
    if ( !m_pInstantaneousList || !m_pInstantaneousList->IsPtrListValid())
        theErr = HXR_OUTOFMEMORY;

    // Reset this so that we init the hooks
    m_bFirstWrite       = TRUE;
    m_bHooksInitialized = FALSE;

#if defined(HELIX_FEATURE_VOLUME)
    // Create a volume object.
    if ( !theErr )
    {
        m_pVolumeAdviseSink = new HXStreamVolumeAdviseSink;
        if (!m_pVolumeAdviseSink)
        {
            theErr = HXR_OUTOFMEMORY;
        }
        else
        {
            m_pVolumeAdviseSink->AddRef();
            m_pVolumeAdviseSink->m_pCHXAudioStream = this;
        }

        m_pStreamVolume = (IHXVolume*) new CHXVolume;
        if ( !m_pStreamVolume )
            theErr = HXR_OUTOFMEMORY;
        else
        {
            m_pStreamVolume->AddRef();
            m_pStreamVolume->AddAdviseSink(m_pVolumeAdviseSink);
            m_pStreamVolume->SetVolume(HX_MAX_VOLUME);
        }
    }
#endif /* HELIX_FEATURE_VOLUME */

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线综合+亚洲+欧美中文字幕| 欧美日韩一二区| 亚洲乱码日产精品bd| 欧美麻豆精品久久久久久| 国产自产高清不卡| 伊人开心综合网| 久久久精品免费网站| 欧美日韩亚州综合| 国产成人亚洲综合a∨猫咪| 午夜精品久久一牛影视| 国产精品国产三级国产| 日韩你懂的在线播放| 在线观看网站黄不卡| 成人一区二区视频| 奇米四色…亚洲| 一二三四社区欧美黄| 中文av字幕一区| 欧美va在线播放| 欧美裸体bbwbbwbbw| 色域天天综合网| 国产成人精品免费一区二区| 日韩成人dvd| 夜夜嗨av一区二区三区| 日韩一区有码在线| 久久久国产午夜精品 | 91在线视频官网| 国产精一品亚洲二区在线视频| 日韩精品五月天| 亚洲综合成人在线视频| 中文字幕一区二区不卡| 欧美激情艳妇裸体舞| 精品88久久久久88久久久| 欧美一区二区三区公司| 欧美日韩一区精品| 欧美性极品少妇| 日本韩国欧美国产| 色综合一个色综合亚洲| 99免费精品视频| 成人看片黄a免费看在线| 高清国产一区二区三区| 国产乱码精品1区2区3区| 国产在线麻豆精品观看| 激情综合色丁香一区二区| 麻豆国产91在线播放| 久久机这里只有精品| 久久99国产精品久久99| 国内成人精品2018免费看| 久久99精品视频| 久久成人羞羞网站| 激情小说亚洲一区| 国产成人自拍网| 成人黄页毛片网站| 99re热视频精品| 91亚洲国产成人精品一区二区三| 成人午夜大片免费观看| jlzzjlzz亚洲日本少妇| 99久久久久久99| 91麻豆免费观看| 在线亚洲一区二区| 欧美久久久久免费| 日韩视频免费观看高清完整版 | k8久久久一区二区三区| 91视频免费播放| 91成人在线观看喷潮| 欧美日韩国产天堂| 欧美一区二区三区视频在线| 欧美不卡在线视频| 久久久99精品久久| **性色生活片久久毛片| 亚洲国产精品久久人人爱蜜臀| 香蕉成人啪国产精品视频综合网 | 国产成人精品免费| www.色精品| 欧美色精品在线视频| 日韩一级高清毛片| 国产精品视频在线看| 亚洲午夜三级在线| 九九**精品视频免费播放| 成人激情综合网站| 精品视频在线免费观看| xnxx国产精品| 亚洲色图19p| 免费在线观看视频一区| 成人在线综合网| 欧美一a一片一级一片| 欧美大片拔萝卜| 国产精品免费免费| 偷拍一区二区三区四区| 国产aⅴ精品一区二区三区色成熟| 91麻豆精品一区二区三区| 日韩一区二区不卡| 亚洲欧美日韩一区二区| 蜜臀a∨国产成人精品| av资源网一区| 日韩欧美一级二级三级久久久 | 五月天欧美精品| 国产福利电影一区二区三区| 欧美综合视频在线观看| 久久蜜桃av一区二区天堂| 亚洲小说欧美激情另类| 国产福利一区在线观看| 在线播放中文一区| 18成人在线观看| 久久97超碰色| 欧美久久久一区| 最新国产精品久久精品| 国产资源在线一区| 欧美日韩国产在线观看| 中文字幕日本乱码精品影院| 老司机免费视频一区二区三区| 色哟哟一区二区在线观看| 久久久久久夜精品精品免费| 天天av天天翘天天综合网色鬼国产 | 亚洲精品综合在线| 国产剧情一区二区| 日韩小视频在线观看专区| 一区二区三区精品| 丁香天五香天堂综合| 欧美va亚洲va香蕉在线| 天天影视色香欲综合网老头| 色欧美片视频在线观看| 中文字幕不卡的av| 国产一区在线观看视频| 日韩免费观看高清完整版 | 91啪在线观看| 国产欧美精品一区二区三区四区| 蜜臀a∨国产成人精品| 欧美日韩大陆一区二区| 一级日本不卡的影视| 91免费观看视频在线| 国产精品电影一区二区三区| 国产风韵犹存在线视精品| 精品国产乱码久久久久久夜甘婷婷 | 色婷婷综合中文久久一本| 中文字幕不卡在线观看| 国产精品亚洲成人| 久久久久免费观看| 国产精品自拍在线| 久久精品视频免费| 国产一区二区三区综合| 久久一区二区三区四区| 经典三级一区二区| 精品国产91乱码一区二区三区 | 国内精品视频666| 精品国产一区二区在线观看| 久久国产乱子精品免费女| 日韩精品一区二区三区蜜臀| 精品一区免费av| 亚洲精品在线观看视频| 国产精品伊人色| 国产日韩成人精品| 波多野结衣亚洲一区| 亚洲欧美乱综合| 色婷婷国产精品综合在线观看| 亚洲综合一区二区| 欧美另类变人与禽xxxxx| 美女脱光内衣内裤视频久久网站| 日韩三级视频在线观看| 国产原创一区二区| 国产精品久久久久9999吃药| 97久久精品人人爽人人爽蜜臀| 亚洲精品视频免费观看| 欧美亚洲国产一区二区三区 | 亚洲欧洲成人av每日更新| 91色在线porny| 亚洲v中文字幕| 日韩视频一区在线观看| 国产iv一区二区三区| 亚洲精品视频在线看| 88在线观看91蜜桃国自产| 精品在线一区二区| 国产精品私人影院| 欧美色图片你懂的| 紧缚捆绑精品一区二区| 亚洲五月六月丁香激情| 欧美一区二区三区免费大片| 欧美日韩免费观看一区三区| 天堂久久久久va久久久久| 色综合久久中文综合久久牛| 丝袜诱惑制服诱惑色一区在线观看| 国产精品素人视频| 精品久久久久一区二区国产| 欧美日韩一区二区三区视频| 99精品视频在线免费观看| 国产一区二区三区精品欧美日韩一区二区三区 | 欧美亚一区二区| 成人黄色小视频| 精品一区二区三区在线观看国产| 亚洲自拍偷拍网站| 国产精品色哟哟网站| 久久一区二区三区四区| 欧美一区二区三区影视| 欧美亚洲日本国产| heyzo一本久久综合| 国产a视频精品免费观看| 国产乱理伦片在线观看夜一区| 日本vs亚洲vs韩国一区三区| 亚洲午夜私人影院| 一区二区高清免费观看影视大全| 亚洲天堂av一区|