OMX: add supporting methods for flexible YUV
Bug: 10706245 Change-Id: I2427930a34c468e49d3db7ba2865344f1fba2960
This commit is contained in:
parent
c268068c55
commit
524077caa6
@ -157,6 +157,63 @@ struct PrependSPSPPSToIDRFramesParams {
|
||||
OMX_BOOL bEnable;
|
||||
};
|
||||
|
||||
// Structure describing a media image (frame)
|
||||
// Currently only supporting YUV
|
||||
struct MediaImage {
|
||||
enum Type {
|
||||
MEDIA_IMAGE_TYPE_UNKNOWN = 0,
|
||||
MEDIA_IMAGE_TYPE_YUV,
|
||||
};
|
||||
|
||||
enum PlaneIndex {
|
||||
Y = 0,
|
||||
U,
|
||||
V,
|
||||
MAX_NUM_PLANES
|
||||
};
|
||||
|
||||
Type mType;
|
||||
size_t mNumPlanes; // number of planes
|
||||
size_t mWidth; // width of largest plane
|
||||
size_t mHeight; // height of largest plane
|
||||
size_t mBitDepth; // useable bit depth
|
||||
struct PlaneInfo {
|
||||
size_t mOffset; // offset of first pixel of the plane in bytes
|
||||
// from buffer offset
|
||||
size_t mColInc; // column increment in bytes
|
||||
size_t mRowInc; // row increment in bytes
|
||||
size_t mHorizSubsampling; // subsampling compared to the largest plane
|
||||
size_t mVertSubsampling; // subsampling compared to the largest plane
|
||||
};
|
||||
PlaneInfo mPlane[MAX_NUM_PLANES];
|
||||
};
|
||||
|
||||
// A pointer to this struct is passed to OMX_GetParameter when the extension
|
||||
// index for the 'OMX.google.android.index.describeColorFormat'
|
||||
// extension is given. This method can be called from any component state
|
||||
// other than invalid. The color-format, frame width/height, and stride/
|
||||
// slice-height parameters are ones that are associated with a raw video
|
||||
// port (input or output), but the stride/slice height parameters may be
|
||||
// incorrect. The component shall fill out the MediaImage structure that
|
||||
// corresponds to the described raw video format, and the potentially corrected
|
||||
// stride and slice-height info.
|
||||
//
|
||||
// For non-YUV packed planar/semiplanar image formats, the component shall set
|
||||
// mNumPlanes to 0, and mType to MEDIA_IMAGE_TYPE_UNKNOWN.
|
||||
struct DescribeColorFormatParams {
|
||||
OMX_U32 nSize;
|
||||
OMX_VERSIONTYPE nVersion;
|
||||
// input: parameters from OMX_VIDEO_PORTDEFINITIONTYPE
|
||||
OMX_COLOR_FORMATTYPE eColorFormat;
|
||||
OMX_U32 nFrameWidth;
|
||||
OMX_U32 nFrameHeight;
|
||||
OMX_U32 nStride;
|
||||
OMX_U32 nSliceHeight;
|
||||
|
||||
// output: fill out the MediaImage fields
|
||||
MediaImage sMediaImage;
|
||||
};
|
||||
|
||||
} // namespace android
|
||||
|
||||
extern android::OMXPluginBase *createOMXPlugin();
|
||||
|
@ -157,6 +157,13 @@ typedef enum OMX_COLOR_FORMATTYPE {
|
||||
* an acceptable range once that is done.
|
||||
* */
|
||||
OMX_COLOR_FormatAndroidOpaque = 0x7F000789,
|
||||
/** Flexible 8-bit YUV format. Codec should report this format
|
||||
* as being supported if it supports any YUV420 packed planar
|
||||
* or semiplanar formats. When port is set to use this format,
|
||||
* codec can substitute any YUV420 packed planar or semiplanar
|
||||
* format for it. */
|
||||
OMX_COLOR_FormatYUV420Flexible = 0x7F420888,
|
||||
|
||||
OMX_TI_COLOR_FormatYUV420PackedSemiPlanar = 0x7F000100,
|
||||
OMX_QCOM_COLOR_FormatYVU420SemiPlanar = 0x7FA30C00,
|
||||
OMX_QCOM_COLOR_FormatYUV420PackedSemiPlanar64x32Tile2m8ka = 0x7FA30C03,
|
||||
|
Loading…
Reference in New Issue
Block a user