diff --git a/library/src/main/java/com/google/android/exoplayer/MediaCodecUtil.java b/library/src/main/java/com/google/android/exoplayer/MediaCodecUtil.java index 00abc61cb6..ff3a453b16 100644 --- a/library/src/main/java/com/google/android/exoplayer/MediaCodecUtil.java +++ b/library/src/main/java/com/google/android/exoplayer/MediaCodecUtil.java @@ -175,15 +175,22 @@ public class MediaCodecUtil { return false; } - // Workaround an issue where creating a particular MP3 decoder on some HTC devices on platform - // API version 16 crashes mediaserver. + // Work around an issue where creating a particular MP3 decoder on some devices on platform API + // version 16 crashes mediaserver. if (Util.SDK_INT == 16 && ("dlxu".equals(Util.DEVICE) // HTC Butterfly - || "protou".equals(Util.DEVICE)) // HTC Desire X + || "protou".equals(Util.DEVICE) // HTC Desire X + || "C6602".equals(Util.DEVICE) || "C6603".equals(Util.DEVICE)) // Sony Xperia Z && name.equals("OMX.qcom.audio.decoder.mp3")) { return false; } + // Work around an issue where the VP8 decoder on Samsung Galaxy S4 Mini does not render video. + if (Util.SDK_INT <= 19 && Util.DEVICE != null && Util.DEVICE.startsWith("serrano") + && "samsung".equals(Util.MANUFACTURER) && name.equals("OMX.SEC.vp8.dec")) { + return false; + } + return true; } diff --git a/library/src/main/java/com/google/android/exoplayer/util/Util.java b/library/src/main/java/com/google/android/exoplayer/util/Util.java index 4599d6ecbc..2e90c4abba 100644 --- a/library/src/main/java/com/google/android/exoplayer/util/Util.java +++ b/library/src/main/java/com/google/android/exoplayer/util/Util.java @@ -69,6 +69,12 @@ public final class Util { */ public static final String DEVICE = android.os.Build.DEVICE; + /** + * Like {@link android.os.Build#MANUFACTURER}, but in a place where it can be conveniently + * overridden for local testing. + */ + public static final String MANUFACTURER = android.os.Build.MANUFACTURER; + private static final Pattern XS_DATE_TIME_PATTERN = Pattern.compile( "(\\d\\d\\d\\d)\\-(\\d\\d)\\-(\\d\\d)[Tt]" + "(\\d\\d):(\\d\\d):(\\d\\d)(\\.(\\d+))?"