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

📄 umc_structures.h

📁 这是在PCA下的基于IPP库示例代码例子,在网上下了IPP的库之后,设置相关参数就可以编译该代码.
💻 H
📖 第 1 页 / 共 2 页
字号:
/*////                  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_STRUCTURES_H__#define __UMC_STRUCTURES_H__#include "vm_types.h"//#include "umc_malloc.h"#define BSWAP16(x) \    (vm_var16) ((x) >> 8 | (x) << 8)#define BSWAP32(x) \    (vm_var32)(((x) << 24) + \    (((x)&0xff00) << 8) + \    (((x) >> 8)&0xff00) + \    ((x) >> 24))#define BSWAP64(x) \    (vm_var64)(((x) << 56) + \    (((x)&0xff00) << 40) + \    (((x)&0xff0000) << 24) + \    (((x)&0xff000000) << 8) + \    (((x) >> 8)&0xff000000) + \    (((x) >> 24)&0xff0000) + \    (((x) >> 40)&0xff00) + \    ((x) >> 56))#ifdef _BIG_ENDIAN_#   define BIG_ENDIAN_SWAP16(x) BSWAP16(x)#   define BIG_ENDIAN_SWAP32(x) BSWAP32(x)#   define BIG_ENDIAN_SWAP64(x) BSWAP64(x)#   define LITTLE_ENDIAN_SWAP16(x) (x)#   define LITTLE_ENDIAN_SWAP32(x) (x)#   define LITTLE_ENDIAN_SWAP64(x) (x)#else // _BIG_ENDIAN_#   define BIG_ENDIAN_SWAP16(x) (x)#   define BIG_ENDIAN_SWAP32(x) (x)#   define BIG_ENDIAN_SWAP64(x) (x)#   define LITTLE_ENDIAN_SWAP16(x) BSWAP16(x)#   define LITTLE_ENDIAN_SWAP32(x) BSWAP32(x)#   define LITTLE_ENDIAN_SWAP64(x) BSWAP64(x)#endif // _BIG_ENDIAN_// macro to create FOURCC#ifndef DO_FOURCC#define DO_FOURCC(ch0, ch1, ch2, ch3) \    ( (vm_var32)(vm_byte)(ch0) | ( (vm_var32)(vm_byte)(ch1) << 8 ) | \    ( (vm_var32)(vm_byte)(ch2) << 16 ) | ( (vm_var32)(vm_byte)(ch3) << 24 ) )#endif // DO_FOURCCnamespace UMC{    enum SystemStreamType    {        UNDEF_STREAM            = 0x00000000, //unsupported stream type        AVI_STREAM              = 0x00000001, //AVI RIFF        MP4_ATOM_STREAM         = 0x00000010, //ISO/IEC 14496-14 stream        ASF_STREAM              = 0x00000100, //ASF stream        H26x_PURE_VIDEO_STREAM  = 0x00100000,        H261_PURE_VIDEO_STREAM  = H26x_PURE_VIDEO_STREAM|0x00010000,        H263_PURE_VIDEO_STREAM  = H26x_PURE_VIDEO_STREAM|0x00020000,        H264_PURE_VIDEO_STREAM  = H26x_PURE_VIDEO_STREAM|0x00040000,        MPEGx_SYSTEM_STREAM     = 0x00001000,                    //MPEG 1,2 - like system        MPEG1_SYSTEM_STREAM     = MPEGx_SYSTEM_STREAM|0x00000100,//MPEG 1 system        MPEG2_SYSTEM_STREAM     = MPEGx_SYSTEM_STREAM|0x00000200,//MPEG 2 system        MPEG4_SYSTEM_STREAM     = MPEGx_SYSTEM_STREAM|0x00000400,//MPEG 2 system        MPEGx_PURE_VIDEO_STREAM = MPEGx_SYSTEM_STREAM|0x00000010,//MPEG 1,2 - like pure video data        MPEGx_PURE_AUDIO_STREAM = MPEGx_SYSTEM_STREAM|0x00000020,//MPEG 1,2 - like pure audio data        MPEGx_PES_PACKETS_STREAM= MPEGx_SYSTEM_STREAM|0x00000040,//MPEG 1,2 - like pes packets system        MPEGx_PROGRAMM_STREAM   = MPEGx_SYSTEM_STREAM|0x00000080,//MPEG 1,2 - like programm system        MPEGx_TRANSPORT_STREAM  = MPEGx_SYSTEM_STREAM|0x000000c0,//MPEG 1,2 - like transport system        MPEG1_PURE_VIDEO_STREAM = MPEG1_SYSTEM_STREAM|MPEGx_PURE_VIDEO_STREAM, //MPEG1 pure video stream        MPEG1_PURE_AUDIO_STREAM = MPEG1_SYSTEM_STREAM|MPEGx_PURE_AUDIO_STREAM, //MPEG1 pure video stream        MPEG1_PES_PACKETS_STREAM= MPEG1_SYSTEM_STREAM|MPEGx_PES_PACKETS_STREAM,//MPEG1 pes packets stream        MPEG1_PROGRAMM_STREAM   = MPEG1_SYSTEM_STREAM|MPEGx_PROGRAMM_STREAM,   //MPEG1 programm stream        MPEG2_PURE_VIDEO_STREAM = MPEG2_SYSTEM_STREAM|MPEGx_PURE_VIDEO_STREAM,//MPEG2 pure video stream        MPEG2_PURE_AUDIO_STREAM = MPEG2_SYSTEM_STREAM|MPEGx_PURE_AUDIO_STREAM,//MPEG2 pure audio stream        MPEG2_PES_PACKETS_STREAM= MPEG2_SYSTEM_STREAM|MPEGx_PES_PACKETS_STREAM,//MPEG2 pes packets stream        MPEG2_PROGRAMM_STREAM   = MPEG2_SYSTEM_STREAM|MPEGx_PROGRAMM_STREAM,   //MPEG2 programm stream        MPEG2_TRANSPORT_STREAM  = MPEG2_SYSTEM_STREAM|MPEGx_TRANSPORT_STREAM,  //MPEG2 transport stream        MPEG2_TRANSPORT_STREAM_TTS= MPEG2_SYSTEM_STREAM|MPEGx_TRANSPORT_STREAM | 1,  //MPEG2 transport stream        MPEG4_PURE_VIDEO_STREAM = MPEG4_SYSTEM_STREAM|MPEGx_PURE_VIDEO_STREAM,//MPEG4 pure video stream        WEB_CAM_STREAM          = 0x00100000,        ADIF_STREAM             = 0x00200000,        ADTS_STREAM             = 0x00400000    };    enum AudioStreamType    {        UNDEF_AUDIO             = 0x00000000,        PCM_AUDIO               = 0x00000001,        LPCM_AUDIO              = 0x00000002,        AC3_AUDIO               = 0x00000004,        TWINVQ_AUDIO            = 0x00000008,        MPEG1_AUDIO             = 0x00000100,        MPEG2_AUDIO             = 0x00000200,        MPEG_AUDIO_LAYER1       = 0x00000010,        MPEG_AUDIO_LAYER2       = 0x00000020,        MPEG_AUDIO_LAYER3       = 0x00000040,        MP1L1_AUDIO             = MPEG1_AUDIO|MPEG_AUDIO_LAYER1,        MP1L2_AUDIO             = MPEG1_AUDIO|MPEG_AUDIO_LAYER2,        MP1L3_AUDIO             = MPEG1_AUDIO|MPEG_AUDIO_LAYER3,        MP2L1_AUDIO             = MPEG2_AUDIO|MPEG_AUDIO_LAYER1,        MP2L2_AUDIO             = MPEG2_AUDIO|MPEG_AUDIO_LAYER2,        MP2L3_AUDIO             = MPEG2_AUDIO|MPEG_AUDIO_LAYER3,        VORBIS_AUDIO            = 0x00000400,        AAC_AUDIO               = 0x00000800,        AAC_FMT_UNDEF           = 0x00000000,   /// Undefined stream format, the decoder have to identify by bitsream        AAC_FMT_RAW             = 0x00000001,   /// Raw input stream format, the fisrt frame keeps init information        AAC_FMT_EX_GA           = 0x00000010,   /// GASpecificConfig header within the first frame.        AAC_MPEG4_STREAM        = AAC_AUDIO | AAC_FMT_RAW | AAC_FMT_EX_GA    };    enum AudioStreamSubType    {        UNDEF_AUDIO_SUBTYPE     = 0x00000000,        AAC_LC_PROFILE          = 0x00000001,        AAC_LTP_PROFILE         = 0x00000002,        AAC_MAIN_PROFILE        = 0x00000004,        AAC_SSR_PROFILE         = 0x00000008,        AAC_HE_PROFILE          = 0x00000010    };    enum VideoStreamType    {        UNDEF_VIDEO             = 0x00000000,        UNCOMPRESSED_VIDEO      = 0x00000001,        MPEG1_VIDEO             = 0x00000011,        MPEG2_VIDEO             = 0x00000012,        MPEG4_VIDEO             = 0x00000014,        H261_VIDEO              = 0x00000120,        H263_VIDEO              = 0x00000140,        H264_VIDEO              = 0x00000180,        DIGITAL_VIDEO_SD        = 0x00001200,        DIGITAL_VIDEO_50        = 0x00001400,        DIGITAL_VIDEO_HD        = 0x00001800,        WMV_VIDEO               = 0x00010000,        MJPEG_VIDEO             = 0x00020000    };    enum VideoRenderType    {        DEF_VIDEO_RENDER = 0,        DX_VIDEO_RENDER,        BLT_VIDEO_RENDER,        GDI_VIDEO_RENDER,        GX_VIDEO_RENDER,        SDL_VIDEO_RENDER,        FB_VIDEO_RENDER,        NULL_VIDEO_RENDER,        FW_VIDEO_RENDER,        MTWREG_VIDEO_RENDER,        OVL2_VIDEO_RENDER,        DXWCE_VIDEO_RENDER    };    enum AudioRenderType    {        DEF_AUDIO_RENDER = 0,        DSOUND_AUDIO_RENDER,        WINMM_AUDIO_RENDER,        OSS_AUDIO_RENDER,        NULL_AUDIO_RENDER,        FW_AUDIO_RENDER     };    enum VideoStreamSubType    {        UNDEF_VIDEO_SUBTYPE     = 0x00000000,        MPEG4_VIDEO_DIVX5       = 0x00000001,        MPEG4_VIDEO_QTIME       = 0x00000002    };    enum    {        UNDEF_MUXER             = 0x00000000,        AUDIO_MUXER             = 0x00000001,        VIDEO_MUXER             = 0x00000002,        AV_MUXER                = AUDIO_MUXER|VIDEO_MUXER,        FLAG_VMUX_NOSIZELIMIT   = 0x00000010    };    enum ColorFormat    {        NONE    = -1,        YV12    = 0,    // Planar Y, U, V, 8 bit per component        NV12    ,       // Planar merged Y, U->V, 8 bit per component        YUY2    ,       // Composite Y->U->Y->V 8 bit per component        UYVY    ,       // Composite U->Y->V->Y 8 bit per component        YUV411  ,       // Planar Y, U, V, 8 bit per component        YUV420  ,       // Planar Y, U, V, 8 bit per component (trained peolpe use only)        YUV422  ,       // Planar Y, U, V,        YUV444  ,       // Planar Y, U, V,        YUV420M ,       // Planar merged Y, U->V, 8 bit per component (trained peolpe use only)        YUV422M ,       // Planar merged Y, U->V, (trained peolpe use only)        YUV444M ,       // Planar merged Y, U->V, (trained peolpe use only)        RGB32   ,       // Composite B->G->R->A 8 bit per component        RGB24   ,       // Composite B->G->R 8 bit per component        RGB565  ,       // Composite B->G->R 5 bit per B & R, 6 bit per G        RGB555  ,       // Composite B->G->R->A, 5 bit per component, 1 bit per A        RGB444          // Composite B->G->R->A, 4 bit per component    };    enum FrameType    {        NONE_PICTURE            = 0,        I_PICTURE               = 1,        P_PICTURE               = 2,        B_PICTURE               = 3,        D_PICTURE               = 4    };    enum InterlaceType    {        PROGRESSIVE                    = 0,        FIELD_PICTURE                  = 1,        INTERLEAVED_TOP_FIELD_FIRST    = 2,        INTERLEAVED_BOTTOM_FIELD_FIRST = 3    };    enum // decoding flags    {        FLAG_VDEC_NONE          = 0x00000000,        //this falg reccomends decoder to use UV merged(NV12) internal format        //if decoder supports it. May be usefull if graphics accelerator        //supports such color format as native        FLAG_VDEC_UVMERGED      = 0x00000001,        //receiveing this flag decoder must output decompressed data        //in proper display order, otherwise it will output decompressed data        //in decoding order, application is responsible to reorder frames to        //before displying        FLAG_VDEC_REORDER       = 0x00000004,        //no preview required from decoder        FLAG_VDEC_NO_PREVIEW    = 0x00000008,        //next flag describes endian rlated properties of input data        //when set, means that coded data should be accessed by 4-reading operations        //for little-endian systems it means that each 4 bytes are swapped        //i.e [0]<->[3], [1]<->[2]        //for big-endian systems swapping is not required        FLAG_VDEC_4BYTE_ACCESS = 0x00000100,        //traditional, not UMC specific behaviour        //original byte order, headers before data, return bytes consumed        FLAG_VDEC_COMPATIBLE       = 0x00001000,        FLAG_VDEC_CHANGE_PLAY_RATE = 0x80000000    };    enum // encoding flags    {

⌨️ 快捷键说明

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