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

📄 umc_vc1_spl.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.
//
//
//          VC-1 (VC1) splitter
//
*/
#include "umc_defs.h"

#if defined (UMC_ENABLE_VC1_SPLITTER)

#ifndef __UMC_VC1_SPL_H__
#define __UMC_VC1_SPL_H__

#include "umc_splitter.h"
#include "umc_vc1_spl_frame_constr.h"

namespace UMC
{
    class VC1Splitter : public Splitter
    {
    DYNAMIC_CAST_DECL(VC1Splitter, Splitter)
    private:
        vc1_frame_constructor*    m_frame_constructor;
        Ipp8u*              m_readBuf;
        Ipp32u              m_readBufSize;
        Ipp32u              m_readDataSize;

        Ipp8u*              m_frameBuf;
        Ipp32u              m_frameBufSize;
        Ipp32u              m_frameSize;
        Ipp32u              m_NextFrame;

        Ipp32u              m_seqHeaderFlag; //1 - last data - sequence header
        MediaDataEx::_MediaDataEx *m_stCodes;
        MediaData*          m_readData;
        bool                m_bNotDelete;

    private:
        void DeleteReadBuf();
        void DeleteFrameBuf();

        Status ResizeFrameBuf(Ipp32u bufferSize);
        Status GetFirstSeqHeader(MediaDataEx* mediaData, Ipp32u splMode);
    public:
        VC1Splitter();
        virtual ~VC1Splitter();

        virtual Status  Init(SplitterParams& rInit);
        virtual Status  Close();    //Close splitter

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

        static SystemStreamType GetStreamType(DataReader *dr);

        virtual Status Run ();    //Run   splitter
        virtual Status Stop ();    //Stop  splitter

        virtual Status SetTimePosition(Ipp64f timePos);
        virtual Status GetTimePosition(Ipp64f& timePos);

        virtual Status GetInfo(SplitterInfo** ppInfo);
        virtual Status SetRate(Ipp64f rate);

        virtual Status EnableTrack(Ipp32u /*nTrack*/, Ipp32s /*iState*/);
        void    SetSpecialMode() {m_bNotDelete = true;} ;
};
}
#endif // __UMC_VC1_SPL_H__
#endif //UMC_ENABLE_VC1_SPLITTER

⌨️ 快捷键说明

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