Peter Zhou
Peter Zhou

Reputation: 43

What android devices/decoder has supported adaptive video playback

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

Upvotes: 3

Views: 2360

Answers (1)

Lajos Molnar
Lajos Molnar

Reputation: 811

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);
    }
}

Upvotes: 4

Related Questions