ACodec: query grid config from component even if grid is disabled

bug: 138397508
test: cts HeifWriterTest on devices that can enable OMX HEIC encoder.

Change-Id: I6e8437c0b8cc4901e943f2ed7cb23cb16ed096fe
gugelfrei
Chong Zhang 5 years ago committed by Alistair Delva
parent 402fd7c9a7
commit 5238cb29a0

@ -4505,22 +4505,38 @@ status_t ACodec::setupAVCEncoderParameters(const sp<AMessage> &msg) {
status_t ACodec::configureImageGrid(
const sp<AMessage> &msg, sp<AMessage> &outputFormat) {
int32_t tileWidth, tileHeight, gridRows, gridCols;
if (!msg->findInt32("tile-width", &tileWidth) ||
!msg->findInt32("tile-height", &tileHeight) ||
!msg->findInt32("grid-rows", &gridRows) ||
!msg->findInt32("grid-cols", &gridCols)) {
OMX_BOOL useGrid = OMX_FALSE;
if (msg->findInt32("tile-width", &tileWidth) &&
msg->findInt32("tile-height", &tileHeight) &&
msg->findInt32("grid-rows", &gridRows) &&
msg->findInt32("grid-cols", &gridCols)) {
useGrid = OMX_TRUE;
} else {
// when bEnabled is false, the tile info is not used,
// but clear out these too.
tileWidth = tileHeight = gridRows = gridCols = 0;
}
if (!mIsImage && !useGrid) {
return OK;
}
OMX_VIDEO_PARAM_ANDROID_IMAGEGRIDTYPE gridType;
InitOMXParams(&gridType);
gridType.nPortIndex = kPortIndexOutput;
gridType.bEnabled = OMX_TRUE;
gridType.bEnabled = useGrid;
gridType.nTileWidth = tileWidth;
gridType.nTileHeight = tileHeight;
gridType.nGridRows = gridRows;
gridType.nGridCols = gridCols;
ALOGV("sending image grid info to component: bEnabled %d, tile %dx%d, grid %dx%d",
gridType.bEnabled,
gridType.nTileWidth,
gridType.nTileHeight,
gridType.nGridRows,
gridType.nGridCols);
status_t err = mOMXNode->setParameter(
(OMX_INDEXTYPE)OMX_IndexParamVideoAndroidImageGrid,
&gridType, sizeof(gridType));
@ -4541,6 +4557,13 @@ status_t ACodec::configureImageGrid(
(OMX_INDEXTYPE)OMX_IndexParamVideoAndroidImageGrid,
&gridType, sizeof(gridType));
ALOGV("received image grid info from component: bEnabled %d, tile %dx%d, grid %dx%d",
gridType.bEnabled,
gridType.nTileWidth,
gridType.nTileHeight,
gridType.nGridRows,
gridType.nGridCols);
if (err == OK && gridType.bEnabled) {
outputFormat->setInt32("tile-width", gridType.nTileWidth);
outputFormat->setInt32("tile-height", gridType.nTileHeight);

Loading…
Cancel
Save