From bc0929fb1819234b87b5e0fb915fe5b641b1d0c1 Mon Sep 17 00:00:00 2001 From: Beth Thibodeau Date: Mon, 30 Dec 2019 13:39:07 -0500 Subject: [PATCH] Get accurate display metrics, increase bit rate Videos are full resolution currently, so match the 1080p recommendation at https://developer.android.com/guide/topics/media/media-formats.html#video-encoding Fixes: 146563013 Bug: 146133557 Test: manual Change-Id: Ia95e9fd11630c7a04d131d919879295a25f71e82 --- .../android/systemui/screenrecord/RecordingService.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/screenrecord/RecordingService.java b/packages/SystemUI/src/com/android/systemui/screenrecord/RecordingService.java index d3ccbeb0afb16..77c3ad971ef0f 100644 --- a/packages/SystemUI/src/com/android/systemui/screenrecord/RecordingService.java +++ b/packages/SystemUI/src/com/android/systemui/screenrecord/RecordingService.java @@ -27,7 +27,6 @@ import android.content.ContentValues; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; -import android.graphics.Point; import android.graphics.drawable.Icon; import android.hardware.display.DisplayManager; import android.hardware.display.VirtualDisplay; @@ -42,6 +41,7 @@ import android.util.DisplayMetrics; import android.util.Log; import android.util.Size; import android.view.Surface; +import android.view.WindowManager; import android.widget.Toast; import com.android.systemui.R; @@ -76,7 +76,7 @@ public class RecordingService extends Service { private static final String ACTION_DELETE = "com.android.systemui.screenrecord.DELETE"; private static final int TOTAL_NUM_TRACKS = 1; - private static final int VIDEO_BIT_RATE = 6000000; + private static final int VIDEO_BIT_RATE = 10000000; private static final int VIDEO_FRAME_RATE = 30; private static final int AUDIO_BIT_RATE = 16; private static final int AUDIO_SAMPLE_RATE = 44100; @@ -238,7 +238,9 @@ public class RecordingService extends Service { mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); // Set up video - DisplayMetrics metrics = getResources().getDisplayMetrics(); + DisplayMetrics metrics = new DisplayMetrics(); + WindowManager wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE); + wm.getDefaultDisplay().getRealMetrics(metrics); int screenWidth = metrics.widthPixels; int screenHeight = metrics.heightPixels; mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);