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

📄 umc_spl_base.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) 2004-2007 Intel Corporation. All Rights Reserved.
//
*/

#ifndef __UMC_SPLITTER_BASE_H__
#define __UMC_SPLITTER_BASE_H__

#include "umc_splitter.h"
#include "umc_splitter_ex.h"
#include "umc_mutex.h"

#include "umc_thread.h"
#include "umc_index.h"
#include "umc_media_buffer.h"

namespace UMC
{

class SplitterBase : public Splitter
{

    DYNAMIC_CAST_DECL(SplitterBase, Splitter)

public:
    SplitterBase();
    ~SplitterBase();

    Status Init(SplitterParams &init_params);

    virtual Status Close();

    virtual Status Stop() {return UMC_OK;}  /* !!! DEPRECATED !!! */
    virtual Status Run();

    virtual Status GetNextData(MediaData* data, Ipp32u nTrack);
    virtual Status CheckNextData(MediaData* data, Ipp32u nTrack);

    virtual Status SetTimePosition(Ipp64f position); // in second
    virtual Status GetTimePosition(Ipp64f& position); // return current position in second
    virtual Status SetRate(Ipp64f rate);

    // Get splitter info
    virtual Status GetInfo(SplitterInfo** ppInfo);

protected:
    virtual Status StopSplitter();

    static Ipp32u  VM_THREAD_CALLCONVENTION  ReadESThreadCallback(void* ptr);
    void    ReadES(Ipp32u uiPin);

    bool                 m_bFlagStop;
    vm_thread           *m_pReadESThread;

    DataReader          *m_pReader;
    Mutex                m_ReaderMutex;
    TrackIndex          *m_pTrackIndex;
    MediaBuffer        **m_ppMediaBuffer;
    MediaData          **m_ppLockedFrame;
    SplitterInfo        *m_pInfo;

    DataReader *m_pDataReader;
    Mutex m_dataReaderMutex;
};

} // namespace UMC

#endif //__UMC_SPLITTER_BASE_H__

⌨️ 快捷键说明

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