Output Clamping

This is a unique parameter that allows the user to control how the output RGB values of your plug-in are clamped during a high-precision render1). The two options available through this parameter are:

  • Full range: when this option is selected, output color values are clamped to the widest possible range allowed by the current host.
  • Legal range: when this option is selected, output color values are always clamped between 0 and 1.

Remember that output clamping is not required or enabled when the host is requesting an 8-bit integer render, since output values are naturally clamped between 0 and 255 as part of the rendering process.

Similarly, output clamping is not enabled during a high-precision render if your plug-in does not support 16-bit half-float or 32-bit float bit depth in the first place, as specified under the Renderer section.

Clamping to Full Range in Final Cut Pro X and Motion 5

In Final Cut Pro X and Motion 5, clamping to the full range allows the plug-in to output color values with no pre-determined boundary except that imposed by the 32-bit floating point specification. The host takes care of clamping values to the most appropriate range.

Output Clamping in Final Cut Pro X

Legal range

Full range

Clamping to Full Range in Final Cut Pro 7 and Premiere Pro

In Final Cut Pro 7 and Premiere Pro, clamping to the full range allows the plug-in to output color values between 0 and “super-white”, which is the highest possible brightness that can be represented in Y'CbCr in these broadcast-oriented hosts.

Output Clamping in Premiere Pro

Legal range

Full range

Output Clamping in Other Hosts

  • After Effects supports 32-bit floating point rendering but FxFactory plug-ins running in this host do not. High-precision renders may occur using a 16-bit integer format that is specific to After Effects, but the output is always clamped to legal range during these operations.
  • Final Cut Pro 6 behaves identically to Final Cut Pro 7, and it is not expressly mentioned above because recent versions of FxFactory no longer support it.
  • Final Cut Express 4 only supports 8-bit integer rendering, so output clamping is not required and thus this parameter is never displayed.
  • Motion 3 and 4 give limited benefits for allowing out-of-range values during a high-precision render, thus the output clamping parameter is never displayed and the output is always clamped to legal range.
1)
A high-precision render happens when your plug-in supports 16-bit half-float or 32-bit float bit depth, and the host is requesting output at one of those two bit depths.