问题
I've tested on Nexus 5 that
codecInfo.isFeatureSupported(MediaCodecInfo.CodecCapabilities.FEATURE_AdaptivePlayback)
returns false.
Does anyone know what chipset/software codec has supported the feature?
https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities.html#FEATURE_AdaptivePlayback
Thanks
回答1:
This is supported on most Nexus devices past KK MR1. Note, that it is HW video decoders only.
Nexus 5 (KK MR1): // Qualcomm Snapdragon 800
- OMX.qcom.video.decoder.avc
- OMX.qcom.video.decoder.mpeg4
- OMX.qcom.video.decoder.h263
- OMX.qcom.video.decoder.vp8
Nexus 4 and Nexus 7 v2013 (KK MR1): // Qualcomm Snapdragon S4 Pro APQ8064
- OMX.qcom.video.decoder.avc
- OMX.qcom.video.decoder.mpeg4
- OMX.qcom.video.decoder.h263
Nexus 10 (KK MR1) // Samsung Exynos 5250
- OMX.Exynos.MPEG4.Decoder
- OMX.Exynos.H263.Decoder
- OMX.Exynos.AVC.Decoder
Notable exceptions:
- Nexus 7 v2012 (no codecs support it in KK MR1)
For non-Nexus devices you need to query the codecs yourself. Here is my code-snippet that I did for the query.
int numCodecs = MediaCodecList.getCodecCount();
for (int i = 0; i < numCodecs; i++) {
MediaCodecInfo codecInfo = MediaCodecList.getCodecInfoAt(i);
String name = codecInfo.getName();
Log.i(TAG, "Examinig " + (codecInfo.isEncoder() ? "encoder" : "decoder") + ": " + name);
for(String type: codecInfo.getSupportedTypes()) {
boolean ap = codecInfo.getCapabilitiesForType(type).isFeatureSupported(MediaCodecInfo.CodecCapabilities.FEATURE_AdaptivePlayback);
Log.i(TAG, "supports adaptive playback: " + ap);
}
}
来源:https://stackoverflow.com/questions/22710310/what-android-devices-decoder-has-supported-adaptive-video-playback