ividtranscode.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 
00047 #ifndef ti_xdais_dm_IVIDTRANSCODE_
00048 #define ti_xdais_dm_IVIDTRANSCODE_
00049 
00050 #include <ti/xdais/ialg.h>
00051 #include <ti/xdais/xdas.h>
00052 #include "xdm.h"
00053 #include "ivideo.h"
00054 
00055 #ifdef __cplusplus
00056 extern "C" {
00057 #endif
00058 
00061 
00062 #define IVIDTRANSCODE_EOK       XDM_EOK             
00063 #define IVIDTRANSCODE_EFAIL     XDM_EFAIL           
00064 #define IVIDTRANSCODE_EUNSUPPORTED XDM_EUNSUPPORTED 
00066 #define IVIDTRANSCODE_MAXOUTSTREAMS 2               
00072 typedef struct IVIDTRANSCODE_Obj {
00073     struct IVIDTRANSCODE_Fxns *fxns;
00074 } IVIDTRANSCODE_Obj;
00075 
00076 
00080 typedef struct IVIDTRANSCODE_Obj  *IVIDTRANSCODE_Handle;
00081 
00082 
00089 typedef struct IVIDTRANSCODE_Params {
00090     XDAS_Int32 size;            
00091     XDAS_Int32 numOutputStreams; 
00096     XDAS_Int32 formatInput;     
00104     XDAS_Int32 formatOutput[IVIDTRANSCODE_MAXOUTSTREAMS];  
00114     XDAS_Int32 maxHeightInput;  
00115     XDAS_Int32 maxWidthInput;   
00116     XDAS_Int32 maxFrameRateInput; 
00121     XDAS_Int32 maxBitRateInput;  
00125     XDAS_Int32 maxHeightOutput[IVIDTRANSCODE_MAXOUTSTREAMS];  
00128     XDAS_Int32 maxWidthOutput[IVIDTRANSCODE_MAXOUTSTREAMS];   
00131     XDAS_Int32 maxFrameRateOutput[IVIDTRANSCODE_MAXOUTSTREAMS]; 
00138     XDAS_Int32 maxBitRateOutput[IVIDTRANSCODE_MAXOUTSTREAMS]; 
00145     XDAS_Int32 dataEndianness;  
00149 } IVIDTRANSCODE_Params;
00150 
00151 
00166 typedef struct IVIDTRANSCODE_DynamicParams {
00167     XDAS_Int32 size;            
00168     XDAS_Int32 readHeaderOnlyFlag; 
00174     XDAS_Int32 keepInputResolutionFlag[IVIDTRANSCODE_MAXOUTSTREAMS]; 
00183     XDAS_Int32 outputHeight[IVIDTRANSCODE_MAXOUTSTREAMS];    
00192     XDAS_Int32 outputWidth[IVIDTRANSCODE_MAXOUTSTREAMS];     
00201     XDAS_Int32 keepInputFrameRateFlag[IVIDTRANSCODE_MAXOUTSTREAMS]; 
00209     XDAS_Int32 inputFrameRate;  
00220     XDAS_Int32 outputFrameRate[IVIDTRANSCODE_MAXOUTSTREAMS]; 
00232     XDAS_Int32 targetBitRate[IVIDTRANSCODE_MAXOUTSTREAMS]; 
00236     XDAS_Int32 rateControl[IVIDTRANSCODE_MAXOUTSTREAMS];   
00242     XDAS_Int32 keepInputGOPFlag[IVIDTRANSCODE_MAXOUTSTREAMS]; 
00249     XDAS_Int32 intraFrameInterval[IVIDTRANSCODE_MAXOUTSTREAMS];
00266     XDAS_Int32 interFrameInterval[IVIDTRANSCODE_MAXOUTSTREAMS];
00286     XDAS_Int32 forceFrame[IVIDTRANSCODE_MAXOUTSTREAMS];  
00310     XDAS_Int32 frameSkipTranscodeFlag[IVIDTRANSCODE_MAXOUTSTREAMS];   
00323 } IVIDTRANSCODE_DynamicParams;
00324 
00325 
00334 typedef struct IVIDTRANSCODE_InArgs {
00335     XDAS_Int32 size;            
00336     XDAS_Int32 numBytes;        
00339     XDAS_Int32 inputID;         
00344 } IVIDTRANSCODE_InArgs;
00345 
00346 
00354 typedef struct IVIDTRANSCODE_Status {
00355     XDAS_Int32 size;            
00356     XDAS_Int32 extendedError;   
00357     XDM1_SingleBufDesc data;    
00378     XDM_AlgBufInfo bufInfo;     
00390 } IVIDTRANSCODE_Status;
00391 
00392 
00401 typedef struct IVIDTRANSCODE_OutArgs {
00402     XDAS_Int32 size;            
00403     XDAS_Int32 extendedError;   
00404     XDAS_Int32 bitsConsumed;    
00407     XDAS_Int32 bitsGenerated[IVIDTRANSCODE_MAXOUTSTREAMS];   
00412     XDAS_Int32 decodedPictureType;
00416     XDAS_Int32 decodedPictureStructure; 
00420     XDAS_Int32 encodedPictureType[IVIDTRANSCODE_MAXOUTSTREAMS];
00425     XDAS_Int32 encodedPictureStructure[IVIDTRANSCODE_MAXOUTSTREAMS];
00431     XDAS_Int32 decodedHeight;   
00432     XDAS_Int32 decodedWidth;    
00433     XDAS_Int32 outputID[IVIDTRANSCODE_MAXOUTSTREAMS];        
00446     XDAS_Int32 inputFrameSkipTranscodeFlag[IVIDTRANSCODE_MAXOUTSTREAMS]; 
00454     XDM1_SingleBufDesc encodedBuf[IVIDTRANSCODE_MAXOUTSTREAMS];
00460     XDAS_Int32 outBufsInUseFlag; 
00470 } IVIDTRANSCODE_OutArgs;
00471 
00472 
00483 typedef  IALG_Cmd IVIDTRANSCODE_Cmd;
00484 
00485 
00489 typedef struct IVIDTRANSCODE_Fxns {
00490     IALG_Fxns   ialg;             
00559     XDAS_Int32 (*process)(IVIDTRANSCODE_Handle handle, XDM1_BufDesc *inBufs,
00560         XDM_BufDesc *outBufs, IVIDTRANSCODE_InArgs *inArgs,
00561         IVIDTRANSCODE_OutArgs *outArgs);
00562 
00563 
00599     XDAS_Int32 (*control)(IVIDTRANSCODE_Handle handle, IVIDTRANSCODE_Cmd id,
00600         IVIDTRANSCODE_DynamicParams *params, IVIDTRANSCODE_Status *status);
00601 
00602 } IVIDTRANSCODE_Fxns;
00603 
00604 
00607 #ifdef __cplusplus
00608 }
00609 #endif
00610 
00611 #endif
00612 /*
00613  *  @(#) ti.xdais.dm; 1, 0, 5,194; 3-13-2009 12:27:50; /db/wtree/library/trees/dais/dais-o05x/src/
00614  */
00615 

Copyright 2009, Texas Instruments Incorporated