ivideo.h

Go to the documentation of this file.
00001 /* 
00002  * Copyright (c) 2011, Texas Instruments Incorporated
00003  * All rights reserved.
00004  *
00005  * Redistribution and use in source and binary forms, with or without
00006  * modification, are permitted provided that the following conditions
00007  * are met:
00008  *
00009  * *  Redistributions of source code must retain the above copyright
00010  *    notice, this list of conditions and the following disclaimer.
00011  *
00012  * *  Redistributions in binary form must reproduce the above copyright
00013  *    notice, this list of conditions and the following disclaimer in the
00014  *    documentation and/or other materials provided with the distribution.
00015  *
00016  * *  Neither the name of Texas Instruments Incorporated nor the names of
00017  *    its contributors may be used to endorse or promote products derived
00018  *    from this software without specific prior written permission.
00019  *
00020  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00021  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00022  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00023  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00024  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00025  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00026  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00027  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00028  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00029  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00030  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00031  * 
00032  */
00033 
00046 #ifndef ti_xdais_dm_IVIDEO_
00047 #define ti_xdais_dm_IVIDEO_
00048 
00049 #ifdef __cplusplus
00050 extern "C" {
00051 #endif
00052 
00055 
00063 #define IVIDEO2_MAX_IO_BUFFERS                20
00064 
00072 typedef enum {
00073     IVIDEO_NO_SKIP = 0,     
00074     IVIDEO_SKIP_P = 1,      
00091     IVIDEO_SKIP_B = 2,      
00099     IVIDEO_SKIP_I = 3,      
00100     IVIDEO_SKIP_IP = 4,     
00101     IVIDEO_SKIP_IB = 5,     
00102     IVIDEO_SKIP_PB = 6,     
00103     IVIDEO_SKIP_IPB = 7,    
00104     IVIDEO_SKIP_IDR = 8,    
00105     IVIDEO_SKIP_NONREFERENCE = 9, 
00108     IVIDEO_SKIP_DEFAULT = IVIDEO_NO_SKIP
00109 } IVIDEO_FrameSkip;
00110 
00123 typedef enum {
00124     IVIDEO_NA_FRAME = -1,   
00125     IVIDEO_I_FRAME = 0,     
00126     IVIDEO_P_FRAME = 1,     
00127     IVIDEO_B_FRAME = 2,     
00128     IVIDEO_IDR_FRAME = 3,   
00131     IVIDEO_II_FRAME = 4,    
00132     IVIDEO_IP_FRAME = 5,    
00135     IVIDEO_IB_FRAME = 6,    
00138     IVIDEO_PI_FRAME = 7,    
00141     IVIDEO_PP_FRAME = 8,    
00142     IVIDEO_PB_FRAME = 9,    
00145     IVIDEO_BI_FRAME = 10,   
00148     IVIDEO_BP_FRAME = 11,   
00151     IVIDEO_BB_FRAME = 12,   
00152     IVIDEO_MBAFF_I_FRAME = 13,   
00153     IVIDEO_MBAFF_P_FRAME = 14,   
00154     IVIDEO_MBAFF_B_FRAME = 15,   
00155     IVIDEO_MBAFF_IDR_FRAME = 16, 
00159     IVIDEO_FRAMETYPE_DEFAULT = IVIDEO_I_FRAME
00160 } IVIDEO_FrameType;
00161 
00169 typedef enum {
00170     IVIDEO_CONTENTTYPE_NA = -1,
00171     IVIDEO_PROGRESSIVE = 0,    
00172     IVIDEO_PROGRESSIVE_FRAME = IVIDEO_PROGRESSIVE, 
00173     IVIDEO_INTERLACED = 1,     
00174     IVIDEO_INTERLACED_FRAME = IVIDEO_INTERLACED,   
00175     IVIDEO_INTERLACED_TOPFIELD = 2,    
00176     IVIDEO_INTERLACED_BOTTOMFIELD = 3, 
00179     IVIDEO_CONTENTTYPE_DEFAULT = IVIDEO_PROGRESSIVE
00180 } IVIDEO_ContentType;
00181 
00182 
00190 typedef enum {
00191     IVIDEO_LOW_DELAY = 1,   
00192     IVIDEO_STORAGE = 2,     
00195     IVIDEO_TWOPASS = 3,     
00198     IVIDEO_NONE = 4,        
00201     IVIDEO_USER_DEFINED = 5,
00206     IVIDEO_RATECONTROLPRESET_DEFAULT = IVIDEO_LOW_DELAY
00207 } IVIDEO_RateControlPreset;
00208 
00209 
00217 typedef enum {
00218     IVIDEO_FRAME_ENCODED = 0,   
00219     IVIDEO_FRAME_SKIPPED = 1,   
00225     IVIDEO_SKIPMODE_DEFAULT = IVIDEO_FRAME_ENCODED
00226 } IVIDEO_SkipMode;
00227 
00228 
00245 typedef enum {
00246     IVIDEO_FRAME_NOERROR = 0,   
00248     IVIDEO_FRAME_NOTAVAILABLE = 1, 
00251     IVIDEO_FRAME_ERROR = 2,     
00272     IVIDEO_FRAME_OUTPUTSKIP = 3,
00277     IVIDEO_OUTPUTFRAMESTATUS_DEFAULT = IVIDEO_FRAME_NOERROR
00278 } IVIDEO_OutputFrameStatus;
00279 
00287 typedef enum {
00288     IVIDEO_NA_PICTURE = -1,   
00289     IVIDEO_I_PICTURE = 0,     
00290     IVIDEO_P_PICTURE = 1,     
00291     IVIDEO_B_PICTURE = 2,     
00293     IVIDEO_PICTURE_TYPE_DEFAULT = IVIDEO_I_PICTURE
00294 } IVIDEO_PictureType;
00295 
00296 
00304 typedef enum {
00305     IVIDEO_MPEG1 = 1,       
00306     IVIDEO_MPEG2SP = 2,     
00307     IVIDEO_MPEG2MP = 3,     
00308     IVIDEO_MPEG2HP = 4,     
00309     IVIDEO_MPEG4SP = 5,     
00310     IVIDEO_MPEG4ASP = 6,    
00311     IVIDEO_H264BP = 7,      
00312     IVIDEO_H264MP = 8,      
00313     IVIDEO_H264HP = 9,      
00314     IVIDEO_VC1SP = 10,      
00315     IVIDEO_VC1MP = 11,      
00316     IVIDEO_VC1AP = 12,      
00317     IVIDEO_H264RCDO = 13,   
00318     IVIDEO_RV8 = 14,        
00319     IVIDEO_RV9 = 15,        
00320     IVIDEO_RV10 = IVIDEO_RV9,  
00321     IVIDEO_ON2VP6 = 16,     
00322     IVIDEO_ON2VP7 = 17,     
00323     IVIDEO_AVS10 = 18,      
00324     IVIDEO_SORENSONSPARK = 19, 
00325     IVIDEO_H263_PROFILE0 = 20, 
00326     IVIDEO_H263_PROFILE3 = 21, 
00327     IVIDEO_H264SVC = 22,    
00328     IVIDEO_MULTIVIEW = 23,  
00329     IVIDEO_MJPEG = 24       
00330 } IVIDEO_Format;
00331 
00332 
00336 typedef struct IVIDEO_BufDesc {
00337     XDAS_Int32  numBufs;    
00338     XDAS_Int32  width;      
00339     XDAS_Int8  *bufs[XDM_MAX_IO_BUFFERS];  
00342     XDAS_Int32  bufSizes[XDM_MAX_IO_BUFFERS]; 
00345 } IVIDEO_BufDesc;
00346 
00350 typedef struct IVIDEO1_BufDescIn {
00351     XDAS_Int32  numBufs;        
00352     XDAS_Int32  frameWidth;     
00353     XDAS_Int32  frameHeight;    
00354     XDAS_Int32  framePitch;     
00359     XDM1_SingleBufDesc bufDesc[XDM_MAX_IO_BUFFERS]; 
00360 } IVIDEO1_BufDescIn;
00361 
00362 
00366 #define IVIDEO_MAX_YUV_BUFFERS  3
00367 
00371 typedef struct IVIDEO1_BufDesc {
00372     XDAS_Int32  numBufs;        
00373     XDAS_Int32  frameWidth;     
00374     XDAS_Int32  frameHeight;    
00375     XDAS_Int32  framePitch;     
00380     XDM1_SingleBufDesc bufDesc[IVIDEO_MAX_YUV_BUFFERS]; 
00381     XDAS_Int32 extendedError;   
00382     XDAS_Int32 frameType;       
00386     XDAS_Int32 topFieldFirstFlag;
00399     XDAS_Int32 repeatFirstFieldFlag;
00412     XDAS_Int32 frameStatus;     
00419     XDAS_Int32 repeatFrame;     
00446     XDAS_Int32 contentType;     
00460     XDAS_Int32 chromaFormat;    
00464 } IVIDEO1_BufDesc;
00465 
00475 typedef enum {
00476     IVIDEO_FIELD_INTERLEAVED = 0, 
00477     IVIDEO_FIELD_SEPARATED = 1,   
00478     IVIDEO_TOP_ONLY = 2,          
00479     IVIDEO_BOTTOM_ONLY = 3        
00480 } IVIDEO_VideoLayout;
00481 
00495 typedef enum {
00496     IVIDEO_DECODE_ONLY = 0,     
00497     IVIDEO_ENCODE_ONLY = 1,     
00498     IVIDEO_TRANSCODE_FRAMELEVEL = 2,
00502     IVIDEO_TRANSCODE_MBLEVEL = 3, 
00506     IVIDEO_TRANSRATE_FRAMELEVEL = 4,
00510     IVIDEO_TRANSRATE_MBLEVEL = 5 
00514 } IVIDEO_OperatingMode;
00515 
00525 typedef enum {
00526     IVIDEO_YUVRANGE_FULL = 0, 
00527     IVIDEO_YUVRANGE_ITU = 1   
00528 } IVIDEO_BitRange;
00529 
00542 typedef enum {
00543     IVIDEO_FIXEDLENGTH = 0, 
00544     IVIDEO_SLICEMODE = 1,   
00545     IVIDEO_NUMROWS = 2,     
00546     IVIDEO_ENTIREFRAME = 3  
00547 } IVIDEO_DataMode;
00548 
00549 
00555 typedef enum {
00556     IVIDEO_ERRORINFO_OFF  = 0,         
00559     IVIDEO_ERRORINFO_ON_INPUT  = 1,    
00562     IVIDEO_ERRORINFO_ON_OUTPUT  = 2,   
00565     IVIDEO_ERRORINFO_ON_BOTH  = 3,     
00570     IVIDEO_ERRORINFO_MODE_DEFAULT = IVIDEO_ERRORINFO_OFF
00571 
00572 } IVIDEO_ErrorInfoMode;
00573 
00577 #define IVIDEO_MAX_NUM_PLANES           3   
00578 #define IVIDEO_MAX_NUM_METADATA_PLANES  3   
00586 /*
00587  *  @brief      Metadata types
00588  *
00589  *  @enumWarning
00590  *
00591  *  @extendedEnum
00592  */
00593 typedef enum {
00594     IVIDEO_METADATAPLANE_NONE = -1,         
00597     IVIDEO_METADATAPLANE_MBINFO = 0,        
00603     IVIDEO_METADATAPLANE_EINFO = 1,         
00609     IVIDEO_METADATAPLANE_ALPHA = 2          
00616 } IVIDEO_MetadataType;
00617 
00621 typedef struct IVIDEO2_BufDesc {
00622     XDAS_Int32 numPlanes;       
00629     XDAS_Int32 numMetaPlanes;   
00636     XDAS_Int32 dataLayout;      
00643     XDM2_SingleBufDesc planeDesc[IVIDEO_MAX_NUM_PLANES]; 
00644     XDM2_SingleBufDesc metadataPlaneDesc[IVIDEO_MAX_NUM_METADATA_PLANES]; 
00650     XDAS_Int32  secondFieldOffsetWidth[IVIDEO_MAX_NUM_PLANES];  
00663     XDAS_Int32  secondFieldOffsetHeight[IVIDEO_MAX_NUM_PLANES];  
00675     XDAS_Int32  imagePitch[IVIDEO_MAX_NUM_PLANES];  
00678     XDM_Rect    imageRegion;    
00681     XDM_Rect    activeFrameRegion; 
00684     XDAS_Int32  extendedError;  
00689     XDAS_Int32 frameType;       
00696     XDAS_Int32 topFieldFirstFlag;
00709     XDAS_Int32 repeatFirstFieldFlag;   /* not required for encoder input buffer */
00722     XDAS_Int32 frameStatus;       /* not required for encoder input buffer */
00729     XDAS_Int32 repeatFrame;         /* not required for encoder input buffer */
00756     XDAS_Int32 contentType;     
00770     XDAS_Int32 chromaFormat;     
00774     XDAS_Int32 scalingWidth;    
00784     XDAS_Int32 scalingHeight;   
00791     XDAS_Int32 rangeMappingLuma;
00800     XDAS_Int32 rangeMappingChroma;
00809     XDAS_Int32 enableRangeReductionFlag;
00820 } IVIDEO2_BufDesc;
00821 
00822 
00825 #ifdef __cplusplus
00826 }
00827 #endif
00828 
00829 #endif
00830 /*
00831  *  @(#) ti.xdais.dm; 1, 0, 7,7; 6-14-2011 10:34:32; /db/wtree/library/trees/dais/dais.git/src/ dais-u02
00832  */
00833 
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines

Copyright 2011, Texas Instruments Incorporated