📄 umc_avi_splitter.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 + -