{"action":"created","issue":{"url":"https://api.github.com/repos/google/ExoPlayer/issues/2770","repository_url":"https://api.github.com/repos/google/ExoPlayer","labels_url":"https://api.github.com/repos/google/ExoPlayer/issues/2770/labels{/name}","comments_url":"https://api.github.com/repos/google/ExoPlayer/issues/2770/comments","events_url":"https://api.github.com/repos/google/ExoPlayer/issues/2770/events","html_url":"https://github.com/google/ExoPlayer/issues/2770","id":226185753,"number":2770,"title":"Some Smooth Streaming assets don't play (CodecException)","user":{"login":"MizzleDK","id":1175953,"avatar_url":"https://avatars3.githubusercontent.com/u/1175953?v=3","gravatar_id":"","url":"https://api.github.com/users/MizzleDK","html_url":"https://github.com/MizzleDK","followers_url":"https://api.github.com/users/MizzleDK/followers","following_url":"https://api.github.com/users/MizzleDK/following{/other_user}","gists_url":"https://api.github.com/users/MizzleDK/gists{/gist_id}","starred_url":"https://api.github.com/users/MizzleDK/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MizzleDK/subscriptions","organizations_url":"https://api.github.com/users/MizzleDK/orgs","repos_url":"https://api.github.com/users/MizzleDK/repos","events_url":"https://api.github.com/users/MizzleDK/events{/privacy}","received_events_url":"https://api.github.com/users/MizzleDK/received_events","type":"User","site_admin":false},"labels":[{"id":258839460,"url":"https://api.github.com/repos/google/ExoPlayer/labels/device%20specific%20issue","name":"device specific issue","color":"fbca04","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":13,"created_at":"2017-05-04T06:09:43Z","updated_at":"2017-05-23T05:17:43Z","closed_at":null,"body":"### Issue description\r\nI'm using the demo application with a set of custom HSS samples added to the `media.exolist.json` file. All samples are PlayReady protected, although the server currently doesn't authenticate and allows playback even if you only have the manifest URL and nothing else.\r\n\r\nThe \"Live\" and \"LLCU\" samples work, but the \"Movie\" and \"Catchup\" ones don't. They both fail with a `ExoPlaybackException` / `CodecException`.\r\n\r\nUsing the demo player, I've found a way to get it working most of the time. Once it fails, I can disable both video and audio, press \"Retry\", wait for playbackState to be \"ready\" and then re-enable video and audio again one at a time. Not sure why it works (and not sure why it only works some of the time), but maybe it's useful information.\r\n\r\n### Reproduction steps\r\nAdd the custom samples and try them out. Hopefully they won't expire before you get a chance to test them.\r\n\r\n### Link to test content\r\nSent to dev.exoplayer@gmail.com with issue number in the subject line.\r\n\r\n### Version of ExoPlayer being used\r\nr2.4.0\r\n\r\n### Device(s) and version(s) of Android being used\r\nNvidia Shield TV 2017 with Android TV 7.0 (Shield TV SW version 5.1)\r\n\r\n### A full bug report captured from the device\r\nFor the sake of people searching Google for a similar issue, I'm posting some of the adb logcat here:\r\n```\r\n05-04 08:12:19.926 19153-19153/com.google.android.exoplayer2.demo I/ExoPlayerImpl: Init ExoPlayerLib/2.4.0 [darcy, SHIELD Android TV, NVIDIA, 24]\r\n05-04 08:12:19.927 19153-19153/com.google.android.exoplayer2.demo D/EventLogger: state [0.00, true, I]\r\n05-04 08:12:19.937 19153-19153/com.google.android.exoplayer2.demo D/EventLogger: state [0.01, true, B]\r\n05-04 08:12:20.018 19153-19180/com.google.android.exoplayer2.demo D/OpenGLRenderer: endAllActiveAnimators on 0x2042042c00 (ExpandableListView) with handle 0x20427fffe0\r\n05-04 08:12:20.215 19153-19153/com.google.android.exoplayer2.demo D/EventLogger: sourceInfo [periodCount=1, windowCount=1\r\n05-04 08:12:20.215 19153-19153/com.google.android.exoplayer2.demo D/EventLogger:   period [6007.08]\r\n05-04 08:12:20.215 19153-19153/com.google.android.exoplayer2.demo D/EventLogger:   window [6007.08, true, false]\r\n05-04 08:12:20.215 19153-19153/com.google.android.exoplayer2.demo D/EventLogger: ]\r\n05-04 08:12:20.232 19153-19153/com.google.android.exoplayer2.demo D/EventLogger: loading [true]\r\n05-04 08:12:20.234 19153-19153/com.google.android.exoplayer2.demo D/EventLogger: Tracks [\r\n05-04 08:12:20.234 19153-19153/com.google.android.exoplayer2.demo D/EventLogger:   Renderer:0 [\r\n05-04 08:12:20.234 19153-19153/com.google.android.exoplayer2.demo D/EventLogger:     Group:0, adaptive_supported=YES [\r\n05-04 08:12:20.234 19153-19153/com.google.android.exoplayer2.demo D/EventLogger:       [X] Track:0, id=0, mimeType=video/avc, bitrate=264000, res=480x270, supported=YES\r\n05-04 08:12:20.234 19153-19153/com.google.android.exoplayer2.demo D/EventLogger:       [X] Track:1, id=1, mimeType=video/avc, bitrate=464000, res=480x270, supported=YES\r\n05-04 08:12:20.234 19153-19153/com.google.android.exoplayer2.demo D/EventLogger:       [X] Track:2, id=2, mimeType=video/avc, bitrate=864000, res=640x360, supported=YES\r\n05-04 08:12:20.234 19153-19153/com.google.android.exoplayer2.demo D/EventLogger:       [X] Track:3, id=3, mimeType=video/avc, bitrate=1200000, res=640x360, supported=YES\r\n05-04 08:12:20.234 19153-19153/com.google.android.exoplayer2.demo D/EventLogger:       [X] Track:4, id=4, mimeType=video/avc, bitrate=1800000, res=1024x576, supported=YES\r\n05-04 08:12:20.234 19153-19153/com.google.android.exoplayer2.demo D/EventLogger:       [X] Track:5, id=5, mimeType=video/avc, bitrate=2500000, res=1024x576, supported=YES\r\n05-04 08:12:20.234 19153-19153/com.google.android.exoplayer2.demo D/EventLogger:       [X] Track:6, id=6, mimeType=video/avc, bitrate=4500000, res=1280x720, supported=YES\r\n05-04 08:12:20.234 19153-19153/com.google.android.exoplayer2.demo D/EventLogger:     ]\r\n05-04 08:12:20.234 19153-19153/com.google.android.exoplayer2.demo D/EventLogger:   ]\r\n05-04 08:12:20.234 19153-19153/com.google.android.exoplayer2.demo D/EventLogger:   Renderer:1 [\r\n05-04 08:12:20.234 19153-19153/com.google.android.exoplayer2.demo D/EventLogger:     Group:0, adaptive_supported=YES_NOT_SEAMLESS [\r\n05-04 08:12:20.234 19153-19153/com.google.android.exoplayer2.demo D/EventLogger:       [X] Track:0, id=0, mimeType=audio/mp4a-latm, bitrate=96000, channels=2, sample_rate=48000, language=und, supported=YES\r\n05-04 08:12:20.234 19153-19153/com.google.android.exoplayer2.demo D/EventLogger:       [ ] Track:1, id=1, mimeType=audio/mp4a-latm, bitrate=192000, channels=2, sample_rate=48000, language=und, supported=YES\r\n05-04 08:12:20.234 19153-19153/com.google.android.exoplayer2.demo D/EventLogger:     ]\r\n05-04 08:12:20.234 19153-19153/com.google.android.exoplayer2.demo D/EventLogger:   ]\r\n05-04 08:12:20.234 19153-19153/com.google.android.exoplayer2.demo D/EventLogger: ]\r\n05-04 08:12:20.234 19153-19153/com.google.android.exoplayer2.demo D/EventLogger: videoEnabled [0.31]\r\n05-04 08:12:20.234 19153-19153/com.google.android.exoplayer2.demo D/EventLogger: audioEnabled [0.31]\r\n05-04 08:12:20.337 19153-12799/com.google.android.exoplayer2.demo I/OMXClient: MuxOMX ctor\r\n05-04 08:12:20.346 19153-19153/com.google.android.exoplayer2.demo D/EventLogger: audioDecoderInitialized [0.42, OMX.google.aac.decoder]\r\n05-04 08:12:20.346 19153-19153/com.google.android.exoplayer2.demo D/EventLogger: audioFormatChanged [0.42, id=0, mimeType=audio/mp4a-latm, bitrate=96000, channels=2, sample_rate=48000, language=und]\r\n05-04 08:12:20.351 19153-12803/com.google.android.exoplayer2.demo I/OMXClient: MuxOMX ctor\r\n05-04 08:12:20.361 19153-12802/com.google.android.exoplayer2.demo I/MediaCodec: [OMX.Nvidia.h264.decode.secure] setting surface generation to 19612683\r\n05-04 08:12:20.363 19153-12803/com.google.android.exoplayer2.demo W/ACodec: [OMX.Nvidia.h264.decode.secure] setting color aspects failed even though codec advertises support\r\n05-04 08:12:20.363 19153-12803/com.google.android.exoplayer2.demo W/ACodec: [OMX.Nvidia.h264.decode.secure] setting HDRStaticInfo failed even though codec advertises support\r\n05-04 08:12:20.363 19153-12803/com.google.android.exoplayer2.demo I/ACodec: Enable timestamp filtering for Video Decoder\r\n05-04 08:12:20.366 19153-12803/com.google.android.exoplayer2.demo I/ACodec: Get OMX_IndexConfigScale: 0x10000/0x10000\r\n05-04 08:12:20.366 19153-12803/com.google.android.exoplayer2.demo I/ACodec: Scaled Width is 1280, height is 720\r\n05-04 08:12:20.366 19153-12803/com.google.android.exoplayer2.demo W/ACodec: [OMX.Nvidia.h264.decode.secure] setting color aspects failed even though codec advertises support\r\n05-04 08:12:20.366 19153-12803/com.google.android.exoplayer2.demo W/ACodec: [OMX.Nvidia.h264.decode.secure] getting HDRStaticInfo failed even though codec advertises support\r\n05-04 08:12:20.369 19153-12803/com.google.android.exoplayer2.demo D/SurfaceUtils: set up nativeWindow 0x202f58ee10 for 1280x720, color 0x106, rotation 0, usage 0x6b00\r\n05-04 08:12:20.372 19153-19153/com.google.android.exoplayer2.demo D/EventLogger: videoDecoderInitialized [0.44, OMX.Nvidia.h264.decode.secure]\r\n05-04 08:12:20.372 19153-19153/com.google.android.exoplayer2.demo D/EventLogger: videoFormatChanged [0.44, id=6, mimeType=video/avc, bitrate=4500000, res=1280x720]\r\n05-04 07:53:02.919 19153-24866/com.google.android.exoplayer2.demo E/ExoPlayerImplInternal: Internal runtime error.\r\n                                                                                           android.media.MediaCodec$CodecException: Error 0xffffffff\r\n                                                                                               at android.media.MediaCodec.native_queueSecureInputBuffer(Native Method)\r\n                                                                                               at android.media.MediaCodec.queueSecureInputBuffer(MediaCodec.java:2711)\r\n                                                                                               at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.feedInputBuffer(MediaCodecRenderer.java:699)\r\n                                                                                               at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:511)\r\n                                                                                               at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:479)\r\n                                                                                               at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:308)\r\n                                                                                               at android.os.Handler.dispatchMessage(Handler.java:98)\r\n                                                                                               at android.os.Looper.loop(Looper.java:154)\r\n                                                                                               at android.os.HandlerThread.run(HandlerThread.java:61)\r\n05-04 07:53:02.921 19153-19153/com.google.android.exoplayer2.demo E/EventLogger: playerFailed [0.63]\r\n                                                                                 com.google.android.exoplayer2.ExoPlaybackException\r\n                                                                                     at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:362)\r\n                                                                                     at android.os.Handler.dispatchMessage(Handler.java:98)\r\n                                                                                     at android.os.Looper.loop(Looper.java:154)\r\n                                                                                     at android.os.HandlerThread.run(HandlerThread.java:61)\r\n                                                                                  Caused by: android.media.MediaCodec$CodecException: Error 0xffffffff\r\n                                                                                     at android.media.MediaCodec.native_queueSecureInputBuffer(Native Method)\r\n                                                                                     at android.media.MediaCodec.queueSecureInputBuffer(MediaCodec.java:2711)\r\n                                                                                     at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.feedInputBuffer(MediaCodecRenderer.java:699)\r\n                                                                                     at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:511)\r\n                                                                                     at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:479)\r\n                                                                                     at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:308)\r\n                                                                                     at android.os.Handler.dispatchMessage(Handler.java:98) \r\n                                                                                     at android.os.Looper.loop(Looper.java:154) \r\n                                                                                     at android.os.HandlerThread.run(HandlerThread.java:61) \r\n05-04 08:12:30.428 19153-12803/com.google.android.exoplayer2.demo D/SurfaceUtils: set up nativeWindow 0x202f58ee10 for 1x1, color 0x2, rotation 0, usage 0x930\r\n05-04 08:12:30.478 19153-19153/com.google.android.exoplayer2.demo D/EventLogger: videoDisabled [10.55]\r\n05-04 08:12:30.482 19153-19153/com.google.android.exoplayer2.demo D/EventLogger: audioDisabled [10.56]\r\n05-04 08:12:30.482 19153-19153/com.google.android.exoplayer2.demo D/EventLogger: loading [false]\r\n05-04 08:12:30.484 19153-19153/com.google.android.exoplayer2.demo D/EventLogger: state [10.56, true, I]\r\n```\r\n\r\nFull bug report sent to dev.exoplayer@gmail.com with issue number in the subject line."},"comment":{"url":"https://api.github.com/repos/google/ExoPlayer/issues/comments/303292751","html_url":"https://github.com/google/ExoPlayer/issues/2770#issuecomment-303292751","issue_url":"https://api.github.com/repos/google/ExoPlayer/issues/2770","id":303292751,"user":{"login":"sureshcnvidia","id":15610374,"avatar_url":"https://avatars3.githubusercontent.com/u/15610374?v=3","gravatar_id":"","url":"https://api.github.com/users/sureshcnvidia","html_url":"https://github.com/sureshcnvidia","followers_url":"https://api.github.com/users/sureshcnvidia/followers","following_url":"https://api.github.com/users/sureshcnvidia/following{/other_user}","gists_url":"https://api.github.com/users/sureshcnvidia/gists{/gist_id}","starred_url":"https://api.github.com/users/sureshcnvidia/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sureshcnvidia/subscriptions","organizations_url":"https://api.github.com/users/sureshcnvidia/orgs","repos_url":"https://api.github.com/users/sureshcnvidia/repos","events_url":"https://api.github.com/users/sureshcnvidia/events{/privacy}","received_events_url":"https://api.github.com/users/sureshcnvidia/received_events","type":"User","site_admin":false},"created_at":"2017-05-23T05:17:43Z","updated_at":"2017-05-23T05:17:43Z","body":"@MizzleDK @ojw28 \r\n\r\nLooking into the uniqueness of the samples, the reason why it was not working on Nvidia Shield is because the encrypted samples had all IV's zeroed out. Our PlayReady reference implementation had this restricted to avoid \"replay\" attacks (https://crypto.stackexchange.com/questions/8600/why-should-i-use-an-initialization-vector-iv-when-i-have-unique-keys ), and always liked salted IV's. \r\n\r\nHowever, it was later realized that, if the keys are always different and do not repeat in CTR mode, having all zero IV is still secure enough. (https://crypto.stackexchange.com/questions/8151/counter-mode-static-iv-but-different-keys ). This issue has been fixed and the next OTA of Nvidia Shield would have this fixed."}}
{"actor":{"display_login":"sureshcnvidia"}}