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

📄 umc_mpeg2_spl_pure.h

📁 这是在PCA下的基于IPP库示例代码例子,在网上下了IPP的库之后,设置相关参数就可以编译该代码.
💻 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_AUDIO_SPL_VIDEO_H__#define __UMC_AUDIO_SPL_VIDEO_H__#include "umc_mpeg2_spl_av.h"//Pure mpeg audio splitternamespace UMC{    class MPEG2VideoSplitter : public MPEG2AVSplitter    {    public:        MPEG2VideoSplitter():MPEG2AVSplitter(){};        Status virtual  GetPosition (double& pos);        Status virtual  GetInfo     (SplitterInfo* pSplInfo);    protected:        //here must be implemented real packet processing,        //it is specific for each format        //this function witll return control if reading error        //or end of stream happen        Status virtual  ProcessPackets(int count = -1);        //read one packet (or size bytes of pure stream) and        //return control, for PS, TS streams size parameter must be 0        //returned UMC_OK means next frame was formed and ready        //to output        //UMC_NOT_ENOUGH_DATA means packed was processed but frame        //is not ready        //all other is errors        Status virtual  ProcessOnePacket(int size = 0);        //initialization of subprocessing, call before ProcessOnePacket        Status virtual  InitProcessing();        //de-initialization of subprocessing, call after ProcessOnePacket        Status virtual  CloseProcessing();        //here must be implemented pointer positioning to first        //valid start code after repositioning        Status virtual  MoveToNextSyncWord();        //forward search for main header in reverse playback        Status virtual  ForwardInit();        //forward search for main header in reverse playback        Status virtual  ForwardSearch();        virtual bool    IsAcceptableVideoBuffer();    };    class MPEG4VideoSplitter : public MPEG2AVSplitter    {    public:        MPEG4VideoSplitter():MPEG2AVSplitter(){};        Status virtual  GetPosition (double& pos);        Status virtual  GetInfo     (SplitterInfo* pSplInfo);    protected:        //here must be implemented real packet processing,        //it is specific for each format        //this function witll return control if reading error        //or end of stream happen        Status virtual  ProcessPackets(int count = -1);        //read one packet (or size bytes of pure stream) and        //return control, for PS, TS streams size parameter must be 0        //returned UMC_OK means next frame was formed and ready        //to output        //UMC_NOT_ENOUGH_DATA means packed was processed but frame        //is not ready        //all other is errors        Status virtual  ProcessOnePacket(int size = 0);        //initialization of subprocessing, call before ProcessOnePacket        Status virtual  InitProcessing();        //de-initialization of subprocessing, call after ProcessOnePacket        Status virtual  CloseProcessing();        //here must be implemented pointer positioning to first        //valid start code after repositioning        Status virtual  MoveToNextSyncWord();    };    class H264VideoSplitter : public MPEG2AVSplitter    {    public:        H264VideoSplitter():MPEG2AVSplitter(){};        Status virtual  GetPosition (double& pos);        Status virtual  GetInfo     (SplitterInfo* pSplInfo);    protected:        //here must be implemented real packet processing,        //it is specific for each format        //this function witll return control if reading error        //or end of stream happen        Status virtual  ProcessPackets(int count = -1);        //read one packet (or size bytes of pure stream) and        //return control, for PS, TS streams size parameter must be 0        //returned UMC_OK means next frame was formed and ready        //to output        //UMC_NOT_ENOUGH_DATA means packed was processed but frame        //is not ready        //all other is errors        Status virtual  ProcessOnePacket(int size = 0);        //initialization of subprocessing, call before ProcessOnePacket        Status virtual  InitProcessing();        //de-initialization of subprocessing, call after ProcessOnePacket        Status virtual  CloseProcessing();        //here must be implemented pointer positioning to first        //valid start code after repositioning        Status virtual  MoveToNextSyncWord();    };    class H261VideoSplitter : public MPEG2AVSplitter    {    public:        H261VideoSplitter():MPEG2AVSplitter(){};        Status virtual  GetPosition (double& pos);        Status virtual  GetInfo     (SplitterInfo* pSplInfo);    protected:        //here must be implemented real packet processing,        //it is specific for each format        //this function witll return control if reading error        //or end of stream happen        Status virtual  ProcessPackets(int count = -1);        //read one packet (or size bytes of pure stream) and        //return control, for PS, TS streams size parameter must be 0        //returned UMC_OK means next frame was formed and ready        //to output        //UMC_NOT_ENOUGH_DATA means packed was processed but frame        //is not ready        //all other is errors        Status virtual  ProcessOnePacket(int size = 0);        //initialization of subprocessing, call before ProcessOnePacket        Status virtual  InitProcessing();        //de-initialization of subprocessing, call after ProcessOnePacket        Status virtual  CloseProcessing();        //here must be implemented pointer positioning to first        //valid start code after repositioning        Status virtual  MoveToNextSyncWord();        virtual bool            IfFrameRequared();    };    class H263VideoSplitter : public MPEG2AVSplitter    {    public:        H263VideoSplitter():MPEG2AVSplitter(){};        Status virtual  GetPosition (double& pos);        Status virtual  GetInfo     (SplitterInfo* pSplInfo);    protected:        //here must be implemented real packet processing,        //it is specific for each format        //this function witll return control if reading error        //or end of stream happen        Status virtual  ProcessPackets(int count = -1);        //read one packet (or size bytes of pure stream) and        //return control, for PS, TS streams size parameter must be 0        //returned UMC_OK means next frame was formed and ready        //to output        //UMC_NOT_ENOUGH_DATA means packed was processed but frame        //is not ready        //all other is errors        Status virtual  ProcessOnePacket(int size = 0);        //initialization of subprocessing, call before ProcessOnePacket        Status virtual  InitProcessing();        //de-initialization of subprocessing, call after ProcessOnePacket        Status virtual  CloseProcessing();        //here must be implemented pointer positioning to first        //valid start code after repositioning        Status virtual  MoveToNextSyncWord();        virtual bool    IfFrameRequared();    };} // namespace UMC#endif /* __UMC_AUDIO_SPL_VIDEO_H__ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -