- ycbcr_format.luma_coefficients = YCBCR_REC_709;
- ycbcr_format.full_range = false;
- ycbcr_format.num_levels = 256;
- ycbcr_format.chroma_subsampling_x = 2;
- ycbcr_format.chroma_subsampling_y = 1;
- ycbcr_format.cb_x_position = 0.0f; // H.264 -- _not_ JPEG, even though our input is MJPEG-encoded
- ycbcr_format.cb_y_position = 0.5f; // Irrelevant.
- ycbcr_format.cr_x_position = 0.0f;
- ycbcr_format.cr_y_position = 0.5f;
-
- // Planar Y'CbCr decoding chain.
- planar_chain.reset(new EffectChain(1280, 720, resource_pool));
- ycbcr_planar_input = (movit::YCbCrInput *)planar_chain->add_input(new YCbCrInput(inout_format, ycbcr_format, 1280, 720, YCBCR_INPUT_PLANAR));
- planar_chain->add_output(inout_format, OUTPUT_ALPHA_FORMAT_POSTMULTIPLIED);
- planar_chain->set_dither_bits(8);
- planar_chain->finalize();
-
- // Semiplanar Y'CbCr decoding chain (for images coming from VA-API).
- semiplanar_chain.reset(new EffectChain(1280, 720, resource_pool));
- ycbcr_semiplanar_input = (movit::YCbCrInput *)semiplanar_chain->add_input(new YCbCrInput(inout_format, ycbcr_format, 1280, 720, YCBCR_INPUT_SPLIT_Y_AND_CBCR));
- semiplanar_chain->add_output(inout_format, OUTPUT_ALPHA_FORMAT_POSTMULTIPLIED);
- semiplanar_chain->set_dither_bits(8);
- semiplanar_chain->finalize();
-