diff options
author | Chong Zhang <chz@google.com> | 2018-02-28 16:07:44 -0800 |
---|---|---|
committer | Chong Zhang <chz@google.com> | 2018-03-15 02:30:35 +0000 |
commit | bccb6ec418e4cb3e716aa268919f21b6f55f48a5 (patch) | |
tree | 3904d17c2c85b6da2b6d319b635e726b4922969d /headers | |
parent | 17ea0116db02bd93a24ea84073e87ef2b2aec3f5 (diff) |
heif: OMX image encoder header changes -- DO NOT MERGE
bug: 74073607
Change-Id: Iea85c88eefdcb2b2774bdddd0a576fdf9770de08
(cherry picked from commit 93c3a4089e822af7062a8b6eae716a6b317d460c)
Diffstat (limited to 'headers')
-rw-r--r-- | headers/media_plugin/media/openmax/OMX_IndexExt.h | 1 | ||||
-rw-r--r-- | headers/media_plugin/media/openmax/OMX_Video.h | 1 | ||||
-rw-r--r-- | headers/media_plugin/media/openmax/OMX_VideoExt.h | 43 |
3 files changed, 45 insertions, 0 deletions
diff --git a/headers/media_plugin/media/openmax/OMX_IndexExt.h b/headers/media_plugin/media/openmax/OMX_IndexExt.h index 5a029d0a4b..c2bf97e66f 100644 --- a/headers/media_plugin/media/openmax/OMX_IndexExt.h +++ b/headers/media_plugin/media/openmax/OMX_IndexExt.h @@ -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 */ diff --git a/headers/media_plugin/media/openmax/OMX_Video.h b/headers/media_plugin/media/openmax/OMX_Video.h index dc5cdab5d6..9fd2fd2d65 100644 --- a/headers/media_plugin/media/openmax/OMX_Video.h +++ b/headers/media_plugin/media/openmax/OMX_Video.h @@ -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 diff --git a/headers/media_plugin/media/openmax/OMX_VideoExt.h b/headers/media_plugin/media/openmax/OMX_VideoExt.h index c1025643ef..4b90765a90 100644 --- a/headers/media_plugin/media/openmax/OMX_VideoExt.h +++ b/headers/media_plugin/media/openmax/OMX_VideoExt.h @@ -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 */ |