Add VP8 encoder extra parameters structure to support
configuring encoder key frame interval, number of temporal layers, type of temporal layer pattern and minimum and maximum quantization parameters. Bug: 11969958 Change-Id: I561e03148a7c5d928b5bf350ad3631ae69871065
This commit is contained in:
parent
9cddbd258d
commit
5b155b84a2
|
@ -71,6 +71,7 @@ typedef enum OMX_INDEXEXTTYPE {
|
||||||
OMX_IndexParamVideoVp8, /**< reference: OMX_VIDEO_PARAM_VP8TYPE */
|
OMX_IndexParamVideoVp8, /**< reference: OMX_VIDEO_PARAM_VP8TYPE */
|
||||||
OMX_IndexConfigVideoVp8ReferenceFrame, /**< reference: OMX_VIDEO_VP8REFERENCEFRAMETYPE */
|
OMX_IndexConfigVideoVp8ReferenceFrame, /**< reference: OMX_VIDEO_VP8REFERENCEFRAMETYPE */
|
||||||
OMX_IndexConfigVideoVp8ReferenceFrameType, /**< reference: OMX_VIDEO_VP8REFERENCEFRAMEINFOTYPE */
|
OMX_IndexConfigVideoVp8ReferenceFrameType, /**< reference: OMX_VIDEO_VP8REFERENCEFRAMEINFOTYPE */
|
||||||
|
OMX_IndexParamVideoAndroidVp8Encoder, /**< reference: OMX_VIDEO_PARAM_ANDROID_VP8ENCODERTYPE */
|
||||||
|
|
||||||
/* Image & Video common configurations */
|
/* Image & Video common configurations */
|
||||||
OMX_IndexExtCommonStartUnused = OMX_IndexKhronosExtensions + 0x00700000,
|
OMX_IndexExtCommonStartUnused = OMX_IndexKhronosExtensions + 0x00700000,
|
||||||
|
|
|
@ -108,6 +108,43 @@ typedef struct OMX_VIDEO_VP8REFERENCEFRAMEINFOTYPE {
|
||||||
OMX_BOOL bIsGoldenOrAlternateFrame;
|
OMX_BOOL bIsGoldenOrAlternateFrame;
|
||||||
} OMX_VIDEO_VP8REFERENCEFRAMEINFOTYPE;
|
} OMX_VIDEO_VP8REFERENCEFRAMEINFOTYPE;
|
||||||
|
|
||||||
|
/** Maximum number of VP8 temporal layers */
|
||||||
|
#define OMX_VIDEO_ANDROID_MAXVP8TEMPORALLAYERS 3
|
||||||
|
|
||||||
|
/** VP8 temporal layer patterns */
|
||||||
|
typedef enum OMX_VIDEO_ANDROID_VPXTEMPORALLAYERPATTERNTYPE {
|
||||||
|
OMX_VIDEO_VPXTemporalLayerPatternNone = 0,
|
||||||
|
OMX_VIDEO_VPXTemporalLayerPatternWebRTC = 1,
|
||||||
|
OMX_VIDEO_VPXTemporalLayerPatternMax = 0x7FFFFFFF
|
||||||
|
} OMX_VIDEO_ANDROID_VPXTEMPORALLAYERPATTERNTYPE;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Android specific VP8 encoder params
|
||||||
|
*
|
||||||
|
* STRUCT MEMBERS:
|
||||||
|
* nSize : Size of the structure in bytes
|
||||||
|
* nVersion : OMX specification version information
|
||||||
|
* nPortIndex : Port that this structure applies to
|
||||||
|
* nKeyFrameInterval : Key frame interval in frames
|
||||||
|
* eTemporalPattern : Type of temporal layer pattern
|
||||||
|
* nTemporalLayerCount : Number of temporal coding layers
|
||||||
|
* nTemporalLayerBitrateRatio : Bitrate ratio allocation between temporal
|
||||||
|
* streams in percentage
|
||||||
|
* nMinQuantizer : Minimum (best quality) quantizer
|
||||||
|
* nMaxQuantizer : Maximum (worst quality) quantizer
|
||||||
|
*/
|
||||||
|
typedef struct OMX_VIDEO_PARAM_ANDROID_VP8ENCODERTYPE {
|
||||||
|
OMX_U32 nSize;
|
||||||
|
OMX_VERSIONTYPE nVersion;
|
||||||
|
OMX_U32 nPortIndex;
|
||||||
|
OMX_U32 nKeyFrameInterval;
|
||||||
|
OMX_VIDEO_ANDROID_VPXTEMPORALLAYERPATTERNTYPE eTemporalPattern;
|
||||||
|
OMX_U32 nTemporalLayerCount;
|
||||||
|
OMX_U32 nTemporalLayerBitrateRatio[OMX_VIDEO_ANDROID_MAXVP8TEMPORALLAYERS];
|
||||||
|
OMX_U32 nMinQuantizer;
|
||||||
|
OMX_U32 nMaxQuantizer;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue