diff options
author | wjia@chromium.org <wjia@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-07-17 23:42:29 +0000 |
---|---|---|
committer | wjia@chromium.org <wjia@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-07-17 23:42:29 +0000 |
commit | 5c5b7693002b7cf7d3225750d9864253390a9411 (patch) | |
tree | be196eeeaede2e8fca35b0a80f461cc510df4fb1 /media | |
parent | 74fd3e91f5cb42096194072861c0b9a717bf2f48 (diff) | |
download | chromium_src-5c5b7693002b7cf7d3225750d9864253390a9411.zip chromium_src-5c5b7693002b7cf7d3225750d9864253390a9411.tar.gz chromium_src-5c5b7693002b7cf7d3225750d9864253390a9411.tar.bz2 |
Merge 212089 "Fall back to default frame rate when the requested..."
> Fall back to default frame rate when the requested one is not supported for camera capture on Android.
>
> Video capture can return a different frame rate than the requested. In case that the requested one
> is not supported, video capture can fall back to a default fps.
>
> BUG=260894
> R=qinmin@chromium.org
>
> Review URL: https://codereview.chromium.org/19483002
TBR=wjia@chromium.org
Review URL: https://codereview.chromium.org/19678007
git-svn-id: svn://svn.chromium.org/chrome/branches/1547/src@212170 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media')
-rw-r--r-- | media/base/android/java/src/org/chromium/media/VideoCapture.java | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/media/base/android/java/src/org/chromium/media/VideoCapture.java b/media/base/android/java/src/org/chromium/media/VideoCapture.java index 284f742..8d67f5e 100644 --- a/media/base/android/java/src/org/chromium/media/VideoCapture.java +++ b/media/base/android/java/src/org/chromium/media/VideoCapture.java @@ -87,26 +87,29 @@ public class VideoCapture implements PreviewCallback, OnFrameAvailableListener { // Calculate fps. List<int[]> listFpsRange = parameters.getSupportedPreviewFpsRange(); + if (listFpsRange.size() == 0) { + Log.e(TAG, "allocate: no fps range found"); + return false; + } int frameRateInMs = frameRate * 1000; - boolean fpsIsSupported = false; - int fpsMin = 0; - int fpsMax = 0; Iterator itFpsRange = listFpsRange.iterator(); + int[] fpsRange = (int[])itFpsRange.next(); + // Use the first range as default. + int fpsMin = fpsRange[0]; + int fpsMax = fpsRange[1]; + int newFrameRate = (fpsMin + 999) / 1000; while (itFpsRange.hasNext()) { - int[] fpsRange = (int[])itFpsRange.next(); + fpsRange = (int[])itFpsRange.next(); if (fpsRange[0] <= frameRateInMs && frameRateInMs <= fpsRange[1]) { - fpsIsSupported = true; fpsMin = fpsRange[0]; fpsMax = fpsRange[1]; + newFrameRate = frameRate; break; } } - - if (!fpsIsSupported) { - Log.e(TAG, "allocate: fps " + frameRate + " is not supported"); - return false; - } + frameRate = newFrameRate; + Log.d(TAG, "allocate: fps set to " + frameRate); mCurrentCapability = new CaptureCapability(); mCurrentCapability.mDesiredFps = frameRate; |