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

📄 pe_consumer_bdrom.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_bdrom.h
 *
 * $Revision: 1.15 $ 
 *
 * PE Consumer BDROM Derived Class Definition
 * The PE Consumer moves data from an input stream to a decoder or demux.
 *
 */

#ifndef PE_CONSUMER_BDROM_H
#define PE_CONSUMER_BDROM_H

#include "pg_api.h"
#include "ig_api.h"
#include "textst_api.h"

#ifdef DRM_SUPPORT
#include "drm_wrapper.h"
#endif

#ifdef DRM_BDPLUS_SUPPORT
#include "bdp.h"
#include "player_types.h"
#endif




class cPEConsumer_BDROM : public cPEConsumer
{
public:

    cPEConsumer_BDROM()
    {
        m_fStillOn  = FALSE;
        m_pg_dec    = NULL;
        m_ig_dec    = NULL;
        m_st_dec    = NULL;
        new_item    = FALSE;
    }

    ~cPEConsumer_BDROM()
    {
    }

    void * operator new( size_t size )
    {
        return ( OS_MemAlloc(size) );
    }

    void operator delete( void * pvPFB )
    {
        OS_MemFree(pvPFB);
    }

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

    PE_STATUS DemuxAddVideoTS(LONG lPID, PE_ISTREAMCTRL_VIDEO_TYPE VideoType, Decoder* pDecoder);
    PE_STATUS DemuxAddAudioTS(LONG lPID, PE_ISTREAMCTRL_AUDIO_TYPE AudioType, PE_ISTREAMCTRL_AUDIO_ATTRIBUTES *pAttributes, Decoder* pDecoder);
    PE_STATUS DemuxAddSecondaryAudioTS(LONG lPID, PE_ISTREAMCTRL_AUDIO_TYPE AudioType, PE_ISTREAMCTRL_AUDIO_ATTRIBUTES *pAttributes, Decoder* pDecoder);
    PE_STATUS DemuxAddPGTS(LONG lPID, PVOID pDecoder);
    PE_STATUS DemuxAddIGTS(LONG lPID, PVOID pDecoder);
    PE_STATUS DemuxAddSubTextTS(LONG lPID, PVOID pDecoder);
    PE_STATUS DemuxRemoveVideoTS(void);
    PE_STATUS DemuxRemoveAudioTS(void);
    PE_STATUS DemuxRemovePGTS(void);
    PE_STATUS DemuxRemoveIGTS(void);
    PE_STATUS DemuxRemoveSubTextTS(void);
    PE_STATUS DemuxRemoveSecondaryAudioTS(void);

    PE_STATUS DemuxGetPGTS(LONG *pPID, BOOLEAN *pfIsActive);
    PE_STATUS DemuxGetIGTS(LONG *pPID, BOOLEAN *pfIsActive);
    PE_STATUS DemuxGetSubTextTS(LONG *pPID, BOOLEAN *pfIsActive);

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


private:
    PG_HANDLE                       m_pg_dec;
    IG_HANDLE                       m_ig_dec;
    TEXTST_HANDLE                   m_st_dec;
    LONG                            m_pg_pid;
    LONG                            m_ig_pid;
    LONG                            m_st_pid;
    BOOLEAN                         new_item;

    PE_STATUS ProcessEndOfStream(PVOID StreamContext);
    PE_STATUS ProcessBegOfStream(PVOID StreamContext);

    PE_STATUS processData(PEINPUTMESSAGE *pInMessage);
    PE_STATUS processInfo(PEINPUTMESSAGE *pInMessage);

    PE_STATUS SendPayloadToInputInteractiveGraphics (cPayload* pPayload);
    PE_STATUS SendPayloadToInputTextSubtitle        (cPayload* pPayload);
};

#endif

⌨️ 快捷键说明

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