Handling HDR Media on Android Without Breaking It
summary
Android apps often misrender HDR media because six essential parameters (color space, transfer function like PQ/ST2084 or HLG, color range, HDR10 static metadata, HDR10+ dynamic metadata, and newer-spec flags) are dropped during edits, transcodes, resizing, or thumbnailing. The talk explains how to preserve those HDR parameters by copying them during transcoding, using existing libraries where possible (Glide, Media3/ExoPlayer), preferring Media3 Transformer for custom pipelines, and thoroughly testing resize/re-save workflows to avoid losing gainmaps and other HDR info.
AI-written summary · about
chapters (10)
- 0:00HDR media challenges
- 1:36What is HDR
- 8:50HDR video specs and transfer
- 16:38Ultra HDR photo specs
- 18:22HDR history on Android
- 24:05HDR breakage: 3 cases
- 25:30Case 1: Faded colors and missing params
- 30:55Case 2: Overexposure and tone mapping
- 35:51Case 3: Brightness loss and gain maps
- 39:07Summary and fixes
related talks
05mHDR 10-bit: Capture, playback, and sharing 10-bit video
13mWhat's new in Android media
12mApproach to HDR and Tonemap on Android
33mNext-gen video codecs and HDR formats in Android Multimedia
20mUnderstanding HDR
18mImproving your social experience quality with Android Camera
18mPresenting a high-quality media experience for all users
26mDelivering HDR
