📄 umc_spl_base.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.
//
*/
#ifndef __UMC_SPLITTER_BASE_H__
#define __UMC_SPLITTER_BASE_H__
#include "umc_splitter.h"
#include "umc_splitter_ex.h"
#include "umc_mutex.h"
#include "umc_thread.h"
#include "umc_index.h"
#include "umc_media_buffer.h"
namespace UMC
{
class SplitterBase : public Splitter
{
DYNAMIC_CAST_DECL(SplitterBase, Splitter)
public:
SplitterBase();
~SplitterBase();
Status Init(SplitterParams &init_params);
virtual Status Close();
virtual Status Stop() {return UMC_OK;} /* !!! DEPRECATED !!! */
virtual Status Run();
virtual Status GetNextData(MediaData* data, Ipp32u nTrack);
virtual Status CheckNextData(MediaData* data, Ipp32u nTrack);
virtual Status SetTimePosition(Ipp64f position); // in second
virtual Status GetTimePosition(Ipp64f& position); // return current position in second
virtual Status SetRate(Ipp64f rate);
// Get splitter info
virtual Status GetInfo(SplitterInfo** ppInfo);
protected:
virtual Status StopSplitter();
static Ipp32u VM_THREAD_CALLCONVENTION ReadESThreadCallback(void* ptr);
void ReadES(Ipp32u uiPin);
bool m_bFlagStop;
vm_thread *m_pReadESThread;
DataReader *m_pReader;
Mutex m_ReaderMutex;
TrackIndex *m_pTrackIndex;
MediaBuffer **m_ppMediaBuffer;
MediaData **m_ppLockedFrame;
SplitterInfo *m_pInfo;
DataReader *m_pDataReader;
Mutex m_dataReaderMutex;
};
} // namespace UMC
#endif //__UMC_SPLITTER_BASE_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -