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

Some Dolby Vision videos do not play in ExoPlayer (while play in platform MediaPlayer) #9139

Closed
moneytoo opened this issue Jul 1, 2021 · 3 comments

Comments

@moneytoo
Copy link
Contributor

moneytoo commented Jul 1, 2021

Some Dolby Vision videos (dvhe.05.09, dvhe.07.06) do not play in ExoPlayer - audio plays but picture stays black. The same video files play fine in platform native MediaPlayer.

Such files are for example these from #7667 (comment), specifically:

All these 3 files do not play (picture) on OnePlus 7 (Android 10) in ExoPlayer (while work in MediaPlayer). I get the same results when testing these files on Xiaomi Mi Box S (Android TV 9).

  • ExoPlayer version number: 2.14.1

Demo project (this is what I also used when capturing bugreports): https://github.com/moneytoo/ExoPlayerDemo/tree/players

Bugreports:

@kim-vde
Copy link
Contributor

kim-vde commented Jul 5, 2021

Profiles 5 and 7 are not mapped to HEVC (see MediaCodecVideoRenderer#getDecoderInfos) in ExoPlayer because:

  • Profile 5 is not backward compatible (BL signal cross-compatibility ID is 0 in the specs).
  • Profile 7 is deprecated. The backward compatibility information is present in the stream.

If I map the streams you provided to HEVC, then they play correctly, which is surprising for profile 5.

I'll see with the Dolby team if I can find out more and what we can do about that.

@kim-vde
Copy link
Contributor

kim-vde commented Jul 7, 2021

Update:

  • Profile 5 is playing with an HEVC decoder but with the wrong colors. That's why its signal cross-compatibility ID is set to 0 in the specs (meaning it is compatible with no other format) and that's also the reason we don't map it to HEVC.
  • As for profile 7, it is not easy to determine whether it is HEVC compatible in MediaCodecVideoRenderer#getDecoderInfos as it depends from one content to the other. As this profile is deprecated, we decided never to map it to HEVC for simplicity.

Things are therefore working as intended.

@moneytoo
Copy link
Contributor Author

moneytoo commented Jul 7, 2021

Thank you very much for your informative answer. Mapping profile 7 to HEVC works so it's really easy to enable if desired. Great!

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants