diff options
author | Jay Wang <jaywang@codeaurora.org> | 2016-10-28 14:42:04 -0700 |
---|---|---|
committer | Jay Wang <jaywang@codeaurora.org> | 2016-11-07 14:25:09 -0800 |
commit | 2fdd1106c474606764e6c3616e025dd27a6715e2 (patch) | |
tree | c2fa6d8fad92ebd8cd41f6a514c7db69065c05b5 /src/com/android/camera/VideoModule.java | |
parent | e3e71661b5f063dbfe1314800da1da0b217e49f6 (diff) | |
download | android_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.java | 13 |
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); } |