| // Copyright 2016 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| package org.chromium.media; |
| |
| import android.media.MediaCodecInfo; |
| import android.media.MediaCodecList; |
| import android.util.Size; |
| |
| /** |
| * This class is used as a means to guess the actual screen resolution that the |
| * device is capable of playing. |
| */ |
| public class ScreenResolutionUtil { |
| public static boolean isResolutionSupportedForType(String mimeType, Size targetResolution) { |
| MediaCodecInfo[] codecInfos = new MediaCodecList(MediaCodecList.ALL_CODECS).getCodecInfos(); |
| for (MediaCodecInfo codecInfo : codecInfos) { |
| try { |
| MediaCodecInfo.CodecCapabilities codecCapabilities = |
| codecInfo.getCapabilitiesForType(mimeType); |
| if (codecCapabilities == null) { |
| continue; |
| } |
| MediaCodecInfo.VideoCapabilities videoCapabilities = |
| codecCapabilities.getVideoCapabilities(); |
| if (videoCapabilities == null) { |
| continue; |
| } |
| if (videoCapabilities.isSizeSupported( |
| targetResolution.getWidth(), targetResolution.getHeight())) { |
| return true; |
| } |
| } catch (IllegalArgumentException e) { |
| continue; |
| } |
| } |
| return false; |
| } |
| } |