ExoPlayer icon indicating copy to clipboard operation
ExoPlayer copied to clipboard

Playback of Video Crashes on Selected Android Phones

Open saravanans-github opened this issue 3 years ago • 3 comments

Overview

  1. the below (and similar) content CRASHES w/ NO playback on the Android device
  2. HOWEVER other WV encrypted VOD play OK on the same device
  3. the same content in #1 play OK on other Android devices e.g Huawei LYA-L29
  4. We isolated the crash in #1 to be due to the Video by a. removing the audio in the manifest and noticing VIDEO-ONLY crashed b. removing the video in the manifest and noticed AUDIO-ONLY PLAYED

Appreciate any insights on how to workaround / resolve this issue please. Details below.

Steps to reproduce the issue


  1. Launch the ExoPlayer app with the following media.exolist.json config
[
  {
    "name": "Spark-Debugging",
    "samples": [
      {
        "name": "Working VOD",
        "uri": "https://spark.akamaized.net/dash/live/2014391/spark/4a2e24fc-289e-4e56-b8ac-54a8c926f172/clip_1001_master.mpd",
        "drm_scheme": "widevine",
        "drm_license_uri": "https://widevine.license.istreamplanet.com/widevine/api/license/0f6160eb-bbd3-4c70-8e4d-0d485e7cb055",
        "drm_key_request_properties": {"X-ISP-TOKEN":"--TOKEN-REDACTED--"}
      },
      {
        "name": "Crashing VOD",
        "uri": "https://sparksports-vod.akamaized.net/spark/203/120c8388-a3f2-44a8-80ee-066a633534d9/dash/001/120c8388-a3f2-44a8-80ee-066a633534d9_trickplay.mpd",
        "drm_scheme": "widevine",
        "drm_license_uri": "https://widevine.license.istreamplanet.com/widevine/api/license/0f6160eb-bbd3-4c70-8e4d-0d485e7cb055",
        "drm_key_request_properties": {"X-ISP-TOKEN":"--TOKEN-REDACTED--"}
      }
    ]
  }
]
  1. Playback of the Crashing VOD crashes Exoplayer

ADB Output


oppo-expoplayer-crash.log

DRM config properties


See media.exolist.json config in Steps to Reproduce > #1

Misc


  • ExoPlayer version number:
    // ExoPlayer version and version code.
    releaseVersion = '2.16.1'
    releaseVersionCode = 2016001
  • Android version/device/DRM info android-version-device-info android-drm-info

saravanans-github avatar Jan 19 '22 02:01 saravanans-github

From the logcat provided I see android.media.MediaCodec$CodecException: Error 0xffffffe0. 0xffffffe0 is -32, which I believe is DEAD_OBJECT defined in Errors.h.

Directly before the Java exception I also see a native crash from the /odm/bin/hw/[email protected] process with message ubsan: sub-overflow.

@rrfrias this looks like something in the DRM framework is crashing (during the first Decrypt() call of playback? Not sure)

There's more details in the full native trace included in the logs provided in the original comment.

icbaker avatar Jan 21 '22 13:01 icbaker

This seems to have the same problem as https://github.com/google/ExoPlayer/issues/8691. Qualcomm thinks this has been fixed by a TEE update, but maybe that has not made its way to the Oppo device. Will follow up with Oppo. Until it is fixed, you might want to consider reencoding your content (https://github.com/google/ExoPlayer/issues/8691#issuecomment-907094185)

Internal ref: 182495765

rrfrias avatar Jan 25 '22 19:01 rrfrias

Sorry, to leave this issue hanging for a couple of years. This has been fixed by Qualcomm though whether it has been addressed depends on whether the manufacturers had a release vehicle for that device. We were trying to add some tests to make sure that these problems do not occur in new devices but receive a HTTP 503 when using the content. If it is possible can you give us a new llink to content to repro the problem?

rrfrias avatar May 16 '24 00:05 rrfrias