118{
123 }
127 } else {
130 }
132
135 unsigned char *in_data = (
unsigned char *) in->
tiles[0].
data;
136 unsigned char *out_data = (
unsigned char *) out->
tiles[0].
data;
137
138 for (
unsigned int i = 0; i < in->
tiles[0].
data_len; i += 4) {
139 double a[3];
140 double b[3];
141 a[1] = b[1] = *in_data++;
142 a[0] = *in_data++;
143 a[2] = b[2] = *in_data++;
144 b[0] = *in_data++;
169 }
171 unsigned char *in_data = (
unsigned char *) in->
tiles[0].
data;
172 unsigned char *out_data = (
unsigned char *) out->
tiles[0].
data;
173
174 for (
unsigned int i = 0; i < in->
tiles[0].
data_len; i += 3) {
175 double a[3];
176 a[0] = *in_data++;
177 a[1] = *in_data++;
178 a[2] = *in_data++;
191 }
193 uint16_t *in_data = (uint16_t *)(
void *) in->
tiles[0].
data;
194 uint16_t *out_data = (uint16_t *)(
void *) out->
tiles[0].
data;
195
196 for (
unsigned int i = 0; i < in->
tiles[0].
data_len; i += 6) {
197 double a[3];
198 a[0] = *in_data++;
199 a[1] = *in_data++;
200 a[2] = *in_data++;
213 }
214 } else {
218 return NULL;
219 }
220 } else {
222 unsigned char *in_data = (
unsigned char *) in->
tiles[0].
data;
223 unsigned char *out_data = (
unsigned char *) out->
tiles[0].
data;
224
225 for (
unsigned int i = 0; i < in->
tiles[0].
data_len; i += 4) {
226 double a[3];
227 double b[3];
228 a[1] = b[1] = *in_data++;
229 a[0] = *in_data++;
230 a[2] = b[2] = *in_data++;
231 b[0] = *in_data++;
250 }
252 unsigned char *in_data = (
unsigned char *) in->
tiles[0].
data;
253 unsigned char *out_data = (
unsigned char *) out->
tiles[0].
data;
254
255 for (
unsigned int i = 0; i < in->
tiles[0].
data_len; i += 3) {
256 double a[3];
257 a[0] = *in_data++;
258 a[1] = *in_data++;
259 a[2] = *in_data++;
269 }
271 uint16_t *in_data = (uint16_t *)(
void *) in->
tiles[0].
data;
272 uint16_t *out_data = (uint16_t *)(
void *) out->
tiles[0].
data;
273
274 for (
unsigned int i = 0; i < in->
tiles[0].
data_len; i += 6) {
275 double a[3];
276 a[0] = *in_data++;
277 a[1] = *in_data++;
278 a[2] = *in_data++;
288 }
289 } else {
293 return NULL;
294 }
295 }
296
298
299 return out;
300}
void vf_free(struct video_frame *buf)
Frees video_frame structure.
struct video_desc video_desc_from_frame(const struct video_frame *frame)
Returns struct video_desc from video frame.
void vf_data_deleter(struct video_frame *buf)
struct video_frame * vf_alloc_desc(struct video_desc desc)
Allocates video frame accordig given desc.
void log_msg(int level, const char *format,...)
#define LOG_LEVEL_ERROR
general errors
#define CLAMP(x, low, high)
double transform_matrix[9]
void * vo_pp_out_buffer
buffer to write to if we use vo_pp wrapper (otherwise unused)
char * data
Raw tile data. Pointer must be at least 4B aligned.
unsigned int data_len
length of the data
void(* data_deleter)(struct video_frame *)
void(* dispose)(struct video_frame *)
Struct video_frame represents a video frame and contains video description.
struct tile tiles[FLEXIBLE_ARRAY_MEMBER]
struct video_frame_callbacks callbacks
@ RGB
RGB 8-bit (packed into 24-bit word)
@ UYVY
YCbCr 422 8-bit - Cb Y0 Cr Y1.
@ RG48
16-bit RGB little-endian (RlRhGl...)
#define VIDEO_FRAME_DISPOSE(frame)