📄 umc_mpeg2_spl_pure.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 + -