-
Notifications
You must be signed in to change notification settings - Fork 399
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Video Track EXCEEDS_CAPABILITIES on media3 v1.2.0 but not in exoplayer v2.17.0 #966
Comments
There is an improvement with I tested Here are the logs for v1.2.1 H.264 - media3 1v.2.1
H.265 - media3 v1.2.1 - No improvement from v1.2.0
(See my previous message showing logs for exoplayer v2.17.0 playing |
Is this regression going to be fixed or is there a specific reason the player became more strict? |
Hi @kvillnv, Thank you for reporting your issue. The issue is that the device is not accurately reporting its support capabilities according to the PerformancePoint API. We are currently working on a workaround to fix the regressed behavior and will update this bug when the fix is in. Thank you so much for your patience. |
All right, thank you @microkatz. |
Some devices supporting Performance Points for decoder coverage are missing coverage over the CDD requirements for H264. For these cases ExoPlayer should fall back to legacy resolution and frame rate support checks. If there is a stream evaluated as a PerformancePointCoverageResult of COVERAGE_RESULT_NO, then ExoPlayer checks for coverage of the 720p H264 CDD requirement. Issue: google/ExoPlayer#10898 Issue: #693 Issue: #966 PiperOrigin-RevId: 609740128
Some devices supporting Performance Points for decoder coverage are missing coverage over the CDD requirements for H264. For these cases ExoPlayer should fall back to legacy resolution and frame rate support checks. If there is a stream evaluated as a PerformancePointCoverageResult of COVERAGE_RESULT_NO, then ExoPlayer checks for coverage of the 720p H264 CDD requirement. Issue: #10898 Issue: androidx/media#693 Issue: androidx/media#966 PiperOrigin-RevId: 609740128
@microkatz thanks. I'll test soon. |
I will close this issue thread as a result. Please re-open or create a new issue if you are still having problems. Thank you! |
Some devices supporting Performance Points for decoder coverage are missing coverage over the CDD requirements for H264. For these cases ExoPlayer should fall back to legacy resolution and frame rate support checks. If there is a stream evaluated as a PerformancePointCoverageResult of COVERAGE_RESULT_NO, then ExoPlayer checks for coverage of the 720p H264 CDD requirement. Issue: google/ExoPlayer#10898 Issue: #693 Issue: #966 PiperOrigin-RevId: 609740128 (cherry picked from commit 23a301f)
Some devices supporting Performance Points for decoder coverage are missing coverage over the CDD requirements for H264. For these cases ExoPlayer should fall back to legacy resolution and frame rate support checks. If there is a stream evaluated as a PerformancePointCoverageResult of COVERAGE_RESULT_NO, then ExoPlayer checks for coverage of the 720p H264 CDD requirement. Issue: google/ExoPlayer#10898 Issue: androidx#693 Issue: androidx#966 PiperOrigin-RevId: 609740128 (cherry picked from commit 23a301f)
Using the same device and same streams I have noticed a performance limitation in media3 v1.2.0 in comparison to exoplayer v2.17.0 and below.
It seems media3 is more strict. In the MappingTrackSelector logs, more tracks are marked
supported=NO_EXCEEDS_CAPABILITIES
This results in lower resolution playback on media3.
Media3 is using all the same parameters I was using with exoplayer, migration was pretty straightforward following the guide with exoplayer 2.19.1.
Device: Samsung Galaxy Tab A7 (SM-T500) API 31. It is a middle performance device, which is a great benchmark for testing before going to production.
H.264 codec: OMX.qcom.video.decoder.avc.secure
H.265 codec: OMX.qcom.video.decoder.hevc.secure
Media: Any H.264 and H.265 Widevine protected DASH streams with multiple video tracks.
H.264 playlists contains 3 video tracks: 640x380, 960x540 and 1280x720
H.265 contains: 640x480,128x720 and 1920x1080
Those streams have been playing for years fine with exoplayer 2.17 and below.
With exoplayer 2.17.0 and below the A7 was able to play:
With media3 1.2.0 the A7 can only play:
I was about to create a new app release and fortunately I noticed the quality issue last minute.
If it happens on the Tab A7 it will probably happen on more devices.
Note: My Pixel 7 pro is not affected, but I don't expect all the users to have high performance devices, I really want mid-performance devices to stay compatible.
It looks like programmed obsolescence.
What I noticed:
In the logs below
accelerated=YES
does not appear on media3 and appears in exoplayer.I am not using a custom
MediaCodecSelector
in this app. I would expect exoplayer to select the correct one. And even if I start exploring this solution I cannot be sure to select correct codec on all devices.I have experience with
MediaCodecSelector
on another app with a custom STB.QUESTION:
Can you explain what changed in media3?
Is there a new setting I should enable somewhere?
Any other information that could help?
Here are the MappingTrackSelector logs. They show less track compatible with media3, and
accelerated=YES
is missingH.264 - Same device, same DASH
H.265 - Same device, same DASH
-media3 v1.2.0
Audio tracks are not shown here for compactness. They all work.
The text was updated successfully, but these errors were encountered: