📄 ividdec1.h
字号:
* @sa XDM_AlgBufInfo */} IVIDDEC1_Status;/** * @brief Defines the run time output arguments for * all IVIDDEC1 instance objects. * * @extensibleStruct * * @sa IVIDDEC1_Fxns::process() */typedef struct IVIDDEC1_OutArgs { XDAS_Int32 size; /**< @sizeField */ XDAS_Int32 extendedError; /**< @extendedErrorField */ XDAS_Int32 bytesConsumed; /**< Number of bytes consumed during the * process() call. */ XDAS_Int32 decodedFrameType;/**< @copydoc IVIDEO_FrameType * * @sa IVIDEO_FrameType */ XDAS_Int32 outputID; /**< Output ID corresponding with the decoded * buffer. * * @remarks This will be set to zero when * there is no output buffer * present in displayBufs. * * @sa IVIDDEC1_InArgs#inputID */ IVIDEO_BufDesc displayBufs; /**< The decoder fills these buffers * with the current displayable * frames. In case of sequences * having I & P frames only, these * values are identical to outBufs * passed in process(). */ XDAS_Int32 topFieldFirstFlag;/**< Flag to indicate when the application * should display the top field first. * * @remarks Valid values are XDAS_TRUE * and XDAS_FALSE. * * @remarks This field is only applicable * to the display buffer, * not the decoded frame. * * @remarks This field is only applicable * for interlaced content, not * progressive. */ XDAS_Int32 repeatFirstFieldFlag;/**< Flag to indicate when the first field * should be repeated. * * @remarks Valid values are XDAS_TRUE * and XDAS_FALSE. * * @remarks This field is only applicable * to the display buffer, * not the decoded frame. * * @remarks This field is only applicable * for interlaced content, not * progressive. */ XDAS_Int32 outBufRetainedFlag;/**< Flag to indicate when the algorithm * retains the output buffer. When XDAS_TRUE, * ownership of the buffer has transferred * from the application to the algorithm, * and the application no longer owns the * buffer. * * @remarks Valid values are XDAS_TRUE * and XDAS_FALSE. */ XDAS_Int32 displayBufsStatus;/**< @copydoc IVIDEO_OutputFrameStatus * * @sa IVIDEO_OutputFrameStatus */ XDAS_Int32 repeatFrame; /**< Number of times the display process * needs to repeat the displayed progressive * frame. * * @remarks This information is useful * for progressive * content when the * decoder expects the * display process to * repeat the displayed * frame for a certain * number of times. This * is useful for pulldown * (frame/field * repetition by display * system) support * where the display * frame rate is * increased without * increasing the decode * frame rate. * * @remarks The default value is 0. */ XDAS_Int32 displayContentType;/**< Content type of the display buffer. * * @remarks This field is only applicable * to the display buffer, * not the decoded frame. * * @remarks This is useful when the * content is both * interlaced and * progressive. The * display process can * use this field to * determine how to * render the display * buffer. * * @sa IVIDEO_ContentType */} IVIDDEC1_OutArgs;/** * @brief Defines the control commands for the IVIDDEC1 module. * * @remarks This ID can be extended in IMOD interface for * additional controls. * * @sa XDM_CmdId * * @sa IVIDDEC1_Fxns::control() */typedef IALG_Cmd IVIDDEC1_Cmd;/** * @brief Defines all of the operations on IVIDDEC1 objects. */typedef struct IVIDDEC1_Fxns { IALG_Fxns ialg; /**< Traditional xDAIS algorithm interface. *//** * @brief Basic video decoding call. * * @param[in] handle Handle to an algorithm instance. * @param[in] inBufs Input buffer descriptors. * @param[in,out] outBufs Output buffer descriptors. The algorithm * may modify the output buffer pointers. * @param[in] inArgs Input arguments. This is a required * parameter. * @param[out] outArgs Ouput results. This is a required parameter. * * @pre @c inArgs must not be NULL, and must point to a valid * IVIDDEC1_InArgs structure. * * @pre @c outArgs must not be NULL, and must point to a valid * IVIDDEC1_OutArgs structure. * * @pre @c inBufs must not be NULL, and must point to a valid * XDM_BufDesc structure. * * @pre @c inBufs.buf[0] must not be NULL, and must point to a valid * buffer of data that is at least @c inBufs.bufSizes[0] bytes in * length. * * @pre @c outBufs must not be NULL, and must point to a valid * XDM_BufDesc structure. * * @pre @c outBufs.buf[0] must not be NULL, and must point to a valid * buffer of data that is at least @c outBufs.bufSizes[0] bytes in * length. * * @post The algorithm <b>must not</b> modify the contents of * @c inBufs or @c inArgs. * That is, the data and buffers pointed to by these parameters * must be treated as read-only. * * @retval IALG_EOK Success. * @retval IALG_EFAIL Failure. See IVIDDEC1_OutArgs#extendedError * for more detailed further error conditions. */ XDAS_Int32 (*process)(IVIDDEC1_Handle handle, XDM_BufDesc *inBufs, XDM_BufDesc *outBufs, IVIDDEC1_InArgs *inArgs, IVIDDEC1_OutArgs *outArgs);/** * @brief Control behaviour of an algorithm. * * @param[in] handle Handle to an algorithm instance. * @param[in] id Command id. See #XDM_CmdId. * @param[in] params Dynamic parameters. This is a required * parameter. * @param[out] status Output results. This is a required parameter. * * @pre @c params must not be NULL, and must point to a valid * IVIDDEC1_DynamicParams structure. * * @pre @c status must not be NULL, and must point to a valid * IVIDDEC1_Status structure. * * @post The algorithm <b>must not</b> modify the contents of @c params. * That is, the data pointed to by this parameter must be * treated as read-only. * * @retval IALG_EOK Success. * @retval IALG_EFAIL Failure. See IVIDDEC1_Status#extendedError * for more detailed further error conditions. */ XDAS_Int32 (*control)(IVIDDEC1_Handle handle, IVIDDEC1_Cmd id, IVIDDEC1_DynamicParams *params, IVIDDEC1_Status *status);} IVIDDEC1_Fxns;/*@}*/#ifdef __cplusplus}#endif#endif /* ti_xdais_dm_IVIDDEC1_ *//* * @(#) ti.xdais.dm; 1, 0, 1, 0,46; 10-18-2006 19:11:35; /db/wtree/library/trees/dais-g07x/src/ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -