Chromium Code Reviews| Index: media/base/android/java/src/org/chromium/media/MediaCodecUtil.java |
| diff --git a/media/base/android/java/src/org/chromium/media/MediaCodecUtil.java b/media/base/android/java/src/org/chromium/media/MediaCodecUtil.java |
| index 5599b459c7e2f74e53bbfd331d02bf36928487be..e392c6ebdaea331b9a59c1e89157ac1229a2890b 100644 |
| --- a/media/base/android/java/src/org/chromium/media/MediaCodecUtil.java |
| +++ b/media/base/android/java/src/org/chromium/media/MediaCodecUtil.java |
| @@ -234,6 +234,29 @@ class MediaCodecUtil { |
| } |
| /** |
| + * Returns true if and only enabling adaptive playback is unsafe. On some |
| + * device / os combinations, enabling it causes decoded frames to be |
| + * unusable. For example, the S3 on 4.4.2 returns black and white, tiled |
| + * frames when this is enabled. |
| + */ |
| + private static boolean isAdaptivePlaybackBlacklisted(String mime) { |
|
DaleCurtis
2016/04/07 18:40:44
Instead of having this should we just add the GT-I
liberato (no reviews please)
2016/04/07 20:46:29
i don't think that the s3 has hw vp8, just 264. c
|
| + if (!mime.equals("video/avc") && !mime.equals("video/avc1")) { |
| + return false; |
| + } |
| + |
| + if (!Build.VERSION.RELEASE.equals("4.4.2")) { |
| + return false; |
| + } |
| + |
| + if (!Build.MANUFACTURER.toLowerCase(Locale.getDefault()).equals("samsung")) { |
| + return false; |
| + } |
| + |
| + return Build.MODEL.startsWith("GT-I9300") || // S3 (I9300 / I9300I) |
| + Build.MODEL.startsWith("SCH-I535"); // S3 |
| + } |
| + |
| + /** |
| * Returns true if the given codec supports adaptive playback (dynamic resolution change). |
| * @param mediaCodec the codec. |
| * @param mime MIME type that corresponds to the codec creation. |
| @@ -249,6 +272,11 @@ class MediaCodecUtil { |
| if (info.isEncoder()) { |
| return false; |
| } |
| + |
| + if (isAdaptivePlaybackBlacklisted(mime)) { |
| + return false; |
| + } |
| + |
| MediaCodecInfo.CodecCapabilities capabilities = info.getCapabilitiesForType(mime); |
| return (capabilities != null) |
| && capabilities.isFeatureSupported( |