{"action":"reopened","issue":{"url":"https://api.github.com/repos/google/ExoPlayer/issues/4825","repository_url":"https://api.github.com/repos/google/ExoPlayer","labels_url":"https://api.github.com/repos/google/ExoPlayer/issues/4825/labels{/name}","comments_url":"https://api.github.com/repos/google/ExoPlayer/issues/4825/comments","events_url":"https://api.github.com/repos/google/ExoPlayer/issues/4825/events","html_url":"https://github.com/google/ExoPlayer/issues/4825","id":360750953,"node_id":"MDU6SXNzdWUzNjA3NTA5NTM=","number":4825,"title":"DRM: ExoPlayer does not check the key status before adapting to a different representation","user":{"login":"okycelt","id":26062845,"node_id":"MDQ6VXNlcjI2MDYyODQ1","avatar_url":"https://avatars2.githubusercontent.com/u/26062845?v=4","gravatar_id":"","url":"https://api.github.com/users/okycelt","html_url":"https://github.com/okycelt","followers_url":"https://api.github.com/users/okycelt/followers","following_url":"https://api.github.com/users/okycelt/following{/other_user}","gists_url":"https://api.github.com/users/okycelt/gists{/gist_id}","starred_url":"https://api.github.com/users/okycelt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/okycelt/subscriptions","organizations_url":"https://api.github.com/users/okycelt/orgs","repos_url":"https://api.github.com/users/okycelt/repos","events_url":"https://api.github.com/users/okycelt/events{/privacy}","received_events_url":"https://api.github.com/users/okycelt/received_events","type":"User","site_admin":false},"labels":[{"id":106814994,"node_id":"MDU6TGFiZWwxMDY4MTQ5OTQ=","url":"https://api.github.com/repos/google/ExoPlayer/labels/question","name":"question","color":"cc317c","default":true}],"state":"open","locked":false,"assignee":{"login":"jefftinker","id":16543268,"node_id":"MDQ6VXNlcjE2NTQzMjY4","avatar_url":"https://avatars2.githubusercontent.com/u/16543268?v=4","gravatar_id":"","url":"https://api.github.com/users/jefftinker","html_url":"https://github.com/jefftinker","followers_url":"https://api.github.com/users/jefftinker/followers","following_url":"https://api.github.com/users/jefftinker/following{/other_user}","gists_url":"https://api.github.com/users/jefftinker/gists{/gist_id}","starred_url":"https://api.github.com/users/jefftinker/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jefftinker/subscriptions","organizations_url":"https://api.github.com/users/jefftinker/orgs","repos_url":"https://api.github.com/users/jefftinker/repos","events_url":"https://api.github.com/users/jefftinker/events{/privacy}","received_events_url":"https://api.github.com/users/jefftinker/received_events","type":"User","site_admin":false},"assignees":[{"login":"jefftinker","id":16543268,"node_id":"MDQ6VXNlcjE2NTQzMjY4","avatar_url":"https://avatars2.githubusercontent.com/u/16543268?v=4","gravatar_id":"","url":"https://api.github.com/users/jefftinker","html_url":"https://github.com/jefftinker","followers_url":"https://api.github.com/users/jefftinker/followers","following_url":"https://api.github.com/users/jefftinker/following{/other_user}","gists_url":"https://api.github.com/users/jefftinker/gists{/gist_id}","starred_url":"https://api.github.com/users/jefftinker/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jefftinker/subscriptions","organizations_url":"https://api.github.com/users/jefftinker/orgs","repos_url":"https://api.github.com/users/jefftinker/repos","events_url":"https://api.github.com/users/jefftinker/events{/privacy}","received_events_url":"https://api.github.com/users/jefftinker/received_events","type":"User","site_admin":false},{"login":"paf-wv","id":38962500,"node_id":"MDQ6VXNlcjM4OTYyNTAw","avatar_url":"https://avatars3.githubusercontent.com/u/38962500?v=4","gravatar_id":"","url":"https://api.github.com/users/paf-wv","html_url":"https://github.com/paf-wv","followers_url":"https://api.github.com/users/paf-wv/followers","following_url":"https://api.github.com/users/paf-wv/following{/other_user}","gists_url":"https://api.github.com/users/paf-wv/gists{/gist_id}","starred_url":"https://api.github.com/users/paf-wv/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/paf-wv/subscriptions","organizations_url":"https://api.github.com/users/paf-wv/orgs","repos_url":"https://api.github.com/users/paf-wv/repos","events_url":"https://api.github.com/users/paf-wv/events{/privacy}","received_events_url":"https://api.github.com/users/paf-wv/received_events","type":"User","site_admin":false}],"milestone":null,"comments":8,"created_at":"2018-09-17T07:30:06Z","updated_at":"2019-01-03T23:22:14Z","closed_at":null,"author_association":"NONE","body":"### Issue description\r\nWe use Widevine DRM together with ExoPlayer. When we limit `allowed_track_types` on our Widevine proxy eg. to `SD_ONLY` and we try playing DASH containing some HD tracks, the playback fails with the following error when the player tries to adapt to an HD track.\r\n\r\n```\r\nE/WVCdm: PolicyEngine::CanDecrypt Key '5955A05307225C50B4B4A556155C12A1' not in license.\r\n    Decrypt error result in session sid32 during encrypted block: 5\r\nD/VodPlayerFragment$MediaSourceListener: onDownstreamFormatChanged(format: Format(5, video/mp4, video/avc, 4500000, null, [1920, 1080, 23.98], [-1, -1]))\r\nE/ExoPlayerImplInternal: Playback error.\r\n    com.google.android.exoplayer2.ExoPlaybackException\r\n        at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.feedInputBuffer(MediaCodecRenderer.java:771)\r\n        at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:574)\r\n        at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:518)\r\n        at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:301)\r\n        at android.os.Handler.dispatchMessage(Handler.java:101)\r\n        at android.os.Looper.loop(Looper.java:164)\r\n        at android.os.HandlerThread.run(HandlerThread.java:65)\r\n     Caused by: android.media.MediaCodec$CryptoException: Crypto key not available\r\n        at android.media.MediaCodec.native_queueSecureInputBuffer(Native Method)\r\n        at android.media.MediaCodec.queueSecureInputBuffer(MediaCodec.java:2532)\r\n        at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.feedInputBuffer(MediaCodecRenderer.java:762)\r\n        at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:574) \r\n        at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:518) \r\n        at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:301) \r\n        at android.os.Handler.dispatchMessage(Handler.java:101) \r\n        at android.os.Looper.loop(Looper.java:164) \r\n        at android.os.HandlerThread.run(HandlerThread.java:65) \r\n```\r\n\r\nThe expected behaviour would be that player wouldn't switch to a video track it doesn't have a license for.\r\n\r\nIs ExoPlayer able to handle this situation itself or we have to make a workaround, eg. by making an initial track selection excluding HD tracks?\r\n\r\nShaka player is handling this situation correctly, ie. it's not adapting to a not allowed track.\r\n\r\nThis is more of a question, so I'm not enclosing any test content or adb bugreport. If you believe this could be an issue related to ExoPlayer, I can provide that afterwards.\r\n\r\n### Reproduction steps\r\nSet allowed_track_types in Widevine proxy to SD_ONLY.\r\nPlay content containing HD track.\r\n\r\n### Version of ExoPlayer being used\r\n2.8.2\r\n\r\n### Device(s) and version(s) of Android being used\r\nAmlogic STB with Android 6.0.1\r\nAmlogic STB with Android 8.0\r\n"}}
{"actor":{"display_login":"paf-wv"}}