⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ivideo.h

📁 TI Algorithm Soft Kit 5.10 仅包括实例及其原代码
💻 H
字号:
/*  *  Copyright 2006 *  Texas Instruments Incorporated * *  All rights reserved.  Property of Texas Instruments Incorporated *  Restricted rights to use, duplicate or disclose this code are *  granted through contract. *  *//** *  @file       /ti/xdais/dm/ivideo.h * *  @brief      This header defines all types, constants, enums, and functions *              that are common across the various video codecs. *//** *  @addtogroup   ti_xdais_dm_IVIDEO    xDM 0.9 Video Interface * *  This is the xDM video interface shared between the various codecs. * *  @todo       In speech, we added a "default" enum value to each enum, *              should we do the same for video (and the other classes)? */#ifndef ti_xdais_dm_IVIDEO_#define ti_xdais_dm_IVIDEO_#ifdef __cplusplusextern "C" {#endif/** @ingroup    ti_xdais_dm_IVIDEO *//*@{*//** *  @brief      Video frame skip features for video decoder. * *  @todo       Proposed IVIDDEC_DynamicParams::frameSkipMode mentions *              IVIDEO_SKIP_IDR (for H.264).  Is that needed here? */typedef enum {    IVIDEO_NO_SKIP = 0,     /**< Do not skip any frame types. */    IVIDEO_SKIP_P = 1,      /**< Decode the P frame/skip frames internally,                             *   but do not copy the decoded output to the                             *   output buffers.  This should be indicated                             *   by setting the output buffers to NULL.                             *                             *   @remarks       For example, if a B frame is                             *                  dependant on the                             *                  previously decoded P                             *                  frame, the B frame                             *                  shall be decoded and                             *                  displayed                             *                  successfully.  For                             *                  this, the P frame                             *                  needs to be decoded,                             *                  but not copied to the                             *                  output buffer.                             */    IVIDEO_SKIP_B = 2,      /**< Skip B, BI frames.  For B frames, the                             *   decoder will decode the frame                             *   bitstream, and return as soon as the                             *   frame type is decisively decoded.                             *   Internally, the algorithm will modify                             *   its state, so that subsequent                             *   decoding of other frames is possible.                             */    IVIDEO_SKIP_I = 3,      /**< Skip intra coded frame. */    IVIDEO_SKIP_IP = 4,     /**< Skip I and P frame/field(s). */    IVIDEO_SKIP_IB = 5,     /**< Skip I and B frame/field(s). */    IVIDEO_SKIP_PB = 6,     /**< Skip P and B frame/field(s). */    IVIDEO_SKIP_IPB = 7     /**< Skip I/P/B/BI frames. */} IVIDEO_FrameSkip;/** *  @brief      Video frame types. * *  @remarks    For the various @c IVIDEO_xy_FRAME values, this frame type is *              interlaced where both top and bottom fields are *              provided in a single frame.  The first field is an "x" *              frame, the second field is "y" field. */typedef enum {    IVIDEO_NA_FRAME = -1,   /**< Frame type not available. */    IVIDEO_I_FRAME = 0,     /**< Intra coded frame. */    IVIDEO_P_FRAME = 1,     /**< Forward inter coded frame. */    IVIDEO_B_FRAME = 2,     /**< Bi-directional inter coded frame. */    IVIDEO_IDR_FRAME = 3,   /**< Intra coded frame that can be used for                             *   refreshing video content.                             */    IVIDEO_II_FRAME = 4,    /**< Interlaced Frame, both fields are I frames */    IVIDEO_IP_FRAME = 5,    /**< Interlaced Frame, first field is an I frame,                             *   second field is a P frame.                             */    IVIDEO_IB_FRAME = 6,    /**< Interlaced Frame, first field is an I frame,                             *   second field is a B frame.                             */    IVIDEO_PI_FRAME = 7,    /**< Interlaced Frame, first field is a P frame,                             *   second field is a I frame.                             */    IVIDEO_PP_FRAME = 8,    /**< Interlaced Frame, both fields are P frames. */    IVIDEO_PB_FRAME = 9,    /**< Interlaced Frame, first field is a P frame,                             *   second field is a B frame.                             */    IVIDEO_BI_FRAME = 10,   /**< Interlaced Frame, first field is a B frame,                             *   second field is an I frame.                             */    IVIDEO_BP_FRAME = 11,   /**< Interlaced Frame, first field is a B frame,                             *   second field is a P frame.                             */    IVIDEO_BB_FRAME = 12    /**< Interlaced Frame, both fields are B frames. */} IVIDEO_FrameType;/** *  @brief      Video content types. */typedef enum {    IVIDEO_CONTENTTYPE_NA = -1,/**< Frame type is not available. */    IVIDEO_PROGRESSIVE = 0,    /**< Progressive video content. */    IVIDEO_INTERLACED = 1      /**< Interlaced video content. */} IVIDEO_ContentType;/** *  @brief      Video rate control presets. */typedef enum {    IVIDEO_LOW_DELAY = 1,   /**< CBR rate control for video conferencing. */    IVIDEO_STORAGE = 2,     /**< VBR rate control for local storage (DVD)                             *   recording.                             */    IVIDEO_TWOPASS = 3,     /**< Two pass rate control for non real time                             *   applications.                             */    IVIDEO_NONE = 4,        /**< @todo  Document this. */    IVIDEO_USER_DEFINED = 5 /**< User defined configuration using advanced                             *   parameters.                             */} IVIDEO_RateControlPreset;/** *  @brief      Video frame skipping modes. */typedef enum {    IVIDEO_FRAME_ENCODED = 0,   /**< Input video frame successfully encoded. */    IVIDEO_FRAME_SKIPPED = 1    /**< Input video frame dropped.  There is no                                 *   encoded bitstream corresponding to the                                 *   input frame.                                 */} IVIDEO_SkipMode;/** *  @brief      Video output buffer's status. * *  @remarks    Ownership of the buffers, either by application or algorithm, *              is conveyed via these values. * *  @todo       What if there are multiple output buffers?  Do these represent *              the status of ALL output buffers? */typedef enum {    IVIDEO_FRAME_NOERROR = 0,   /**< The output buffer is available.                                 */    IVIDEO_FRAME_NOTAVAILABLE = 1, /**< The codec doesn't have any output                                 *   buffers.                                 */    IVIDEO_FRAME_ERROR = 2      /**< The output buffer is available and                                 *   corrupted.                                 *                                 *   @remarks   For example, if a bitstream                                 *              is erroneous and                                 *              partially decoded, a                                 *              portion of the decoded                                 *              image may be available                                 *              for display.  Another                                 *              example is if the                                 *              bitstream for a given                                 *              frame decode may be                                 *              decoded without error,                                 *              but the previously                                 *              decoded dependant                                 *              frames weren't                                 *              successfully decoded.                                 *              This would result in                                 *              an incorrectly decoded                                 *              frame.                                 */} IVIDEO_OutputFrameStatus;/** *  @brief      Buffer descriptor for input and output buffers. */typedef struct IVIDEO_BufDesc {    XDAS_Int32  numBufs;    /**< Number of buffers. */    XDAS_Int32  width;      /**< Added width of a video frame. */    XDAS_Int8  *bufs[XDM_MAX_IO_BUFFERS];  /**< Pointer to vector                                            *   containing buffer addresses.                                            */    XDAS_Int32  bufSizes[XDM_MAX_IO_BUFFERS]; /**< Size of each buffer                                            *   in 8-bit bytes.                                            */} IVIDEO_BufDesc;/*@}*/  /* ingroup */#ifdef __cplusplus}#endif#endif  /* ti_xdais_dm_IVIDEO_ *//* *  @(#) 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 + -