umc_avi_splitter.h

来自「audio-video-codecs.rar语音编解码器」· C头文件 代码 · 共 69 行

H
69
字号
/*//////////////////////////////////////////////////////////////////////////////
//
//                  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 + =
减小字号Ctrl + -
显示快捷键?