1 #ifndef _MOVIT_YCBCR_CONVERSION_EFFECT_H
2 #define _MOVIT_YCBCR_CONVERSION_EFFECT_H 1
4 // Converts from R'G'B' to Y'CbCr; that is, more or less the opposite of YCbCrInput,
5 // except that it keeps the data as 4:4:4 chunked Y'CbCr; you'll need to subsample
6 // and/or convert to planar somehow else.
16 class YCbCrConversionEffect : public Effect {
18 // Should not be instantiated by end users;
19 // call EffectChain::add_ycbcr_output() instead.
20 YCbCrConversionEffect(const YCbCrFormat &ycbcr_format);
21 friend class EffectChain;
24 virtual std::string effect_type_id() const { return "YCbCrConversionEffect"; }
25 std::string output_fragment_shader();
26 virtual AlphaHandling alpha_handling() const { return DONT_CARE_ALPHA_TYPE; }
27 virtual bool one_to_one_sampling() const { return true; }
30 YCbCrFormat ycbcr_format;
35 #endif // !defined(_MOVIT_YCBCR_CONVERSION_EFFECT_H)