Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 461
b: refs/heads/master
c: 2c47e7f
h: refs/heads/master
i:
  459: ae99009
v: v3
  • Loading branch information
Adrian Bunk authored and Greg KH committed Apr 22, 2005
1 parent d7bd5c5 commit 19f2f18
Show file tree
Hide file tree
Showing 4 changed files with 42 additions and 46 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: 7107627b04b46bce8212e6a6811add5eb8bcb476
refs/heads/master: 2c47e7f37830cc83e7c77f0d5b7d4ac15105475b
78 changes: 39 additions & 39 deletions trunk/drivers/usb/media/pwc/pwc-ctrl.c
Original file line number Diff line number Diff line change
Expand Up @@ -418,6 +418,44 @@ static inline int set_video_mode_Kiara(struct pwc_device *pdev, int size, int fr



static void pwc_set_image_buffer_size(struct pwc_device *pdev)
{
int i, factor = 0, filler = 0;

/* for PALETTE_YUV420P */
switch(pdev->vpalette)
{
case VIDEO_PALETTE_YUV420P:
factor = 6;
filler = 128;
break;
case VIDEO_PALETTE_RAW:
factor = 6; /* can be uncompressed YUV420P */
filler = 0;
break;
}

/* Set sizes in bytes */
pdev->image.size = pdev->image.x * pdev->image.y * factor / 4;
pdev->view.size = pdev->view.x * pdev->view.y * factor / 4;

/* Align offset, or you'll get some very weird results in
YUV420 mode... x must be multiple of 4 (to get the Y's in
place), and y even (or you'll mixup U & V). This is less of a
problem for YUV420P.
*/
pdev->offset.x = ((pdev->view.x - pdev->image.x) / 2) & 0xFFFC;
pdev->offset.y = ((pdev->view.y - pdev->image.y) / 2) & 0xFFFE;

/* Fill buffers with gray or black */
for (i = 0; i < MAX_IMAGES; i++) {
if (pdev->image_ptr[i] != NULL)
memset(pdev->image_ptr[i], filler, pdev->view.size);
}
}



/**
@pdev: device structure
@width: viewport width
Expand Down Expand Up @@ -475,44 +513,6 @@ int pwc_set_video_mode(struct pwc_device *pdev, int width, int height, int frame
}


void pwc_set_image_buffer_size(struct pwc_device *pdev)
{
int i, factor = 0, filler = 0;

/* for PALETTE_YUV420P */
switch(pdev->vpalette)
{
case VIDEO_PALETTE_YUV420P:
factor = 6;
filler = 128;
break;
case VIDEO_PALETTE_RAW:
factor = 6; /* can be uncompressed YUV420P */
filler = 0;
break;
}

/* Set sizes in bytes */
pdev->image.size = pdev->image.x * pdev->image.y * factor / 4;
pdev->view.size = pdev->view.x * pdev->view.y * factor / 4;

/* Align offset, or you'll get some very weird results in
YUV420 mode... x must be multiple of 4 (to get the Y's in
place), and y even (or you'll mixup U & V). This is less of a
problem for YUV420P.
*/
pdev->offset.x = ((pdev->view.x - pdev->image.x) / 2) & 0xFFFC;
pdev->offset.y = ((pdev->view.y - pdev->image.y) / 2) & 0xFFFE;

/* Fill buffers with gray or black */
for (i = 0; i < MAX_IMAGES; i++) {
if (pdev->image_ptr[i] != NULL)
memset(pdev->image_ptr[i], filler, pdev->view.size);
}
}



/* BRIGHTNESS */

int pwc_get_brightness(struct pwc_device *pdev)
Expand Down Expand Up @@ -949,7 +949,7 @@ int pwc_set_leds(struct pwc_device *pdev, int on_value, int off_value)
return SendControlMsg(SET_STATUS_CTL, LED_FORMATTER, 2);
}

int pwc_get_leds(struct pwc_device *pdev, int *on_value, int *off_value)
static int pwc_get_leds(struct pwc_device *pdev, int *on_value, int *off_value)
{
unsigned char buf[2];
int ret;
Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/usb/media/pwc/pwc-if.c
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ static int default_mbufs = 2; /* Default number of mmap() buffers */
int pwc_trace = TRACE_MODULE | TRACE_FLOW | TRACE_PWCX;
static int power_save = 0;
static int led_on = 100, led_off = 0; /* defaults to LED that is on while in use */
int pwc_preferred_compression = 2; /* 0..3 = uncompressed..high */
static int pwc_preferred_compression = 2; /* 0..3 = uncompressed..high */
static struct {
int type;
char serial_number[30];
Expand Down
6 changes: 1 addition & 5 deletions trunk/drivers/usb/media/pwc/pwc.h
Original file line number Diff line number Diff line change
Expand Up @@ -226,9 +226,8 @@ struct pwc_device
extern "C" {
#endif

/* Global variables */
/* Global variable */
extern int pwc_trace;
extern int pwc_preferred_compression;

/** functions in pwc-if.c */
int pwc_try_video_mode(struct pwc_device *pdev, int width, int height, int new_fps, int new_compression, int new_snapshot);
Expand All @@ -243,8 +242,6 @@ void pwc_construct(struct pwc_device *pdev);
/** Functions in pwc-ctrl.c */
/* Request a certain video mode. Returns < 0 if not possible */
extern int pwc_set_video_mode(struct pwc_device *pdev, int width, int height, int frames, int compression, int snapshot);
/* Calculate the number of bytes per image (not frame) */
extern void pwc_set_image_buffer_size(struct pwc_device *pdev);

/* Various controls; should be obvious. Value 0..65535, or < 0 on error */
extern int pwc_get_brightness(struct pwc_device *pdev);
Expand All @@ -256,7 +253,6 @@ extern int pwc_set_gamma(struct pwc_device *pdev, int value);
extern int pwc_get_saturation(struct pwc_device *pdev);
extern int pwc_set_saturation(struct pwc_device *pdev, int value);
extern int pwc_set_leds(struct pwc_device *pdev, int on_value, int off_value);
extern int pwc_get_leds(struct pwc_device *pdev, int *on_value, int *off_value);
extern int pwc_get_cmos_sensor(struct pwc_device *pdev, int *sensor);

/* Power down or up the camera; not supported by all models */
Expand Down

0 comments on commit 19f2f18

Please sign in to comment.