ivideo.h

Go to the documentation of this file.
00001 /* 
00002  * Copyright (c) 2009, 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 typedef enum {
00064     IVIDEO_NO_SKIP = 0,     
00065     IVIDEO_SKIP_P = 1,      
00082     IVIDEO_SKIP_B = 2,      
00090     IVIDEO_SKIP_I = 3,      
00091     IVIDEO_SKIP_IP = 4,     
00092     IVIDEO_SKIP_IB = 5,     
00093     IVIDEO_SKIP_PB = 6,     
00094     IVIDEO_SKIP_IPB = 7,    
00095     IVIDEO_SKIP_IDR = 8,    
00098     IVIDEO_SKIP_DEFAULT = IVIDEO_NO_SKIP
00099 } IVIDEO_FrameSkip;
00100 
00113 typedef enum {
00114     IVIDEO_NA_FRAME = -1,   
00115     IVIDEO_I_FRAME = 0,     
00116     IVIDEO_P_FRAME = 1,     
00117     IVIDEO_B_FRAME = 2,     
00118     IVIDEO_IDR_FRAME = 3,   
00121     IVIDEO_II_FRAME = 4,    
00122     IVIDEO_IP_FRAME = 5,    
00125     IVIDEO_IB_FRAME = 6,    
00128     IVIDEO_PI_FRAME = 7,    
00131     IVIDEO_PP_FRAME = 8,    
00132     IVIDEO_PB_FRAME = 9,    
00135     IVIDEO_BI_FRAME = 10,   
00138     IVIDEO_BP_FRAME = 11,   
00141     IVIDEO_BB_FRAME = 12,   
00142     IVIDEO_MBAFF_I_FRAME = 13,   
00143     IVIDEO_MBAFF_P_FRAME = 14,   
00144     IVIDEO_MBAFF_B_FRAME = 15,   
00145     IVIDEO_MBAFF_IDR_FRAME = 16, 
00149     IVIDEO_FRAMETYPE_DEFAULT = IVIDEO_I_FRAME
00150 } IVIDEO_FrameType;
00151 
00159 typedef enum {
00160     IVIDEO_CONTENTTYPE_NA = -1,
00161     IVIDEO_PROGRESSIVE = 0,    
00162     IVIDEO_PROGRESSIVE_FRAME = IVIDEO_PROGRESSIVE, 
00163     IVIDEO_INTERLACED = 1,     
00164     IVIDEO_INTERLACED_FRAME = IVIDEO_INTERLACED,   
00165     IVIDEO_INTERLACED_TOPFIELD = 2,    
00166     IVIDEO_INTERLACED_BOTTOMFIELD = 3, 
00169     IVIDEO_CONTENTTYPE_DEFAULT = IVIDEO_PROGRESSIVE
00170 } IVIDEO_ContentType;
00171 
00172 
00180 typedef enum {
00181     IVIDEO_LOW_DELAY = 1,   
00182     IVIDEO_STORAGE = 2,     
00185     IVIDEO_TWOPASS = 3,     
00188     IVIDEO_NONE = 4,        
00191     IVIDEO_USER_DEFINED = 5,
00196     IVIDEO_RATECONTROLPRESET_DEFAULT = IVIDEO_LOW_DELAY
00197 } IVIDEO_RateControlPreset;
00198 
00199 
00207 typedef enum {
00208     IVIDEO_FRAME_ENCODED = 0,   
00209     IVIDEO_FRAME_SKIPPED = 1,   
00215     IVIDEO_SKIPMODE_DEFAULT = IVIDEO_FRAME_ENCODED
00216 } IVIDEO_SkipMode;
00217 
00218 
00235 typedef enum {
00236     IVIDEO_FRAME_NOERROR = 0,   
00238     IVIDEO_FRAME_NOTAVAILABLE = 1, 
00241     IVIDEO_FRAME_ERROR = 2,     
00264     IVIDEO_OUTPUTFRAMESTATUS_DEFAULT = IVIDEO_FRAME_NOERROR
00265 } IVIDEO_OutputFrameStatus;
00266 
00274 typedef enum {
00275     IVIDEO_NA_PICTURE = -1,   
00276     IVIDEO_I_PICTURE = 0,     
00277     IVIDEO_P_PICTURE = 1,     
00278     IVIDEO_B_PICTURE = 2,     
00280     IVIDEO_PICTURE_TYPE_DEFAULT = IVIDEO_I_PICTURE
00281 } IVIDEO_PictureType;
00282 
00283 
00291 typedef enum {
00292     IVIDEO_MPEG1 = 1,       
00293     IVIDEO_MPEG2SP = 2,     
00294     IVIDEO_MPEG2MP = 3,     
00295     IVIDEO_MPEG2HP = 4,     
00296     IVIDEO_MPEG4SP = 5,     
00297     IVIDEO_MPEG4ASP = 6,    
00298     IVIDEO_H264BP = 7,      
00299     IVIDEO_H264MP = 8,      
00300     IVIDEO_H264HP = 9,      
00301     IVIDEO_VC1SP = 10,      
00302     IVIDEO_VC1MP = 11,      
00303     IVIDEO_VC1AP = 12       
00304 } IVIDEO_Format;
00305 
00306 
00310 typedef struct IVIDEO_BufDesc {
00311     XDAS_Int32  numBufs;    
00312     XDAS_Int32  width;      
00313     XDAS_Int8  *bufs[XDM_MAX_IO_BUFFERS];  
00316     XDAS_Int32  bufSizes[XDM_MAX_IO_BUFFERS]; 
00319 } IVIDEO_BufDesc;
00320 
00324 typedef struct IVIDEO1_BufDescIn {
00325     XDAS_Int32  numBufs;        
00326     XDAS_Int32  frameWidth;     
00327     XDAS_Int32  frameHeight;    
00328     XDAS_Int32  framePitch;     
00333     XDM1_SingleBufDesc bufDesc[XDM_MAX_IO_BUFFERS]; 
00334 } IVIDEO1_BufDescIn;
00335 
00336 
00340 #define IVIDEO_MAX_YUV_BUFFERS  3
00341 
00345 typedef struct IVIDEO1_BufDesc {
00346     XDAS_Int32  numBufs;        
00347     XDAS_Int32  frameWidth;     
00348     XDAS_Int32  frameHeight;    
00349     XDAS_Int32  framePitch;     
00354     XDM1_SingleBufDesc bufDesc[IVIDEO_MAX_YUV_BUFFERS]; 
00355     XDAS_Int32 extendedError;   
00356     XDAS_Int32 frameType;       
00360     XDAS_Int32 topFieldFirstFlag;
00373     XDAS_Int32 repeatFirstFieldFlag;
00386     XDAS_Int32 frameStatus;     
00393     XDAS_Int32 repeatFrame;     
00420     XDAS_Int32 contentType;     
00434     XDAS_Int32 chromaFormat;    
00438 } IVIDEO1_BufDesc;
00439 
00440 
00443 #ifdef __cplusplus
00444 }
00445 #endif
00446 
00447 #endif
00448 /*
00449  *  @(#) ti.xdais.dm; 1, 0, 5,194; 3-13-2009 12:27:50; /db/wtree/library/trees/dais/dais-o05x/src/
00450  */
00451 

Copyright 2009, Texas Instruments Incorporated