summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/VideoModule.java
diff options
context:
space:
mode:
authorJay Wang <jaywang@codeaurora.org>2016-10-28 14:42:04 -0700
committerJay Wang <jaywang@codeaurora.org>2016-11-07 14:25:09 -0800
commit2fdd1106c474606764e6c3616e025dd27a6715e2 (patch)
treec2fa6d8fad92ebd8cd41f6a514c7db69065c05b5 /src/com/android/camera/VideoModule.java
parente3e71661b5f063dbfe1314800da1da0b217e49f6 (diff)
downloadandroid_packages_apps_Snap-2fdd1106c474606764e6c3616e025dd27a6715e2.tar.gz
android_packages_apps_Snap-2fdd1106c474606764e6c3616e025dd27a6715e2.tar.bz2
android_packages_apps_Snap-2fdd1106c474606764e6c3616e025dd27a6715e2.zip
SnapdragonCamera: Adjust video encoder bit rate and add 60fps support
- Configure the video encoder bit rate to the recommended value - Add 60fps video frame rate support Change-Id: I477487c4c4fab5479534896d90e08c3eadddc54f CRs-Fixed: 1074187
Diffstat (limited to 'src/com/android/camera/VideoModule.java')
-rw-r--r--src/com/android/camera/VideoModule.java13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/com/android/camera/VideoModule.java b/src/com/android/camera/VideoModule.java
index e8ab677bd..21ad36fcf 100644
--- a/src/com/android/camera/VideoModule.java
+++ b/src/com/android/camera/VideoModule.java
@@ -1453,6 +1453,17 @@ public class VideoModule implements CameraModule,
mMediaRecorder.setPreviewDisplay(mUI.getSurfaceHolder().getSurface());
}
}
+ private int getHighSpeedVideoEncoderBitRate(CamcorderProfile profile, int targetRate) {
+ int bitRate;
+ String key = profile.videoFrameWidth+"x"+profile.videoFrameHeight+":"+targetRate;
+ if (CameraSettings.VIDEO_ENCODER_BITRATE.containsKey(key)) {
+ bitRate = CameraSettings.VIDEO_ENCODER_BITRATE.get(key);
+ } else {
+ Log.i(TAG, "No pre-defined bitrate for "+key);
+ bitRate = profile.videoBitRate * (targetRate / profile.videoFrameRate);
+ }
+ return bitRate;
+ }
// Prepares media recorder.
private void initializeRecorder() {
@@ -1592,7 +1603,7 @@ public class VideoModule implements CameraModule,
// Profiles advertizes bitrate corresponding to published framerate.
// In case framerate is different, scale the bitrate
- int scaledBitrate = mProfile.videoBitRate * (targetFrameRate / mProfile.videoFrameRate);
+ int scaledBitrate = getHighSpeedVideoEncoderBitRate(mProfile, targetFrameRate);
Log.i(TAG, "Scaled Video bitrate : " + scaledBitrate);
mMediaRecorder.setVideoEncodingBitRate(scaledBitrate);
}