📄 umc_avi_splitter.cpp
字号:
/*////////////////////////////////////////////////////////////////////////////////// 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.//*/#include "vm_debug.h"#include "vm_time.h"#include "umc_avi_spl_base.h"#include "umc_avi_splitter.h"#include "umc_h264_spl.h"#include "umc_mpeg4_spl.h"#include "umc_media_data.h"UMC::AVISplitter::AVISplitter():Splitter(){ m_pSpl = NULL;}UMC::AVISplitter::~AVISplitter(){ if (m_pSpl) m_pSpl->Close(); delete m_pSpl; m_pSpl = NULL;}UMC::Status UMC::AVISplitter::Init(SplitterParams& init){ UMC::Status res; UMC::BaseAVISplitter* p_spl1 = NULL; UMC::SplitterInfo splInfo; m_pDataReader = init.m_pDataReader; if(!m_pDataReader) { //only external data reader supported return UMC_NULL_PTR; } //choose a splitter UMC::BaseAVISplitter::GetStreamsInfo(m_pDataReader, splInfo); switch(splInfo.m_video_info.stream_type) { case H264_VIDEO: p_spl1 = new UMC::H264Splitter; break; default: p_spl1 = new UMC::BaseAVISplitter; break; } if(!p_spl1) return UMC_ALLOC; res = p_spl1->Init(init); if(UMC_OK == res) m_pSpl = p_spl1; else m_pSpl = NULL; return res;}UMC::Status UMC::AVISplitter::Close(){ UMC::Status ret; if(m_pSpl) { ret = m_pSpl->Close(); delete m_pSpl; m_pSpl = NULL; } return ret;}UMC::Status UMC::AVISplitter::Stop(){ UMC::Status ret; if(m_pSpl) { ret = m_pSpl->Close(); delete m_pSpl; m_pSpl = NULL; } return ret;}UMC::Status UMC::AVISplitter::GetNextVideoData(MediaData* data, unsigned int idx){ Status ret; if(m_pSpl) ret = m_pSpl->GetNextVideoData(data, idx); else ret = UMC_NOT_INITIALIZED; return ret;}UMC::Status UMC::AVISplitter::CheckNextVideoData(MediaData* data){ Status ret; if(m_pSpl) ret = m_pSpl->CheckNextVideoData(data); else ret = UMC_NOT_INITIALIZED; return ret;}UMC::Status UMC::AVISplitter::GetNextAudioData(MediaData* data, unsigned int idx){ Status ret; if(m_pSpl) ret = m_pSpl->GetNextAudioData(data, idx); else ret = UMC_NOT_INITIALIZED; return ret;}UMC::Status UMC::AVISplitter::CheckNextAudioData(MediaData* data){ Status ret; if(m_pSpl) ret = m_pSpl->CheckNextAudioData(data); else ret = UMC_NOT_INITIALIZED; return ret;}UMC::Status UMC::AVISplitter::SetPosition(double pos){ if(m_pSpl) return m_pSpl->SetPosition(pos); else return UMC_NOT_INITIALIZED;}UMC::Status UMC::AVISplitter::GetPosition(double& pos){ if(m_pSpl) return m_pSpl->GetPosition(pos); else return UMC_NOT_INITIALIZED;}UMC::Status UMC::AVISplitter::GetInfo(UMC::SplitterInfo* info){ if(m_pSpl) return m_pSpl->GetInfo(info); else return UMC_NOT_INITIALIZED;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -