Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 241867
b: refs/heads/master
c: 0f77f40
h: refs/heads/master
i:
  241865: fccc852
  241863: f9b73ef
v: v3
  • Loading branch information
Jean-François Moine authored and Mauro Carvalho Chehab committed Mar 21, 2011
1 parent 5791acc commit cd1039b
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 19 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: d39155d91d034e2b2c9154892e29c8a8eb193b7f
refs/heads/master: 0f77f40c300c18c15e7aeb2f9eee510aa96d58fd
44 changes: 26 additions & 18 deletions trunk/drivers/media/video/gspca/sonixj.c
Original file line number Diff line number Diff line change
Expand Up @@ -2757,14 +2757,37 @@ static void do_autogain(struct gspca_dev *gspca_dev)
}
}

/* set the average luminosity from an isoc marker */
static void set_lum(struct sd *sd,
u8 *data)
{
int avg_lum;

/* w0 w1 w2
* w3 w4 w5
* w6 w7 w8
*/
avg_lum = (data[27] << 8) + data[28] /* w3 */

+ (data[31] << 8) + data[32] /* w5 */

+ (data[23] << 8) + data[24] /* w1 */

+ (data[35] << 8) + data[36] /* w7 */

+ (data[29] << 10) + (data[30] << 2); /* w4 * 4 */
avg_lum >>= 10;
atomic_set(&sd->avg_lum, avg_lum);
}

/* scan the URB packets */
/* This function is run at interrupt level. */
static void sd_pkt_scan(struct gspca_dev *gspca_dev,
u8 *data, /* isoc packet */
int len) /* iso packet length */
{
struct sd *sd = (struct sd *) gspca_dev;
int sof, avg_lum;
int sof;

/* the image ends on a 64 bytes block starting with
* ff d9 ff ff 00 c4 c4 96
Expand Down Expand Up @@ -2795,23 +2818,8 @@ static void sd_pkt_scan(struct gspca_dev *gspca_dev,
/* end of image found - remove the trailing data */
gspca_dev->image_len = sof + 2;
gspca_frame_add(gspca_dev, LAST_PACKET, NULL, 0);
if (sd->ag_cnt < 0)
return;
/* w1 w2 w3 */
/* w4 w5 w6 */
/* w7 w8 */
/* w4 */
avg_lum = ((data[sof + 29] << 8) | data[sof + 30]) >> 6;
/* w6 */
avg_lum += ((data[sof + 33] << 8) | data[sof + 34]) >> 6;
/* w2 */
avg_lum += ((data[sof + 25] << 8) | data[sof + 26]) >> 6;
/* w8 */
avg_lum += ((data[sof + 37] << 8) | data[sof + 38]) >> 6;
/* w5 */
avg_lum += ((data[sof + 31] << 8) | data[sof + 32]) >> 4;
avg_lum >>= 4;
atomic_set(&sd->avg_lum, avg_lum);
if (sd->ag_cnt >= 0)
set_lum(sd, data + sof + 2);
}

static int sd_set_jcomp(struct gspca_dev *gspca_dev,
Expand Down

0 comments on commit cd1039b

Please sign in to comment.