From 32d8cc1429610cd9cec907ed1c2c987b5dcdb164 Mon Sep 17 00:00:00 2001 From: Lajos Molnar Date: Thu, 20 Nov 2014 16:16:55 -0800 Subject: [PATCH] media: fix isSupportedFormat for integer frame rate Bug: 18473065 Change-Id: I670cc043d3cb117c26921cb639ff9eecc8f14b0a --- media/java/android/media/MediaCodecInfo.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/media/java/android/media/MediaCodecInfo.java b/media/java/android/media/MediaCodecInfo.java index 01f8193c0837c..1029fcc163dac 100644 --- a/media/java/android/media/MediaCodecInfo.java +++ b/media/java/android/media/MediaCodecInfo.java @@ -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 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