Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bccb6ec4 authored by Chong Zhang's avatar Chong Zhang
Browse files

heif: OMX image encoder header changes -- DO NOT MERGE

bug: 74073607
Change-Id: Iea85c88eefdcb2b2774bdddd0a576fdf9770de08
(cherry picked from commit 93c3a408)
parent 17ea0116
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -85,6 +85,7 @@ typedef enum OMX_INDEXEXTTYPE {
    OMX_IndexParamMaxFrameDurationForBitrateControl,/**< reference: OMX_PARAM_U32TYPE */
    OMX_IndexParamVideoVp9,                         /**< reference: OMX_VIDEO_PARAM_VP9TYPE */
    OMX_IndexParamVideoAndroidVp9Encoder,           /**< reference: OMX_VIDEO_PARAM_ANDROID_VP9ENCODERTYPE */
    OMX_IndexParamVideoAndroidImageGrid,            /**< reference: OMX_VIDEO_PARAM_ANDROID_IMAGEGRIDTYPE */
    OMX_IndexExtVideoEndUnused,

    /* Image & Video common configurations */
+1 −0
Original line number Diff line number Diff line
@@ -89,6 +89,7 @@ typedef enum OMX_VIDEO_CODINGTYPE {
    OMX_VIDEO_CodingVP9,        /**< Google VP9 */
    OMX_VIDEO_CodingHEVC,       /**< ITU H.265/HEVC */
    OMX_VIDEO_CodingDolbyVision,/**< Dolby Vision */
    OMX_VIDEO_CodingImageHEIC,  /**< HEIF image encoded with HEVC */
    OMX_VIDEO_CodingKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
    OMX_VIDEO_CodingVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
    OMX_VIDEO_CodingMax = 0x7FFFFFFF
+43 −0
Original line number Diff line number Diff line
@@ -213,6 +213,7 @@ typedef enum OMX_VIDEO_HEVCPROFILETYPE {
    OMX_VIDEO_HEVCProfileUnknown      = 0x0,
    OMX_VIDEO_HEVCProfileMain         = 0x1,
    OMX_VIDEO_HEVCProfileMain10       = 0x2,
    OMX_VIDEO_HEVCProfileMainStill    = 0x4,
    // Main10 profile with HDR SEI support.
    OMX_VIDEO_HEVCProfileMain10HDR10  = 0x1000,
    OMX_VIDEO_HEVCProfileMax          = 0x7FFFFFFF
@@ -421,6 +422,48 @@ typedef struct OMX_VIDEO_CONFIG_ANDROID_TEMPORALLAYERINGTYPE {
    OMX_U32 nBitrateRatios[OMX_VIDEO_ANDROID_MAXTEMPORALLAYERS];
} OMX_VIDEO_CONFIG_ANDROID_TEMPORALLAYERINGTYPE;

/**
 * Android specific param for specifying image grid layout information for image encoding
 * use cases, corresponding to index OMX_IndexParamVideoAndroidImageGrid.
 *
 * OMX_VIDEO_CodingImageHEIC encoders must handle this param type. When this param is set
 * on the component with bEnabled set to true, nGrid* indicates the desired grid config
 * by the client. The component can use this as a heuristic, but is free to choose any
 * suitable grid configs, and the client shall always get the actual from the component
 * after the param is set. Encoder will receive each input image in full, and shall encode
 * it into tiles in row-major, top-row first, left-to-right order, and send each encoded
 * tile in a separate output buffer. All output buffers for the same input buffer shall
 * carry the same timestamp as the input buffer. If the input buffer is marked EOS,
 * the EOS should only appear on the last output buffer for that input buffer.
 *
 * OMX_VIDEO_CodingHEVC encoders might also receive this param when it's used for image
 * encoding, although in this case the param only serves as a hint. The encoder will
 * receive the input image tiles in row-major, top-row first, left-to-right order.
 * The grid config can be used for quality control, or optimizations.
 *
 * If this param is not set, the component shall assume that grid option is disabled.
 *
 *  nSize                      : Size of the structure in bytes
 *  nVersion                   : OMX specification version information
 *  nPortIndex                 : Port that this structure applies to (output port for encoders)
 *  bEnabled                   : Whether grid is enabled. If true, nGrid* specifies the grid
 *                               config; otherwise nGrid* shall be ignored.
 *  nGridWidth                 : Width of each tile.
 *  nGridHeight                : Height of each tile.
 *  nGridRows                  : Number of rows in the grid.
 *  nGridCols                  : Number of cols in the grid.
 */
typedef struct OMX_VIDEO_PARAM_ANDROID_IMAGEGRIDTYPE {
    OMX_U32 nSize;
    OMX_VERSIONTYPE nVersion;
    OMX_U32 nPortIndex;
    OMX_BOOL bEnabled;
    OMX_U32 nGridWidth;
    OMX_U32 nGridHeight;
    OMX_U32 nGridRows;
    OMX_U32 nGridCols;
} OMX_VIDEO_PARAM_ANDROID_IMAGEGRIDTYPE;

#ifdef __cplusplus
}
#endif /* __cplusplus */