Lines Matching refs:cx
39 static void copy_vbi_data(struct cx18 *cx, int lines, u32 pts_stamp)
59 int idx = cx->vbi.frame % CX18_VBI_FRAMES;
60 u8 *dst = &cx->vbi.sliced_mpeg_data[idx][0];
63 struct v4l2_sliced_vbi_data *sdata = cx->vbi.sliced_data + i;
103 cx->vbi.sliced_mpeg_size[idx] = sd + size;
109 static u32 compress_raw_buf(struct cx18 *cx, u8 *buf, u32 size, u32 hdr_size)
112 u32 lines = cx->vbi.count * 2;
142 static u32 compress_sliced_buf(struct cx18 *cx, u8 *buf, u32 size,
148 u32 line_size = cx->is_60hz ? vbi_hblank_samples_60Hz
177 v4l2_subdev_call(cx->sd_av, vbi, decode_vbi_line, &vbi);
179 cx->vbi.sliced_data[line].id = vbi.type;
180 cx->vbi.sliced_data[line].field = vbi.is_second_field;
181 cx->vbi.sliced_data[line].line = vbi.line;
182 memcpy(cx->vbi.sliced_data[line].data, vbi.p, 42);
189 static void _cx18_process_vbi_data(struct cx18 *cx, struct cx18_buffer *buf)
214 if (cx18_raw_vbi(cx)) {
217 compress_raw_buf(cx, p, size, sizeof(struct vbi_data_hdr));
224 memcpy(p, &cx->vbi.frame, 4);
225 cx->vbi.frame++;
234 lines = compress_sliced_buf(cx, p, size, sizeof(struct vbi_data_hdr));
238 cx->vbi.sliced_data[0].id = 0;
239 cx->vbi.sliced_data[0].line = 0;
240 cx->vbi.sliced_data[0].field = 0;
243 buf->bytesused = size = lines * sizeof(cx->vbi.sliced_data[0]);
244 memcpy(p, &cx->vbi.sliced_data[0], size);
246 if (cx->vbi.insert_mpeg)
247 copy_vbi_data(cx, lines, pts);
248 cx->vbi.frame++;
251 void cx18_process_vbi_data(struct cx18 *cx, struct cx18_mdl *mdl,
274 _cx18_process_vbi_data(cx, buf);