Merge "Revert "Utils: add lower bound checks for MediaFormat keys""
diff --git a/media/libstagefright/Utils.cpp b/media/libstagefright/Utils.cpp
index 255d42f..4c18f87 100644
--- a/media/libstagefright/Utils.cpp
+++ b/media/libstagefright/Utils.cpp
@@ -1759,39 +1759,24 @@
if (mime.startsWith("video/") || mime.startsWith("image/")) {
int32_t width;
int32_t height;
- if (!msg->findInt32("width", &width) || !msg->findInt32("height", &height)) {
+ if (msg->findInt32("width", &width) && msg->findInt32("height", &height)) {
+ meta->setInt32(kKeyWidth, width);
+ meta->setInt32(kKeyHeight, height);
+ } else {
ALOGV("did not find width and/or height");
return BAD_VALUE;
}
- if (width <= 0 || height <= 0) {
- ALOGE("Invalid value of width: %d and/or height: %d", width, height);
- return BAD_VALUE;
- }
- meta->setInt32(kKeyWidth, width);
- meta->setInt32(kKeyHeight, height);
- int32_t sarWidth = -1, sarHeight = -1;
- bool foundWidth, foundHeight;
- foundWidth = msg->findInt32("sar-width", &sarWidth);
- foundHeight = msg->findInt32("sar-height", &sarHeight);
- if (foundWidth || foundHeight) {
- if (sarWidth <= 0 || sarHeight <= 0) {
- ALOGE("Invalid value of sarWidth: %d and/or sarHeight: %d", sarWidth, sarHeight);
- return BAD_VALUE;
- }
+ int32_t sarWidth, sarHeight;
+ if (msg->findInt32("sar-width", &sarWidth)
+ && msg->findInt32("sar-height", &sarHeight)) {
meta->setInt32(kKeySARWidth, sarWidth);
meta->setInt32(kKeySARHeight, sarHeight);
}
- int32_t displayWidth = -1, displayHeight = -1;
- foundWidth = msg->findInt32("display-width", &displayWidth);
- foundHeight = msg->findInt32("display-height", &displayHeight);
- if (foundWidth || foundHeight) {
- if (displayWidth <= 0 || displayHeight <= 0) {
- ALOGE("Invalid value of displayWidth: %d and/or displayHeight: %d",
- displayWidth, displayHeight);
- return BAD_VALUE;
- }
+ int32_t displayWidth, displayHeight;
+ if (msg->findInt32("display-width", &displayWidth)
+ && msg->findInt32("display-height", &displayHeight)) {
meta->setInt32(kKeyDisplayWidth, displayWidth);
meta->setInt32(kKeyDisplayHeight, displayHeight);
}
@@ -1801,29 +1786,17 @@
if (msg->findInt32("is-default", &isPrimary) && isPrimary) {
meta->setInt32(kKeyTrackIsDefault, 1);
}
- int32_t tileWidth = -1, tileHeight = -1;
- foundWidth = msg->findInt32("tile-width", &tileWidth);
- foundHeight = msg->findInt32("tile-height", &tileHeight);
- if (foundWidth || foundHeight) {
- if (tileWidth <= 0 || tileHeight <= 0) {
- ALOGE("Invalid value of tileWidth: %d and/or tileHeight: %d",
- tileWidth, tileHeight);
- return BAD_VALUE;
- }
+ int32_t tileWidth, tileHeight, gridRows, gridCols;
+ if (msg->findInt32("tile-width", &tileWidth)) {
meta->setInt32(kKeyTileWidth, tileWidth);
+ }
+ if (msg->findInt32("tile-height", &tileHeight)) {
meta->setInt32(kKeyTileHeight, tileHeight);
}
- int32_t gridRows = -1, gridCols = -1;
- bool foundRows, foundCols;
- foundRows = msg->findInt32("grid-rows", &gridRows);
- foundCols = msg->findInt32("grid-cols", &gridCols);
- if (foundRows || foundCols) {
- if (gridRows <= 0 || gridCols <= 0) {
- ALOGE("Invalid value of gridRows: %d and/or gridCols: %d",
- gridRows, gridCols);
- return BAD_VALUE;
- }
+ if (msg->findInt32("grid-rows", &gridRows)) {
meta->setInt32(kKeyGridRows, gridRows);
+ }
+ if (msg->findInt32("grid-cols", &gridCols)) {
meta->setInt32(kKeyGridCols, gridCols);
}
}
@@ -1839,14 +1812,6 @@
&cropTop,
&cropRight,
&cropBottom)) {
- if (cropLeft < 0 || cropLeft > cropRight || cropRight >= width) {
- ALOGE("Invalid value of cropLeft: %d and/or cropRight: %d", cropLeft, cropRight);
- return BAD_VALUE;
- }
- if (cropTop < 0 || cropTop > cropBottom || cropBottom >= height) {
- ALOGE("Invalid value of cropTop: %d and/or cropBottom: %d", cropTop, cropBottom);
- return BAD_VALUE;
- }
meta->setRect(kKeyCropRect, cropLeft, cropTop, cropRight, cropBottom);
}
@@ -1890,19 +1855,10 @@
ALOGV("did not find channel-count and/or sample-rate");
return BAD_VALUE;
}
- if (sampleRate <= 0 || numChannels <= 0) {
- ALOGE("Invalid value of channel-count: %d and/or sample-rate: %d",
- numChannels, sampleRate);
- return BAD_VALUE;
- }
meta->setInt32(kKeyChannelCount, numChannels);
meta->setInt32(kKeySampleRate, sampleRate);
int32_t bitsPerSample;
if (msg->findInt32("bits-per-sample", &bitsPerSample)) {
- if (bitsPerSample <= 0) {
- ALOGE("Invalid value of bitsPerSample: %d", bitsPerSample);
- return BAD_VALUE;
- }
meta->setInt32(kKeyBitsPerSample, bitsPerSample);
}
int32_t channelMask;