⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pe_consumer_cdda.h

📁 这是DVD中伺服部分的核心代码
💻 H
字号:

/*****************************************************************************
******************************************************************************
**                                                                          **
**  Copyright (c) 2006 Videon Central, Inc.                                 **
**  All rights reserved.                                                    **
**                                                                          **
**  The computer program contained herein contains proprietary information  **
**  which is the property of Videon Central, Inc.  The program may be used  **
**  and/or copied only with the written permission of Videon Central, Inc.  **
**  or in accordance with the terms and conditions stipulated in the        **
**  agreement/contract under which the programs have been supplied.         **
**                                                                          **
******************************************************************************
*****************************************************************************/
/**
 * @file pe_consumer_cdda.h
 *
 * $Revision: 1.9 $ 
 *
 * PE Consumer CDDA Derived Class Definition
 * The PE Consumer moves data from an input stream to a decoder or demux.
 *
 */

#ifndef PE_CONSUMER_CDDA_H
#define PE_CONSUMER_CDDA_H

#include "cDemux.h"

#define CDDA_COPY_UNITIALIZED   0xFF
#define CDDA_COPY_TOGGLING      0x02

typedef enum _tagPE_DTS_SYNC_DETECT_STATE
{
    DTS_SYNC_DETECT_STATE_INIT,
    DTS_SYNC_DETECT_STATE_16BIT_SYNCWORD1,
    DTS_SYNC_DETECT_STATE_16BIT_SYNCWORD2,
    DTS_SYNC_DETECT_STATE_14BIT_SYNCWORD1,
    DTS_SYNC_DETECT_STATE_14BIT_SYNCWORD2
} PE_DTS_SYNC_DETECT_STATE;

class cPEConsumer_CDDA : public cPEConsumer
{
public:

    cPEConsumer_CDDA()
    {
        m_fStillOn                          = FALSE;

        m_pcm_settings.bits_per_sample      = 16;
        m_pcm_settings.sample_rate          = 44100;
        m_pcm_settings.channels             = 2;
        m_pcm_settings.spdif_output_only    = false;
        m_bPrevCopy                        = CDDA_COPY_UNITIALIZED;
        m_nDtsBytesToSearch                = 0;
        m_n14bitDtsSyncWords               = 0;
        m_n16bitDtsSyncWords               = 0;
        m_DtsSyncDetectState               = DTS_SYNC_DETECT_STATE_INIT;
    }

    ~cPEConsumer_CDDA()
    {
    }

    PE_STATUS Configure(PE_CONSUMER_CONFIG_INFO *pConfigInfo);
    PE_STATUS Reset(void);

    PE_STATUS Run(void);
    PE_STATUS Flush(void);
    PE_STATUS Stop(BOOLEAN fHoldPicture);
    PE_STATUS SetRate(PE_ISTREAMCTRL_PLAYRATE *pPlayRate);

private:
    PE_STATUS processData(PEINPUTMESSAGE *pInMessage);
    PE_STATUS processInfo(PEINPUTMESSAGE *pInMessage);
    BOOLEAN checkForDtsSyncWord(cPayload *pPayload);
    BYTE m_bPrevCopy;
    BYTE m_bPrevEmphasis;
    LONG m_nDtsBytesToSearch;
    LONG m_n14bitDtsSyncWords;
    LONG m_n16bitDtsSyncWords;
    PE_DTS_SYNC_DETECT_STATE m_DtsSyncDetectState;

protected:
    PCM_SETTINGS_TYPE m_pcm_settings;

};

#endif

⌨️ 快捷键说明

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