diff options
| author | 2023-03-30 17:18:01 +0000 | |
|---|---|---|
| committer | 2023-03-30 17:18:01 +0000 | |
| commit | 818fbc0a36a86314a2dc5fbad77576244715c00d (patch) | |
| tree | 90bef83477fa59a6bfb6683c096442db61c870f3 | |
| parent | 2216e97b9e6d5ec588b322d50d4efdd7bc1a789b (diff) | |
| parent | 66aafd425573d5bf521de2304db955f0587d233d (diff) | |
Merge "Disable transcoding by default if no HEVC support" am: 66aafd4255
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2512957
Change-Id: I432ceb08bfc0a8fdf01866ca095b635b3a4fc705
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| -rw-r--r-- | services/core/java/com/android/server/StorageManagerService.java | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/StorageManagerService.java b/services/core/java/com/android/server/StorageManagerService.java index ce9c067116ef..2daf04d1f8b9 100644 --- a/services/core/java/com/android/server/StorageManagerService.java +++ b/services/core/java/com/android/server/StorageManagerService.java @@ -75,6 +75,9 @@ import android.content.pm.ProviderInfo; import android.content.pm.UserInfo; import android.content.res.ObbInfo; import android.database.ContentObserver; +import android.media.MediaCodecList; +import android.media.MediaCodecInfo; +import android.media.MediaFormat; import android.net.Uri; import android.os.BatteryManager; import android.os.Binder; @@ -1006,10 +1009,27 @@ class StorageManagerService extends IStorageManager.Stub } } + private boolean isHevcDecoderSupported() { + MediaCodecList codecList = new MediaCodecList(MediaCodecList.REGULAR_CODECS); + MediaCodecInfo[] codecInfos = codecList.getCodecInfos(); + for (MediaCodecInfo codecInfo : codecInfos) { + if (codecInfo.isEncoder()) { + continue; + } + String[] supportedTypes = codecInfo.getSupportedTypes(); + for (String type : supportedTypes) { + if (type.equalsIgnoreCase(MediaFormat.MIMETYPE_VIDEO_HEVC)) { + return true; + } + } + } + return false; + } + private void configureTranscoding() { // See MediaProvider TranscodeHelper#getBooleanProperty for more information boolean transcodeEnabled = false; - boolean defaultValue = true; + boolean defaultValue = isHevcDecoderSupported() ? true : false; if (SystemProperties.getBoolean("persist.sys.fuse.transcode_user_control", false)) { transcodeEnabled = SystemProperties.getBoolean("persist.sys.fuse.transcode_enabled", |