Commit 5ea9c4de authored by Jim Paris's avatar Jim Paris Committed by Mauro Carvalho Chehab

V4L/DVB (9859): gspca - ov534: Fix frame size so we don't miss the last pixel.

The frame size is too small, so we lose the last YUYV pixel.
Fix the setup and remove the last_pixel hack.
Signed-off-by: default avatarJim Paris <jim@jtan.com>
Signed-off-by: default avatarJean-Francois Moine <moinejf@free.fr>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 47dfd21f
...@@ -197,9 +197,9 @@ static const __u8 ov534_reg_initdata[][2] = { ...@@ -197,9 +197,9 @@ static const __u8 ov534_reg_initdata[][2] = {
{ 0x1d, 0x40 }, { 0x1d, 0x40 },
{ 0x1d, 0x02 }, { 0x1d, 0x02 },
{ 0x1d, 0x00 }, { 0x1d, 0x00 },
{ 0x1d, 0x02 }, { 0x1d, 0x02 }, /* frame size 0x025800 * 4 = 614400 */
{ 0x1d, 0x57 }, { 0x1d, 0x58 }, /* frame size */
{ 0x1d, 0xff }, { 0x1d, 0x00 }, /* frame size */
{ 0x8d, 0x1c }, { 0x8d, 0x1c },
{ 0x8e, 0x80 }, { 0x8e, 0x80 },
...@@ -409,25 +409,15 @@ static void sd_stopN(struct gspca_dev *gspca_dev) ...@@ -409,25 +409,15 @@ static void sd_stopN(struct gspca_dev *gspca_dev)
static void sd_pkt_scan(struct gspca_dev *gspca_dev, struct gspca_frame *frame, static void sd_pkt_scan(struct gspca_dev *gspca_dev, struct gspca_frame *frame,
__u8 *data, int len) __u8 *data, int len)
{ {
/*
* The current camera setup doesn't stream the last pixel, so we set it
* to a dummy value
*/
__u8 last[4] = { 0, 0, 0, 0 };
int framesize = frame->v4l2_buf.length; int framesize = frame->v4l2_buf.length;
PDEBUG(D_PACK, ""); if (len == framesize) {
PDEBUG(D_PACK, "** packet len = %d, framesize = %d", len, framesize); frame = gspca_frame_add(gspca_dev, FIRST_PACKET, frame,
PDEBUG(D_PACK, "** frame->data_end - frame->data + len = %d", data, len);
frame->data_end - frame->data + len); frame = gspca_frame_add(gspca_dev, LAST_PACKET, frame, data, 0);
if (frame->data_end - frame->data + len == framesize - 4) {
PDEBUG(D_PACK, " end of frame!");
gspca_frame_add(gspca_dev, INTER_PACKET, frame, data, len);
frame = gspca_frame_add(gspca_dev, LAST_PACKET, frame, last, 4);
gspca_frame_add(gspca_dev, FIRST_PACKET, frame, data, 0);
} else } else
gspca_frame_add(gspca_dev, INTER_PACKET, frame, data, len); PDEBUG(D_PACK, "packet len = %d, framesize = %d", len,
framesize);
} }
/* sub-driver description */ /* sub-driver description */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment