Skip to content

2.2.0 - dovi_rpu_set_polynomial_mapping

Latest

Choose a tag to compare

@superuser404notfound superuser404notfound released this 08 Nov 12:43

Adds one entry point to the C API. Same dolby_vision 3.4.0 (libdovi-3.4.0), same seven slices, nothing upstream changed or removed.

Added

  • dovi_rpu_set_polynomial_mapping(rpu, component, pivots, num_pivots, coefs) replaces one component's reshaping curve with a piecewise second-order polynomial: 2 to 9 absolute pivots, strictly increasing, and c0, c1, c2 per piece in the normalised domain (out = c0 + c1*x + c2*x^2, input and output in [0, 1]). Each coefficient is split into its integer part and a coefficient_log2_denom fraction, and the RPU is marked modified so its CRC is rewritten on the next write. It accepts profile 8 RPUs with fixed-point coefficients only and validates everything before it touches the RPU, so a refused call (-1, reason in dovi_rpu_get_error) leaves the mapping as it was.

How it is built

The addition lives in patches/0001-capi-set-polynomial-mapping.patch and build.sh applies it on top of the pinned dovi_tool tag; a checkout that already carries a patch is left alone, one that carries something else fails the build. BUILD-INFO.txt records the build.

Note for consumers

Nothing to change beyond the pin. AetherEngine uses the new call for its Dolby Vision Profile 7 FEL curve fold (DolbyVisionFelCurves trait).

Full diff: 2.1.0...2.2.0