{"action":"created","issue":{"url":"https://api.github.com/repos/google/ExoPlayer/issues/3435","repository_url":"https://api.github.com/repos/google/ExoPlayer","labels_url":"https://api.github.com/repos/google/ExoPlayer/issues/3435/labels{/name}","comments_url":"https://api.github.com/repos/google/ExoPlayer/issues/3435/comments","events_url":"https://api.github.com/repos/google/ExoPlayer/issues/3435/events","html_url":"https://github.com/google/ExoPlayer/issues/3435","id":271910072,"number":3435,"title":"MediaCodec reporting the codec’s (avc1.640029) specific profile and level are not supported","user":{"login":"pradeep-vernekar","id":13975268,"avatar_url":"https://avatars0.githubusercontent.com/u/13975268?v=4","gravatar_id":"","url":"https://api.github.com/users/pradeep-vernekar","html_url":"https://github.com/pradeep-vernekar","followers_url":"https://api.github.com/users/pradeep-vernekar/followers","following_url":"https://api.github.com/users/pradeep-vernekar/following{/other_user}","gists_url":"https://api.github.com/users/pradeep-vernekar/gists{/gist_id}","starred_url":"https://api.github.com/users/pradeep-vernekar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pradeep-vernekar/subscriptions","organizations_url":"https://api.github.com/users/pradeep-vernekar/orgs","repos_url":"https://api.github.com/users/pradeep-vernekar/repos","events_url":"https://api.github.com/users/pradeep-vernekar/events{/privacy}","received_events_url":"https://api.github.com/users/pradeep-vernekar/received_events","type":"User","site_admin":false},"labels":[{"id":106814994,"url":"https://api.github.com/repos/google/ExoPlayer/labels/question","name":"question","color":"cc317c","default":true}],"state":"open","locked":false,"assignee":{"login":"AquilesCanta","id":8539544,"avatar_url":"https://avatars1.githubusercontent.com/u/8539544?v=4","gravatar_id":"","url":"https://api.github.com/users/AquilesCanta","html_url":"https://github.com/AquilesCanta","followers_url":"https://api.github.com/users/AquilesCanta/followers","following_url":"https://api.github.com/users/AquilesCanta/following{/other_user}","gists_url":"https://api.github.com/users/AquilesCanta/gists{/gist_id}","starred_url":"https://api.github.com/users/AquilesCanta/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AquilesCanta/subscriptions","organizations_url":"https://api.github.com/users/AquilesCanta/orgs","repos_url":"https://api.github.com/users/AquilesCanta/repos","events_url":"https://api.github.com/users/AquilesCanta/events{/privacy}","received_events_url":"https://api.github.com/users/AquilesCanta/received_events","type":"User","site_admin":false},"assignees":[{"login":"AquilesCanta","id":8539544,"avatar_url":"https://avatars1.githubusercontent.com/u/8539544?v=4","gravatar_id":"","url":"https://api.github.com/users/AquilesCanta","html_url":"https://github.com/AquilesCanta","followers_url":"https://api.github.com/users/AquilesCanta/followers","following_url":"https://api.github.com/users/AquilesCanta/following{/other_user}","gists_url":"https://api.github.com/users/AquilesCanta/gists{/gist_id}","starred_url":"https://api.github.com/users/AquilesCanta/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AquilesCanta/subscriptions","organizations_url":"https://api.github.com/users/AquilesCanta/orgs","repos_url":"https://api.github.com/users/AquilesCanta/repos","events_url":"https://api.github.com/users/AquilesCanta/events{/privacy}","received_events_url":"https://api.github.com/users/AquilesCanta/received_events","type":"User","site_admin":false}],"milestone":null,"comments":0,"created_at":"2017-11-07T17:05:23Z","updated_at":"2018-04-05T17:27:13Z","closed_at":null,"author_association":"NONE","body":"### Issue description\r\nSome high quality renditions that were playable in ExoPlayer version 1.5.9 are no longer playable in version 2.5.4, using the same device and conditions.\r\nExo Player 2+ bitrate filter logic is dependent on device codec capability.\r\nPrior to Exo Player 2, the bitrate filter logic is not based on the device codec and was just checking the resolution and frame rate compatibility.\r\nWhat is the best way to bypass the CODEC check in Exo Player 2+. is there any risk by doing this?\r\n\r\n### Reproduction steps\r\nUsing the ExoPlayer demo app for version 1.5.9 and the stream, the device can adapt between all 5 renditions.\r\nUsing the ExoPlayer demo app for version 2.5.4 and the stream, the device can't adapt between all 5 renditions. It only takes into account the H.264 Baseline Profile level 3.0 (avc1.66.30), marking the H.264 High Profile level 4.1 (avc1.640029) as NO_EXCEEDS_CAPABILITIES.\r\n\r\n### Version of ExoPlayer being used\r\nComparing versions 1.5.9 and 2.5.4.\r\n\r\n### Device(s) and version(s) of Android being used\r\nRandomly chosen devices which demonstrate the issue (adapting only on the two lowest 640x360 resolutions):\r\n-Nexus 5X API 25 Emulator Android: 7.1.1\r\n-Motorola (Moto G4) Android version: 6.0.1 screen res: 1080 x 1920\r\n-Sony Xperia Z5 Dual (E6633) Android version: 7.1.1 Screen-res: 1080 x 1920\r\n-Sony Xperia Z5 Compact (E5823) Android version: 5.1.1 Screen-res: 1280 x 720\r\n \r\nThese devices don't show the issue (adapt to 1280x720 rendition):\r\n-Nexus 5X API 26 Emulator Android: 8.0\r\n-LG G5 (LG-H850) Android: 7.0\r\n-Samsung SM-A520F Android version: 6.0.1\r\n\r\n### A full bug report captured from the device\r\nattached"},"comment":{"url":"https://api.github.com/repos/google/ExoPlayer/issues/comments/379013907","html_url":"https://github.com/google/ExoPlayer/issues/3435#issuecomment-379013907","issue_url":"https://api.github.com/repos/google/ExoPlayer/issues/3435","id":379013907,"user":{"login":"AquilesCanta","id":8539544,"avatar_url":"https://avatars1.githubusercontent.com/u/8539544?v=4","gravatar_id":"","url":"https://api.github.com/users/AquilesCanta","html_url":"https://github.com/AquilesCanta","followers_url":"https://api.github.com/users/AquilesCanta/followers","following_url":"https://api.github.com/users/AquilesCanta/following{/other_user}","gists_url":"https://api.github.com/users/AquilesCanta/gists{/gist_id}","starred_url":"https://api.github.com/users/AquilesCanta/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AquilesCanta/subscriptions","organizations_url":"https://api.github.com/users/AquilesCanta/orgs","repos_url":"https://api.github.com/users/AquilesCanta/repos","events_url":"https://api.github.com/users/AquilesCanta/events{/privacy}","received_events_url":"https://api.github.com/users/AquilesCanta/received_events","type":"User","site_admin":false},"created_at":"2018-04-05T17:27:13Z","updated_at":"2018-04-05T17:27:13Z","author_association":"CONTRIBUTOR","body":"> What is the best way to bypass the CODEC check in ExoPlayer 2+\r\n\r\nAs things are now, I think overriding MediaCodecVideoRenderer#supportsFormat is the most straightforward way. \r\n\r\n> is there any risk by doing this?\r\n\r\nYes. The codec check should be more accurate than the previous (resolution+framerate) approach. Nonetheless, it's been reported in the past that devices under-report format support. While this is inconvenient, it is usually more desirable than trying to play an unsupported format, which might fail in unexpected ways, like native crashes. Note that the DefaultTrackSelector has `exceedRendererCapabilitiesIfNecessary` enabled by default, which means that we try to play the track if not selecting the track would mean not having anything to play. In this specific case, the alternative tracks are selected instead.\r\n\r\nAlso, skipping the check altogether means drastically increasing the chances of exceeding the capabilities of the device with a track selection. I can imagine someone could build a codecs whitelist per device, for cases where the device under-advertises capabilities. Hopefully this approach would fill the codecs check gap. Does this answer your question?"}}
{"actor":{"display_login":"AquilesCanta"}}