summaryrefslogtreecommitdiff
path: root/drivers/media/video/pwc/pwc-dec23.c
diff options
context:
space:
mode:
authorHans de Goede <hdegoede@redhat.com>2012-01-04 23:58:44 +0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2012-01-06 16:46:46 +0400
commit795e6eb3262d3b7247ce450835eea6df6571d103 (patch)
tree558c161d69a04a172f54c1edd38c44b2553bf10e /drivers/media/video/pwc/pwc-dec23.c
parenta08d2c727153dc6cea1d5d54a43fd7d69c1467c3 (diff)
downloadlinux-795e6eb3262d3b7247ce450835eea6df6571d103.tar.xz
[media] pwc: Remove software emulation of arbritary resolutions
The pwc driver claims to support any resolution between 160x120 and 640x480, but emulates this by simply drawing a black border around the image. Userspace can draw its own black border if it really wants one. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/pwc/pwc-dec23.c')
-rw-r--r--drivers/media/video/pwc/pwc-dec23.c29
1 files changed, 10 insertions, 19 deletions
diff --git a/drivers/media/video/pwc/pwc-dec23.c b/drivers/media/video/pwc/pwc-dec23.c
index e531f85460c1..2c6709112b2f 100644
--- a/drivers/media/video/pwc/pwc-dec23.c
+++ b/drivers/media/video/pwc/pwc-dec23.c
@@ -656,10 +656,6 @@ static void DecompressBand23(struct pwc_dec23_private *pdec,
*
* Uncompress a pwc23 buffer.
*
- * pwc.view: size of the image wanted
- * pwc.image: size of the image returned by the camera
- * pwc.offset: (x,y) to displayer image in the view
- *
* src: raw data
* dst: image output
*/
@@ -667,7 +663,7 @@ void pwc_dec23_decompress(const struct pwc_device *pwc,
const void *src,
void *dst)
{
- int bandlines_left, stride, bytes_per_block;
+ int bandlines_left, bytes_per_block;
struct pwc_dec23_private *pdec = pwc->decompress_data;
/* YUV420P image format */
@@ -678,28 +674,23 @@ void pwc_dec23_decompress(const struct pwc_device *pwc,
mutex_lock(&pdec->lock);
- bandlines_left = pwc->image.y / 4;
- bytes_per_block = pwc->view.x * 4;
- plane_size = pwc->view.x * pwc->view.y;
-
- /* offset in Y plane */
- stride = pwc->view.x * pwc->offset.y;
- pout_planar_y = dst + stride + pwc->offset.x;
+ bandlines_left = pwc->height / 4;
+ bytes_per_block = pwc->width * 4;
+ plane_size = pwc->height * pwc->width;
- /* offsets in U/V planes */
- stride = (pwc->view.x * pwc->offset.y) / 4 + pwc->offset.x / 2;
- pout_planar_u = dst + plane_size + stride;
- pout_planar_v = dst + plane_size + plane_size / 4 + stride;
+ pout_planar_y = dst;
+ pout_planar_u = dst + plane_size;
+ pout_planar_v = dst + plane_size + plane_size / 4;
while (bandlines_left--) {
DecompressBand23(pwc->decompress_data,
src,
pout_planar_y, pout_planar_u, pout_planar_v,
- pwc->image.x, pwc->view.x);
+ pwc->width, pwc->width);
src += pwc->vbandlength;
pout_planar_y += bytes_per_block;
- pout_planar_u += pwc->view.x;
- pout_planar_v += pwc->view.x;
+ pout_planar_u += pwc->width;
+ pout_planar_v += pwc->width;
}
mutex_unlock(&pdec->lock);
}