Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 137831
b: refs/heads/master
c: 01cbc21
h: refs/heads/master
i:
  137829: 4112078
  137827: 60af83b
  137823: 15742b2
v: v3
  • Loading branch information
Andy Walls authored and Mauro Carvalho Chehab committed Mar 30, 2009
1 parent e557a67 commit db11fa1
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 6 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: f37aa51190c4391005bb71c92cd976f811500105
refs/heads/master: 01cbc214cfa6e0dbfaea617d32d6d66e7f6608ff
24 changes: 19 additions & 5 deletions trunk/drivers/media/video/cx18/cx18-vbi.c
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,10 @@ void cx18_process_vbi_data(struct cx18 *cx, struct cx18_buffer *buf,
if (streamtype != CX18_ENC_STREAM_TYPE_VBI)
return;

/*
* The CX23418 sends us data that is 32 bit LE swapped, but we want
* the raw VBI bytes in the order they were in the raster line
*/
cx18_buf_swap(buf);

/*
Expand All @@ -190,17 +194,27 @@ void cx18_process_vbi_data(struct cx18 *cx, struct cx18_buffer *buf,
if (cx18_raw_vbi(cx)) {
u8 type;

/* Skip 12 bytes of header that gets stuffed in */
/*
* We've set up to get a field's worth of VBI data at a time.
* Skip 12 bytes of header prefixing the first field or the
* last 12 bytes in the last VBI line from the first field that
* prefixes the second field.
*/
size -= 12;
memcpy(p, &buf->buf[12], size);
type = p[3];

/* Extrapolate the last 12 bytes of the field's last line */
memset(&p[size], (int) p[size - 1], 12);

size = buf->bytesused = compress_raw_buf(cx, p, size);

/* second field of the frame? */
if (type == raw_vbi_sav_rp[1]) {
/* Dirty hack needed for backwards
compatibility of old VBI software. */
/*
* Hack needed for compatibility with old VBI software.
* Write the frame # at the end of the last line of the
* second field
*/
p += size - 4;
memcpy(p, &cx->vbi.frame, 4);
cx->vbi.frame++;
Expand All @@ -210,7 +224,7 @@ void cx18_process_vbi_data(struct cx18 *cx, struct cx18_buffer *buf,

/* Sliced VBI data with data insertion */

pts = (q[0] == 0x3fffffff) ? q[2] : 0;
pts = (be32_to_cpu(q[0] == 0x3fffffff)) ? be32_to_cpu(q[2]) : 0;

/* first field */
/* compress_sliced_buf() will skip the 12 bytes of header */
Expand Down

0 comments on commit db11fa1

Please sign in to comment.