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

📄 umc_mpeg2ts_spl.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_MPEG2TS_SPL_H__#define __UMC_MPEG2TS_SPL_H__#include "umc_mpeg2pes_spl.h"//MPEG2 Transport stream splitter//"0x47..PMT.."..."0x47..PAT.."...//"0x47..PES..video data.."..."0x47..video data.."...//"0x47..PES..audio data.."..."0x47..audio data.."...namespace UMC{    class MPEG2TSSplitter : public MPEG2PESSplitter    {    public:        MPEG2TSSplitter():MPEG2PESSplitter()        {            m_pTmpDataBuffAct   = NULL;            m_uiChoosedProgram  = 0;            m_bFistAudioFrame[0] = true;            m_bFistAudioFrame[1] = true;            m_bFirstValidAPTS = false;            m_uiNextSyncBytePos = 188;        }        ~MPEG2TSSplitter()        {        }    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();        int    virtual CheckIfNewES(bool isAudio, int streamID, int index = -1);        /*Functions for backward motion*/        Status virtual GetPrevGop( unsigned int pid, vm_sizet p_start,vm_sizet &posIFrame,vm_sizet &posPackege);        Status virtual ProcessPackets_back(unsigned int pid,                                           vm_sizet p_packege_start,                                           vm_sizet p_start,                                           vm_sizet p_end);    protected:        Status         MPEG2TSPack();        int            TSProgramMapSection(int payload_indicator, int index);        int            ProgramAssociationSection(int payload_indicator);        Status         CheckTSSyncByte(unsigned char &byteCode);    protected:        unsigned int    m_uiRegularPackSize; //it can be 188 or 192        unsigned int    m_uiNextSyncBytePos;        unsigned int    m_uiCurrentPackSize; //it is equal regular packet size                                             //plus error bytes        unsigned int    m_uiChoosedProgram;    private:        //transport stream specific functionality        //different descriptors        Status AdaptationField              (int  adaptation_field_control);        int GetDescriptor                   (int index);        int AC3AudioStreamDescriptor        (int& gotBytes, int index);        int RegistrationDescriptor          (int dscrLen,                                             unsigned int& format_identifier);        int CADescriptor                    (int dscrLen);        int CopyrightDescriptor             (int dscrLen);        int ISO639LanguageDescriptor        (int dscrLen);        int VideoStreamDescriptor           ();        int AudioStreamDescriptor           ();        int HierarchyDescriptor             ();        int DataStreamAlignmentDescriptor   ();        int TargetBackgroundGridDescriptor  ();        int VideoWindowDescriptor           ();        int SystemClockDescriptor           ();        int MultiplexBufferUtilizationDescriptor();        int MaximumBitrateDescriptor        ();        int PrivateDataIndicatorDescriptor  ();        int SmoothingBufferDescriptor       ();        int STDDescriptor                   ();        int IBPDescriptor                   ();    };} // namespace UMC#endif /* __UMC_MPEG2TS_SPL_H__ */

⌨️ 快捷键说明

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