📄 umc_avi_chunk.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-2005 Intel Corporation. All Rights Reserved.//*/#ifndef __UMC_AVI_CHUNK_H__#define __UMC_AVI_CHUNK_H__#include "umc_avi_types.h"#include "lockable_data_reader.h"#define MAX_AVI_CHUNK_DEPTH (6)namespace UMC{ class AVIChunk { public: AVIChunk(); Status Init(LockableDataReaderRef Reader); Status DescendChunk(tFOURCC chnkName); inline Status DescendLIST(tFOURCC chnkName); inline Status DescendRIFF(tFOURCC chnkName); inline void GoChunkHead(); Status Ascend(); inline vm_var32 GetChunkHead(); inline tFOURCC GetChunkFOURCC(); inline vm_var32 GetChunkSize(); Status GetData(vm_byte* pbBuffer, vm_var32 uiBufSize); static bool CmpChunkNames(const tFOURCC chnkName1, const tFOURCC chnkName2); Status JumpToFilePos(const vm_sizet uiFilePos); virtual ~AVIChunk(){} protected: Status DescendChunkList(tFOURCC chnkName, tFOURCC listName); class CChnkInfo { public: tFOURCC m_chnkName; vm_sizet m_stSize; vm_sizet m_stFilePos; CChnkInfo():m_chnkName(0),m_stSize(0),m_stFilePos(0){} }; CChnkInfo m_ChnkStack[MAX_AVI_CHUNK_DEPTH]; unsigned long m_ulStackPos; LockableDataReaderRef m_Reader; };} // namespace UMCUMC::StatusUMC::AVIChunk::DescendLIST(tFOURCC chnkName){ return DescendChunkList(AVI_FOURCC_LIST, chnkName); }UMC::StatusUMC::AVIChunk::DescendRIFF(tFOURCC chnkName){ return DescendChunkList(AVI_FOURCC_RIFF, chnkName); }voidUMC::AVIChunk::GoChunkHead(){ m_Reader.SetPosition(m_ChnkStack[m_ulStackPos].m_stFilePos); }vm_var32UMC::AVIChunk::GetChunkHead(){ return (vm_var32)m_ChnkStack[m_ulStackPos].m_stFilePos; }tFOURCCUMC::AVIChunk::GetChunkFOURCC(){ return m_ChnkStack[m_ulStackPos].m_chnkName; }vm_var32UMC::AVIChunk::GetChunkSize(){ vm_sizet stSize = m_ChnkStack[m_ulStackPos].m_stSize; assert(stSize == (vm_var32)stSize); return (vm_var32)stSize;}#endif // __UMC_AVI_CHUNK_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -