Use CamcorderProfile to get workable resolution
If we can't get supported video sizes, we use CamcorderProfile
to get workable resolution for media encoder first instead of preview
sizes.
Test: Pass testRecordedVideoPlayback{0,90,180,270}
Bug: 124206215
Change-Id: Ia6325f3b3d6ad63e60262b37aa91f1c8b854304c
diff --git a/tests/tests/media/src/android/media/cts/MediaPlayerTest.java b/tests/tests/media/src/android/media/cts/MediaPlayerTest.java
index 3f0cc39..5479ba4 100644
--- a/tests/tests/media/src/android/media/cts/MediaPlayerTest.java
+++ b/tests/tests/media/src/android/media/cts/MediaPlayerTest.java
@@ -24,6 +24,7 @@
import android.graphics.Rect;
import android.hardware.Camera;
import android.media.AudioManager;
+import android.media.CamcorderProfile;
import android.media.MediaCodec;
import android.media.MediaDataSource;
import android.media.MediaExtractor;
@@ -51,6 +52,7 @@
import java.io.File;
import java.io.InputStream;
import java.io.InputStreamReader;
+import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;
import java.util.UUID;
@@ -903,7 +905,14 @@
// getSupportedVideoSizes returns null when separate video/preview size
// is not supported.
if (videoSizes == null) {
- videoSizes = parameters.getSupportedPreviewSizes();
+ // If we have CamcorderProfile use it instead of Preview size.
+ if (CamcorderProfile.hasProfile(0, CamcorderProfile.QUALITY_LOW)) {
+ CamcorderProfile profile = CamcorderProfile.get(0, CamcorderProfile.QUALITY_LOW);
+ videoSizes = new ArrayList();
+ videoSizes.add(mCamera.new Size(profile.videoFrameWidth, profile.videoFrameHeight));
+ } else {
+ videoSizes = parameters.getSupportedPreviewSizes();
+ }
}
for (Camera.Size size : videoSizes)
{