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

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

#ifndef __UMC_AVI_SPL_H__
#define __UMC_AVI_SPL_H__

#include "umc_avi_types.h"
#include "umc_avi_spl_chunk.h"
#include "umc_spl_base.h"

namespace UMC
{
    class AVISplitter : public SplitterBase
    {
        DYNAMIC_CAST_DECL(AVISplitter, SplitterBase)
    public:
        // constructor
        AVISplitter();
        // destructor
        virtual ~AVISplitter();
        // initializes splitter, parses headers and fills info struct
        virtual Status Init(SplitterParams& init);
        // releases resources
        virtual Status Close(void);
        // creates buffers if they are not created yet and call parent's Run()
        virtual Status Run(void);

    protected:
        Status TerminateInit(Status umcRes);
        Status ReadFormat(void);
        Status GenerateIndex(void);
        Status ReadStreamsInfo(Ipp32u uiTrack);
        Status FillSplitterInfo(void);
        Status FillAudioStreamInfo(Ipp32u uiTrack, TrackInfo *pInfo);
        Status FillVideoStreamInfo(Ipp32u uiTrack, TrackInfo *pInfo);
        Status FillDvStreamInfo(Ipp32u uiTrack, TrackInfo *pInfo);
        Status InitIndexUsingStandardIndex(Ipp32u nTrackNum, Ipp8u* pIndexBuffer,
            Ipp32u nEntriesInUse, Ipp64u qwBaseOffset, Ipp16u wLongsPerEntry);
        Status InitIndexUsingOldAVIIndex(Ipp8u* pIndexBuffer, Ipp32s nIndexSize,
            Ipp64u nMoviChunkStartAddr, Ipp64u nMoviChunkEndAddr);
        Status InitIndexUsingNewAVIIndex(Ipp32u nTrackNum, Ipp8u* pIndexBuffer, Ipp32s nIndexSize);

    protected:
        // array of structures represent every AVI track
        Ipp32u m_flags;
        AviTrack* m_pTrack;
        // Main AVI Header
        MainAviHeader m_AviHdr;
        // Avi chunk navigator
        AVIChunk m_AviChunkReader;
        // initialization flags
        Ipp32u m_uiFlags;
        // is audio checked for VBR
        bool m_bCheckVBRAudio;
        // is audio VBR
        bool m_bIsVBRAudio;
    };

} // namespace UMC

#endif /* __UMC_AVI_SPL_H__ */

⌨️ 快捷键说明

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