Skip to content

Commit

Permalink
[media] em28xx: fix video data start position calculation in em28xx_u…
Browse files Browse the repository at this point in the history
…rb_data_copy_vbi()

The header check/removal code at the end of function em28xx_urb_data_copy_vbi()
is obsolete, because this is already done earlier in this function.
In fact it is incomplete (doesn't check for vbi header) and causes trouble
when the first data bytes are the same as header bytes (which is fortunately
very unlikely).

Signed-off-by: Frank Schäfer <fschaefer.oss@googlemail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
  • Loading branch information
Frank Schaefer authored and Mauro Carvalho Chehab committed Dec 22, 2012
1 parent 454fe92 commit b77e0c0
Showing 1 changed file with 2 additions and 18 deletions.
20 changes: 2 additions & 18 deletions drivers/media/usb/em28xx/em28xx-video.c
Original file line number Diff line number Diff line change
Expand Up @@ -678,24 +678,8 @@ static inline int em28xx_urb_data_copy_vbi(struct em28xx *dev, struct urb *urb)
dma_q->pos = 0;
}

if (buf != NULL && dev->capture_type == 2) {
if (len >= 4 && p[0] == 0x88 && p[1] == 0x88 &&
p[2] == 0x88 && p[3] == 0x88) {
p += 4;
len -= 4;
}
if (len >= 4 && p[0] == 0x22 && p[1] == 0x5a) {
em28xx_isocdbg("Video frame %d, len=%i, %s\n",
p[2], len, (p[2] & 1) ?
"odd" : "even");
p += 4;
len -= 4;
}

if (len > 0)
em28xx_copy_video(dev, dma_q, buf, p, outp,
len);
}
if (buf != NULL && dev->capture_type == 2 && len > 0)
em28xx_copy_video(dev, dma_q, buf, p, outp, len);
}
return rc;
}
Expand Down

0 comments on commit b77e0c0

Please sign in to comment.