androidexoplayerandroid-tvexoplayer2.xgoogle-tv

Do I need to do something special to enable HDR on ExoPlayer on the Chromecast with Google TV?


I have a video player that uses ExoPlayer version androidx.media3:media3-exoplayer:1.0.0-beta03 on a Chromecast with Google TV.

When I play an HDR video using the Google Cast capabilities of the Chromecast with Google TV the video looks a lot better, a lot brighter than when I play the same video using ExoPlayer on the same Chromecast with Google TV.

Is there something I need to do to enable ExoPlayer to play that video correctly?

This is the ffprobe output for that video

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'Life Untouched 4K Demo.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2mp41
    creation_time   : 2017-06-05T00:13:25.000000Z
    encoder         : Lavf57.72.101
  Duration: 00:03:17.57, start: 0.000000, bitrate: 19088 kb/s
  Stream #0:0[0x1](eng): Video: hevc (Main 10) (hev1 / 0x31766568), yuv420p10le(tv, bt2020nc/bt2020/smpte2084), 3840x2160 [SAR 1:1 DAR 16:9], 18946 kb/s, 59.94 fps, 59.94 tbr, 90k tbn (default)
    Metadata:
      creation_time   : 2017-06-05T00:13:25.000000Z
      handler_name    : VideoHandler
      vendor_id       : [0][0][0][0]
  Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 125 kb/s (default)
    Metadata:
      creation_time   : 2017-06-05T00:13:25.000000Z
      handler_name    : SoundHandler
      vendor_id       : [0][0][0][0]

This is the video https://4kmedia.org/life-untouched-hdr-uhd-4k-demo/


Solution

  • I figured out why it looks darker, it is because I'm using app:surface_type="texture_view".

    More info about it: https://developer.android.com/reference/android/view/TextureView