// Y'CbCr output (see below for details).
void add_output(const ImageFormat &format, OutputAlphaFormat alpha_format);
- // Adds an YCbCr output. Note that you can only have one output.
- // Currently, only chunked packed output is supported, and only 4:4:4
- // (so chroma_subsampling_x and chroma_subsampling_y must both be 1).
+ // Adds an YCbCr output. Note that you can only have one Y'CbCr output.
+ // Currently, only 4:4:4 output is supported, so chroma_subsampling_x
+ // and chroma_subsampling_y must both be 1.
//
// If you have both RGBA and Y'CbCr output, the RGBA output will come
// in the last draw buffer. Also, <format> and <alpha_format> must be
const YCbCrFormat &ycbcr_format,
YCbCrOutputSplitting output_splitting = YCBCR_OUTPUT_INTERLEAVED);
+ // Change Y'CbCr output format. (This can be done also after finalize()).
+ // Note that you are not allowed to change subsampling parameters;
+ // however, you can change the color space parameters, ie.,
+ // luma_coefficients, full_range and num_levels.
+ void change_ycbcr_output_format(const YCbCrFormat &ycbcr_format);
+
// Set number of output bits, to scale the dither.
// 8 is the right value for most outputs.
// The default, 0, is a special value that means no dither.
std::vector<Node *> nodes;
std::map<Effect *, Node *> node_map;
Effect *dither_effect;
+ Node *ycbcr_conversion_effect_node;
std::vector<Input *> inputs; // Also contained in nodes.
std::vector<Phase *> phases;