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

📄 null_audio_render.h

📁 audio-video-codecs.rar语音编解码器
💻 H
字号:
/*
//
//                  INTEL CORPORATION PROPRIETARY INFORMATION
//     This software is supplied under the terms of a license agreement or
//     nondisclosure agreement with Intel Corporation and may not be copied
//     or disclosed except in accordance with the terms of that agreement.
//          Copyright(c) 2003-2006 Intel Corporation. All Rights Reserved.
//
*/

//
//    This file contains audio render doing nothing beside returning right time
//    based on system time. You can use it for pure video (without audio)
//    streams syncronization.
//

#ifndef __NULL_AUDIO_RENDER_H__
#define __NULL_AUDIO_RENDER_H__

#include "vm_time.h"
#include "umc_structures.h"
#include "basic_audio_render.h"

namespace UMC
{
    typedef enum
    {
        UMC_1X_FFMODE = 0,
        UMC_2X_FFMODE = 1,
        UMC_4X_FFMODE = 3,
        UMC_8X_FFMODE = 7,
        UMC_16X_FFMODE = 15
    } UMC_FFMODE_MULTIPLIER;

    class NULLAudioRenderParams: public AudioRenderParams
    {
        DYNAMIC_CAST_DECL(NULLAudioRenderParams, AudioRenderParams)

    public:
        // Default constructor
        NULLAudioRenderParams(Ipp64f m_PTS = 0);

        Ipp64f          m_InitPTS;
    };

    class NULLAudioRender : public BasicAudioRender
    {
    protected:
        vm_tick         m_Freq;
        vm_tick         m_LastStartTime;
        vm_tick         m_PrePauseTime;
        bool            m_bPaused;
        Ipp64f          m_dInitialPTS;
        Ipp64f          m_uiFFModeMult;
        virtual Ipp64f  GetTimeTick();

    public:
        NULLAudioRender(Ipp64f dfDelay = 0,
                        UMC_FFMODE_MULTIPLIER mult = UMC_1X_FFMODE);
        virtual ~NULLAudioRender() {   Close();     }

        virtual Status  Init(MediaReceiverParams* pInit);
        virtual Status  SendFrame(MediaData* in);
        virtual Status  Pause(bool bPause);

        // Render manipulating
        // 0-silence 1-max, return previous volume
        virtual Ipp32f  SetVolume(Ipp32f /*volume*/);
        virtual Ipp32f  GetVolume();

        virtual Status  Close ();
        virtual Status  Reset ();

        virtual Status SetParams(MediaReceiverParams *params,
                                 Ipp32u  trickModes = UMC_TRICK_MODES_NO);
    };
} // namespace UMC

#endif // __NULL_AUDIO_RENDER_H__

⌨️ 快捷键说明

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