79 #if YUV_FORMAT == YUV_FORMAT_420 80 const int y_pixel_stride = 1;
81 const int uv_pixel_stride = 1;
82 const int uv_x_sample_interval = 2;
83 const int uv_y_sample_interval = 2;
84 #elif YUV_FORMAT == YUV_FORMAT_422 85 const int y_pixel_stride = 2;
86 const int uv_pixel_stride = 4;
87 const int uv_x_sample_interval = 2;
88 const int uv_y_sample_interval = 1;
89 #elif YUV_FORMAT == YUV_FORMAT_NV12 90 const int y_pixel_stride = 1;
91 const int uv_pixel_stride = 2;
92 const int uv_x_sample_interval = 2;
93 const int uv_y_sample_interval = 2;
97 for(y=0; y<(
height-(uv_y_sample_interval-1)); y+=uv_y_sample_interval)
99 const uint8_t *y_ptr1=Y+y*Y_stride,
100 *y_ptr2=Y+(y+1)*Y_stride,
101 *u_ptr=U+(y/uv_y_sample_interval)*UV_stride,
102 *v_ptr=
V+(y/uv_y_sample_interval)*UV_stride;
105 *rgb_ptr2=
RGB+(y+1)*RGB_stride;
107 for(x=0; x<(
width-(uv_x_sample_interval-1)); x+=uv_x_sample_interval)
111 int32_t u_tmp = ((*u_ptr)-128);
112 int32_t v_tmp = ((*v_ptr)-128);
126 if (uv_y_sample_interval > 1) {
134 y_ptr1+=2*y_pixel_stride;
135 y_ptr2+=2*y_pixel_stride;
136 u_ptr+=2*uv_pixel_stride/uv_x_sample_interval;
137 v_ptr+=2*uv_pixel_stride/uv_x_sample_interval;
141 if (uv_x_sample_interval == 2 && x == (
width-1))
145 int32_t u_tmp = ((*u_ptr)-128);
146 int32_t v_tmp = ((*v_ptr)-128);
157 if (uv_y_sample_interval > 1) {
165 if (uv_y_sample_interval == 2 && y == (
height-1))
167 const uint8_t *y_ptr1=Y+y*Y_stride,
168 *u_ptr=U+(y/uv_y_sample_interval)*UV_stride,
169 *v_ptr=
V+(y/uv_y_sample_interval)*UV_stride;
173 for(x=0; x<(
width-(uv_x_sample_interval-1)); x+=uv_x_sample_interval)
177 int32_t u_tmp = ((*u_ptr)-128);
178 int32_t v_tmp = ((*v_ptr)-128);
192 y_ptr1+=2*y_pixel_stride;
193 u_ptr+=2*uv_pixel_stride/uv_x_sample_interval;
194 v_ptr+=2*uv_pixel_stride/uv_x_sample_interval;
198 if (uv_x_sample_interval == 2 && x == (
width-1))
202 int32_t u_tmp = ((*u_ptr)-128);
203 int32_t v_tmp = ((*v_ptr)-128);
GLint GLint GLint GLint GLint x
GLint GLint GLsizei width
static const YUV2RGBParam YUV2RGB[3]
GLint GLint GLint GLint GLint GLint y
GLint GLint GLsizei GLsizei height
#define PACK_PIXEL(rgb_ptr)