OSDN Git Service

media: fix isSupportedFormat for integer frame rate
authorLajos Molnar <lajos@google.com>
Fri, 21 Nov 2014 00:16:55 +0000 (16:16 -0800)
committerLajos Molnar <lajos@google.com>
Fri, 21 Nov 2014 00:17:43 +0000 (16:17 -0800)
Bug: 18473065
Change-Id: I670cc043d3cb117c26921cb639ff9eecc8f14b0a

media/java/android/media/MediaCodecInfo.java

index 01f8193..1029fcc 100644 (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