diff options
| author | 2023-03-30 17:42:58 +0000 | |
|---|---|---|
| committer | 2023-03-30 17:42:58 +0000 | |
| commit | ab2304ce76b23be6d3afffa9c6aff10f72057fc5 (patch) | |
| tree | 5856ec31cf7bb931bf6713212ac2b3333aa1fe9c | |
| parent | 7f2601af3c8cd69c951b332760f52eb432a8988a (diff) | |
| parent | 818fbc0a36a86314a2dc5fbad77576244715c00d (diff) | |
Merge "Disable transcoding by default if no HEVC support" am: 66aafd4255 am: 818fbc0a36
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2512957
Change-Id: I6e6e1a6e2627f6477a76994ff4c633056c2058f9
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 4be89930c33b..a3137a66144a 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", |