media: fix isSupportedFormat for integer frame rate

Bug: 18473065
Change-Id: I670cc043d3cb117c26921cb639ff9eecc8f14b0a
This commit is contained in:
Lajos Molnar
2014-11-20 16:16:55 -08:00
parent d234dc1f20
commit 32d8cc1429

View File

@@ -973,7 +973,7 @@ public final class MediaCodecInfo {
}
private boolean supports(
Integer width, Integer height, Double rate) {
Integer width, Integer height, Number rate) {
boolean ok = true;
if (ok && width != null) {
@@ -985,7 +985,7 @@ public final class MediaCodecInfo {
&& (height % mHeightAlignment == 0);
}
if (ok && rate != null) {
ok = mFrameRateRange.contains(Utils.intRangeFor(rate));
ok = mFrameRateRange.contains(Utils.intRangeFor(rate.doubleValue()));
}
if (ok && height != null && width != null) {
ok = Math.min(height, width) <= mSmallerDimensionUpperLimit;
@@ -998,7 +998,7 @@ public final class MediaCodecInfo {
new Rational(widthInBlocks, heightInBlocks))
&& mAspectRatioRange.contains(new Rational(width, height));
if (ok && rate != null) {
double blocksPerSec = blockCount * rate;
double blocksPerSec = blockCount * rate.doubleValue();
ok = mBlocksPerSecondRange.contains(
Utils.longRangeFor(blocksPerSec));
}
@@ -1013,7 +1013,7 @@ public final class MediaCodecInfo {
final Map<String, Object> map = format.getMap();
Integer width = (Integer)map.get(MediaFormat.KEY_WIDTH);
Integer height = (Integer)map.get(MediaFormat.KEY_HEIGHT);
Double rate = (Double)map.get(MediaFormat.KEY_FRAME_RATE);
Number rate = (Number)map.get(MediaFormat.KEY_FRAME_RATE);
// we ignore color-format for now as it is not reliably reported by codec