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

Commit c193aee9 authored by Vignesh Venkatasubramanian's avatar Vignesh Venkatasubramanian
Browse files

Add VP9 Encoder Parameters

Add structs in OMX_VideoExt to enable vp9 software
encoding.

Change-Id: I88dced84703566299049532903e97c0f60421925
parent db77b18f
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -75,6 +75,8 @@ typedef enum OMX_INDEXEXTTYPE {
    OMX_IndexConfigVideoVp8ReferenceFrame,          /**< reference: OMX_VIDEO_VP8REFERENCEFRAMETYPE */
    OMX_IndexConfigVideoVp8ReferenceFrameType,      /**< reference: OMX_VIDEO_VP8REFERENCEFRAMEINFOTYPE */
    OMX_IndexParamVideoAndroidVp8Encoder,           /**< reference: OMX_VIDEO_PARAM_ANDROID_VP8ENCODERTYPE */
    OMX_IndexParamVideoVp9,                         /**< reference: OMX_VIDEO_PARAM_VP9TYPE */
    OMX_IndexParamVideoAndroidVp9Encoder,           /**< reference: OMX_VIDEO_PARAM_ANDROID_VP9ENCODERTYPE */
    OMX_IndexParamVideoHevc,                        /**< reference: OMX_VIDEO_PARAM_HEVCTYPE */
    OMX_IndexParamSliceSegments,                    /**< reference: OMX_VIDEO_SLICESEGMENTSTYPE */
    OMX_IndexConfigAndroidIntraRefresh,             /**< reference: OMX_VIDEO_CONFIG_ANDROID_INTRAREFRESHTYPE */
+51 −31
Original line number Diff line number Diff line
@@ -75,36 +75,6 @@ typedef enum OMX_VIDEO_VP8LEVELTYPE {
    OMX_VIDEO_VP8LevelMax = 0x7FFFFFFF
} OMX_VIDEO_VP8LEVELTYPE;

/** VP9 profiles */
typedef enum OMX_VIDEO_VP9PROFILETYPE {
    OMX_VIDEO_VP9Profile0 = 0x0,
    OMX_VIDEO_VP9Profile1 = 0x1,
    OMX_VIDEO_VP9Profile2 = 0x2,
    OMX_VIDEO_VP9Profile3 = 0x3,
    OMX_VIDEO_VP9ProfileUnknown = 0x6EFFFFFF,
    OMX_VIDEO_VP9ProfileMax = 0x7FFFFFFF
} OMX_VIDEO_VP9PROFILETYPE;

/** VP9 levels */
typedef enum OMX_VIDEO_VP9LEVELTYPE {
    OMX_VIDEO_VP9Level1  = 0x0,
    OMX_VIDEO_VP9Level11 = 0x1,
    OMX_VIDEO_VP9Level2  = 0x2,
    OMX_VIDEO_VP9Level21 = 0x4,
    OMX_VIDEO_VP9Level3  = 0x8,
    OMX_VIDEO_VP9Level31 = 0x10,
    OMX_VIDEO_VP9Level4  = 0x20,
    OMX_VIDEO_VP9Level41 = 0x40,
    OMX_VIDEO_VP9Level5  = 0x80,
    OMX_VIDEO_VP9Level51 = 0x100,
    OMX_VIDEO_VP9Level52 = 0x200,
    OMX_VIDEO_VP9Level6  = 0x400,
    OMX_VIDEO_VP9Level61 = 0x800,
    OMX_VIDEO_VP9Level62 = 0x1000,
    OMX_VIDEO_VP9LevelUnknown = 0x6EFFFFFF,
    OMX_VIDEO_VP9LevelMax = 0x7FFFFFFF
} OMX_VIDEO_VP9LEVELTYPE;

/** VP8 Param */
typedef struct OMX_VIDEO_PARAM_VP8TYPE {
    OMX_U32 nSize;
@@ -149,7 +119,7 @@ typedef enum OMX_VIDEO_ANDROID_VPXTEMPORALLAYERPATTERNTYPE {
} OMX_VIDEO_ANDROID_VPXTEMPORALLAYERPATTERNTYPE;

/**
 * Android specific VP8 encoder params
 * Android specific VP8/VP9 encoder params
 *
 * STRUCT MEMBERS:
 *  nSize                      : Size of the structure in bytes
@@ -175,6 +145,56 @@ typedef struct OMX_VIDEO_PARAM_ANDROID_VP8ENCODERTYPE {
    OMX_U32 nMaxQuantizer;
} OMX_VIDEO_PARAM_ANDROID_VP8ENCODERTYPE;

/** VP9 profiles */
typedef enum OMX_VIDEO_VP9PROFILETYPE {
    OMX_VIDEO_VP9Profile0 = 0x0,
    OMX_VIDEO_VP9Profile1 = 0x1,
    OMX_VIDEO_VP9Profile2 = 0x2,
    OMX_VIDEO_VP9Profile3 = 0x3,
    OMX_VIDEO_VP9ProfileUnknown = 0x6EFFFFFF,
    OMX_VIDEO_VP9ProfileMax = 0x7FFFFFFF
} OMX_VIDEO_VP9PROFILETYPE;

/** VP9 levels */
typedef enum OMX_VIDEO_VP9LEVELTYPE {
    OMX_VIDEO_VP9Level1  = 0x0,
    OMX_VIDEO_VP9Level11 = 0x1,
    OMX_VIDEO_VP9Level2  = 0x2,
    OMX_VIDEO_VP9Level21 = 0x4,
    OMX_VIDEO_VP9Level3  = 0x8,
    OMX_VIDEO_VP9Level31 = 0x10,
    OMX_VIDEO_VP9Level4  = 0x20,
    OMX_VIDEO_VP9Level41 = 0x40,
    OMX_VIDEO_VP9Level5  = 0x80,
    OMX_VIDEO_VP9Level51 = 0x100,
    OMX_VIDEO_VP9Level52 = 0x200,
    OMX_VIDEO_VP9Level6  = 0x400,
    OMX_VIDEO_VP9Level61 = 0x800,
    OMX_VIDEO_VP9Level62 = 0x1000,
    OMX_VIDEO_VP9LevelUnknown = 0x6EFFFFFF,
    OMX_VIDEO_VP9LevelMax = 0x7FFFFFFF
} OMX_VIDEO_VP9LEVELTYPE;

/**
* VP9 Parameters.
*   Encoder specific parameters (decoders should ignore these fields):
*     - bErrorResilientMode
*     - nTileRows
*     - nTileColumns
*     - bEnableFrameParallelDecoding
*/
typedef struct OMX_VIDEO_PARAM_VP9TYPE {
    OMX_U32 nSize;
    OMX_VERSIONTYPE nVersion;
    OMX_U32 nPortIndex;
    OMX_VIDEO_VP9PROFILETYPE eProfile;
    OMX_VIDEO_VP9LEVELTYPE eLevel;
    OMX_BOOL bErrorResilientMode;
    OMX_U32 nTileRows;
    OMX_U32 nTileColumns;
    OMX_BOOL bEnableFrameParallelDecoding;
} OMX_VIDEO_PARAM_VP9TYPE;

/** HEVC Profile enum type */
typedef enum OMX_VIDEO_HEVCPROFILETYPE {
    OMX_VIDEO_HEVCProfileUnknown = 0x0,