⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 umc_avi_splitter.cpp

📁 这是在PCA下的基于IPP库示例代码例子,在网上下了IPP的库之后,设置相关参数就可以编译该代码.
💻 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 + -