summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/VideoModule.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/camera/VideoModule.java')
-rw-r--r--src/com/android/camera/VideoModule.java16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/com/android/camera/VideoModule.java b/src/com/android/camera/VideoModule.java
index e4f5bc225..a8e990d32 100644
--- a/src/com/android/camera/VideoModule.java
+++ b/src/com/android/camera/VideoModule.java
@@ -1689,6 +1689,17 @@ public class VideoModule extends BaseModule<VideoUI> implements
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() {
@@ -1792,8 +1803,7 @@ public class VideoModule extends BaseModule<VideoUI> implements
}
mMediaRecorder.setOutputFormat(mProfile.fileFormat);
mMediaRecorder.setVideoFrameRate(mProfile.videoFrameRate);
- mMediaRecorder.setVideoEncodingBitRate(mProfile.videoBitRate *
- ((isHSR ? captureRate : 30) / 30));
+ mMediaRecorder.setVideoEncodingBitRate(mProfile.videoBitRate);
mMediaRecorder.setVideoEncoder(mProfile.videoCodec);
if (isHSR) {
Log.i(TAG, "Configuring audio for HSR");
@@ -1829,7 +1839,7 @@ public class VideoModule extends BaseModule<VideoUI> implements
// 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);
}