#include "effect_chain.h"
#include "image_format.h"
#include "input.h"
+#include "ycbcr.h"
namespace movit {
class ResourcePool;
-struct YCbCrFormat {
- // Which formula for Y' to use.
- YCbCrLumaCoefficients luma_coefficients;
-
- // If true, assume Y'CbCr coefficients are full-range, ie. go from 0 to 255
- // instead of the limited 220/225 steps in classic MPEG. For instance,
- // JPEG uses the Rec. 601 luma coefficients, but full range.
- bool full_range;
-
- // Sampling factors for chroma components. For no subsampling (4:4:4),
- // set both to 1.
- unsigned chroma_subsampling_x, chroma_subsampling_y;
-
- // Positioning of the chroma samples. MPEG-1 and JPEG is (0.5, 0.5);
- // MPEG-2 and newer typically are (0.0, 0.5).
- float cb_x_position, cb_y_position;
- float cr_x_position, cr_y_position;
-};
-
class YCbCrInput : public Input {
public:
YCbCrInput(const ImageFormat &image_format,
ImageFormat image_format;
YCbCrFormat ycbcr_format;
GLuint pbos[3], texture_num[3];
+ GLint uniform_tex_y, uniform_tex_cb, uniform_tex_cr;
unsigned width, height, widths[3], heights[3];
const unsigned char *pixel_data[3];