summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jeff Sharkey <jsharkey@google.com> 2020-06-01 16:28:08 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2020-06-01 16:28:08 +0000
commitbef3cc88cd6b9310c52b34aca7de9b68ac4b6f72 (patch)
tree670a1f972599ced33756ea31c72a5f7b8b4511c4
parentfb0b107b8268ed9a97dac54a128e5f81336e4640 (diff)
parenteadf939db8dfd2edc5fd12b692b7037294c15a62 (diff)
Merge "Load video thumbnails using ARGB_8888 for quality." into rvc-dev am: eadf939db8
Change-Id: I3c0ac729c94902bd52a8ed21554b01a315d5acf9
-rw-r--r--media/java/android/media/ThumbnailUtils.java8
1 files changed, 6 insertions, 2 deletions
diff --git a/media/java/android/media/ThumbnailUtils.java b/media/java/android/media/ThumbnailUtils.java
index 1f7b5ad51d9c..fbf38dc4d808 100644
--- a/media/java/android/media/ThumbnailUtils.java
+++ b/media/java/android/media/ThumbnailUtils.java
@@ -34,6 +34,7 @@ import android.graphics.ImageDecoder.ImageInfo;
import android.graphics.ImageDecoder.Source;
import android.graphics.Matrix;
import android.graphics.Rect;
+import android.media.MediaMetadataRetriever.BitmapParams;
import android.net.Uri;
import android.os.Build;
import android.os.CancellationSignal;
@@ -365,6 +366,9 @@ public class ThumbnailUtils {
return ImageDecoder.decodeBitmap(ImageDecoder.createSource(raw), resizer);
}
+ final BitmapParams params = new BitmapParams();
+ params.setPreferredConfig(Bitmap.Config.ARGB_8888);
+
final int width = Integer.parseInt(mmr.extractMetadata(METADATA_KEY_VIDEO_WIDTH));
final int height = Integer.parseInt(mmr.extractMetadata(METADATA_KEY_VIDEO_HEIGHT));
// Fall back to middle of video
@@ -376,11 +380,11 @@ public class ThumbnailUtils {
// return a frame without up-scaling it
if (size.getWidth() > width && size.getHeight() > height) {
return Objects.requireNonNull(
- mmr.getFrameAtTime(thumbnailTimeUs, OPTION_CLOSEST_SYNC));
+ mmr.getFrameAtTime(thumbnailTimeUs, OPTION_CLOSEST_SYNC, params));
} else {
return Objects.requireNonNull(
mmr.getScaledFrameAtTime(thumbnailTimeUs, OPTION_CLOSEST_SYNC,
- size.getWidth(), size.getHeight()));
+ size.getWidth(), size.getHeight(), params));
}
} catch (RuntimeException e) {
throw new IOException("Failed to create thumbnail", e);