Skip to content
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

Codec regression when updating from 2.9.5 to 2.18.1 #10604

Closed
1 task
lmartin opened this issue Sep 9, 2022 · 3 comments
Closed
1 task

Codec regression when updating from 2.9.5 to 2.18.1 #10604

lmartin opened this issue Sep 9, 2022 · 3 comments
Assignees
Labels

Comments

@lmartin
Copy link

lmartin commented Sep 9, 2022

ExoPlayer Version

2.18.1

Devices that reproduce the issue

Motorola Moto E (2nd gen) 4G LTE - Android 6.0 API 23

Devices that do not reproduce the issue

No response

Reproducible in the demo app?

Yes

Reproduction steps

Play mp4 video 1920x960@30fps

Expected result

Playback is smooth, hardware decoder is selected, log trace:
I MediaCodec: name=OMX.qcom.video.decoder.avc isType=false encoder=false

Actual result

Playback is jerky, fallback on software decoder, log trace:
D MediaCodecInfo: NoSupport [codec.profileLevel, avc1.4D0029, video/avc] [OMX.qcom.video.decoder.avc, video/avc] [surnia_umts, MotoE2(4G-LTE), motorola, 23]
I MediaCodec: name=OMX.google.h264.decoder isType=false encoder=false

Media

The same video but with a different codec profile works as expected (see attachment for logs).
Working video codec : avc1.640028
Not working video codec : avc1.4D0029

Bug Report

@lmartin
Copy link
Author

lmartin commented Sep 13, 2022

I updated the description.
Is there a way to restore the behaviour of Exoplayer 2.9.5, I mean accepting to use hw decoder for video codec avc1.4D0029?

@christosts christosts assigned microkatz and unassigned christosts Oct 11, 2022
@microkatz
Copy link
Contributor

@lmartin You noted in your bug that the issue is reproducible with the demo app. Can you direct us to the content you used to reproduce this issue?

@lmartin
Copy link
Author

lmartin commented Oct 17, 2022

Sorry but I can't share this private content. I fixed the issue by re-encoding the video with ffmpeg, I used this command :
./ffmpeg -i input.mp4 -c:v libx264 -x264opts keyint=25 -c:a copy output.mp4

icbaker pushed a commit that referenced this issue Nov 14, 2022
Added new method to check if codec just functionally supports a format. Changed getDecoderInfosSortedByFormatSupport to use new function to order by functional support. This allows decoders that only support functionally and are more preferred by the MediaCodecSelector to keep their preferred position in the sorted list.

UnitTests included
-Two MediaCodecVideoRenderer tests that verify hw vs sw does not have an effect on sort of the decoder list, it is only based on functional support

Issue: #10604
PiperOrigin-RevId: 487779284
icbaker pushed a commit to androidx/media that referenced this issue Nov 14, 2022
Added new method to check if codec just functionally supports a format. Changed getDecoderInfosSortedByFormatSupport to use new function to order by functional support. This allows decoders that only support functionally and are more preferred by the MediaCodecSelector to keep their preferred position in the sorted list.

UnitTests included
-Two MediaCodecVideoRenderer tests that verify hw vs sw does not have an effect on sort of the decoder list, it is only based on functional support

Issue: google/ExoPlayer#10604
PiperOrigin-RevId: 487779284
@google google locked and limited conversation to collaborators Feb 13, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

3 participants