ividdec3.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00047 #ifndef ti_xdais_dm_IVIDDEC3_
00048 #define ti_xdais_dm_IVIDDEC3_
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
00059
00062
00063 #define IVIDDEC3_EOK XDM_EOK
00064 #define IVIDDEC3_EFAIL XDM_EFAIL
00065 #define IVIDDEC3_EUNSUPPORTED XDM_EUNSUPPORTED
00071 typedef struct IVIDDEC3_Obj {
00072 struct IVIDDEC3_Fxns *fxns;
00073 } IVIDDEC3_Obj;
00074
00075
00079 typedef struct IVIDDEC3_Obj *IVIDDEC3_Handle;
00080
00081
00092 typedef enum {
00093 IVIDDEC3_DISPLAY_DELAY_AUTO = -1,
00094 IVIDDEC3_DECODE_ORDER = 0,
00095 IVIDDEC3_DISPLAY_DELAY_1 = 1,
00096 IVIDDEC3_DISPLAY_DELAY_2 = 2,
00097 IVIDDEC3_DISPLAY_DELAY_3 = 3,
00098 IVIDDEC3_DISPLAY_DELAY_4 = 4,
00099 IVIDDEC3_DISPLAY_DELAY_5 = 5,
00100 IVIDDEC3_DISPLAY_DELAY_6 = 6,
00101 IVIDDEC3_DISPLAY_DELAY_7 = 7,
00102 IVIDDEC3_DISPLAY_DELAY_8 = 8,
00103 IVIDDEC3_DISPLAY_DELAY_9 = 9,
00104 IVIDDEC3_DISPLAY_DELAY_10 = 10,
00105 IVIDDEC3_DISPLAY_DELAY_11 = 11,
00106 IVIDDEC3_DISPLAY_DELAY_12 = 12,
00107 IVIDDEC3_DISPLAY_DELAY_13 = 13,
00108 IVIDDEC3_DISPLAY_DELAY_14 = 14,
00109 IVIDDEC3_DISPLAY_DELAY_15 = 15,
00110 IVIDDEC3_DISPLAY_DELAY_16 = 16,
00111 IVIDDEC3_DISPLAYDELAY_DEFAULT = IVIDDEC3_DISPLAY_DELAY_AUTO
00112 } IVIDDEC3_displayDelay;
00113
00120 typedef struct IVIDDEC3_Params {
00121 XDAS_Int32 size;
00122 XDAS_Int32 maxHeight;
00123 XDAS_Int32 maxWidth;
00124 XDAS_Int32 maxFrameRate;
00129 XDAS_Int32 maxBitRate;
00133 XDAS_Int32 dataEndianness;
00137 XDAS_Int32 forceChromaFormat;
00141 XDAS_Int32 operatingMode;
00145 XDAS_Int32 displayDelay;
00149 XDAS_Int32 inputDataMode;
00169 XDAS_Int32 outputDataMode;
00185 XDAS_Int32 numInputDataUnits;
00194 XDAS_Int32 numOutputDataUnits;
00203 XDAS_Int32 errorInfoMode;
00208 XDAS_Int32 displayBufsMode;
00219 XDAS_Int32 metadataType[IVIDEO_MAX_NUM_METADATA_PLANES];
00224 } IVIDDEC3_Params;
00225
00226
00241 typedef struct IVIDDEC3_DynamicParams {
00242 XDAS_Int32 size;
00243 XDAS_Int32 decodeHeader;
00247 XDAS_Int32 displayWidth;
00252 XDAS_Int32 frameSkipMode;
00256 XDAS_Int32 newFrameFlag;
00268 XDM_DataSyncPutFxn putDataFxn;
00269 XDM_DataSyncHandle putDataHandle;
00270 XDM_DataSyncGetFxn getDataFxn;
00271 XDM_DataSyncHandle getDataHandle;
00272 XDM_DataSyncPutBufferFxn putBufferFxn;
00273 XDM_DataSyncHandle putBufferHandle;
00274 XDAS_Int32 lateAcquireArg;
00303 } IVIDDEC3_DynamicParams;
00304
00305
00314 typedef struct IVIDDEC3_InArgs {
00315 XDAS_Int32 size;
00316 XDAS_Int32 numBytes;
00319 XDAS_Int32 inputID;
00338 } IVIDDEC3_InArgs;
00339
00340
00348 typedef struct IVIDDEC3_Status {
00349 XDAS_Int32 size;
00350 XDAS_Int32 extendedError;
00351 XDM1_SingleBufDesc data;
00372 XDAS_Int32 maxNumDisplayBufs;
00378 XDAS_Int32 maxOutArgsDisplayBufs;
00389 XDAS_Int32 outputHeight;
00390 XDAS_Int32 outputWidth;
00391 XDAS_Int32 frameRate;
00396 XDAS_Int32 bitRate;
00397 XDAS_Int32 contentType;
00401 XDAS_Int32 sampleAspectRatioHeight;
00402 XDAS_Int32 sampleAspectRatioWidth;
00403 XDAS_Int32 bitRange;
00404 XDAS_Int32 forceChromaFormat;
00420 XDAS_Int32 operatingMode;
00421 XDAS_Int32 frameOrder;
00422 XDAS_Int32 inputDataMode;
00428 XDAS_Int32 outputDataMode;
00434 XDM1_AlgBufInfo bufInfo;
00445 XDAS_Int32 numInputDataUnits;
00454 XDAS_Int32 numOutputDataUnits;
00463 XDAS_Int32 configurationID;
00478 XDAS_Int32 metadataType[IVIDEO_MAX_NUM_METADATA_PLANES];
00483 IVIDDEC3_DynamicParams decDynamicParams;
00490 } IVIDDEC3_Status;
00491
00492
00504 typedef enum {
00505 IVIDDEC3_DISPLAYBUFS_EMBEDDED = 1,
00516 IVIDDEC3_DISPLAYBUFS_PTRS = 2
00537 } IVIDDEC3_DisplayBufsMode;
00538
00539
00561 typedef struct IVIDDEC3_OutArgs {
00562 XDAS_Int32 size;
00573 XDAS_Int32 extendedError;
00574 XDAS_Int32 bytesConsumed;
00577 XDAS_Int32 outputID[IVIDEO2_MAX_IO_BUFFERS];
00592 IVIDEO2_BufDesc decodedBufs;
00607 XDAS_Int32 freeBufID[IVIDEO2_MAX_IO_BUFFERS];
00644 XDAS_Int32 outBufsInUseFlag;
00653 XDAS_Int32 displayBufsMode;
00670 union {
00671 IVIDEO2_BufDesc bufDesc[1];
00714 IVIDEO2_BufDesc *pBufDesc[IVIDEO2_MAX_IO_BUFFERS];
00724 } displayBufs;
00750 } IVIDDEC3_OutArgs;
00751
00752
00763 typedef IALG_Cmd IVIDDEC3_Cmd;
00764
00765
00769 typedef struct IVIDDEC3_Fxns {
00770 IALG_Fxns ialg;
00867 XDAS_Int32 (*process)(IVIDDEC3_Handle handle, XDM2_BufDesc *inBufs,
00868 XDM2_BufDesc *outBufs, IVIDDEC3_InArgs *inArgs,
00869 IVIDDEC3_OutArgs *outArgs);
00870
00871
00907 XDAS_Int32 (*control)(IVIDDEC3_Handle handle, IVIDDEC3_Cmd id,
00908 IVIDDEC3_DynamicParams *params, IVIDDEC3_Status *status);
00909
00910 } IVIDDEC3_Fxns;
00911
00912
00915 #ifdef __cplusplus
00916 }
00917 #endif
00918
00919 #endif
00920
00921
00922
00923