Thread (22 messages) 22 messages, 5 authors, 2011-08-31

Re: [PATCH] media: Add support for arbitrary resolution for the ov5642 camera driver

From: Guennadi Liakhovetski <hidden>
Date: 2011-08-29 12:18:52

Hi Laurent

On Sun, 28 Aug 2011, Laurent Pinchart wrote:

[snip]
quoted
@@ -593,8 +639,7 @@ static struct ov5642 *to_ov5642(const struct i2c_client
*client) }

 /* Find a data format by a pixel code in an array */
-static const struct ov5642_datafmt
-			*ov5642_find_datafmt(enum v4l2_mbus_pixelcode code)
+static const struct ov5642_datafmt *ov5642_find_datafmt(enum
v4l2_mbus_pixelcode code) {
checkpatch.pl won't be happy.
Since the lift of the hard 80-char limit, I often find lines of 86 characters 
more acceptable than their split versions.

[snip]
quoted
@@ -774,17 +839,27 @@ static int ov5642_s_fmt(struct v4l2_subdev *sd,

 	ov5642_try_fmt(sd, mf);

+	priv->out_size.width		= mf->width;
+	priv->out_size.height		= mf->height;
It looks like to me (but I may be wrong) that you achieve different 
resolutions using cropping, not scaling. If that's correct you should 
implement s_crop support and refuse changing the resolution through s_fmt.
As the patch explains (I think) on several occasions, currently only the 
1:1 scale is supported, and it was our deliberate choice to implement this 
using the scaling API
quoted
@@ -793,10 +868,12 @@ static int ov5642_g_fmt(struct v4l2_subdev *sd,

 	mf->code	= fmt->code;
 	mf->colorspace	= fmt->colorspace;
-	mf->width	= OV5642_WIDTH;
-	mf->height	= OV5642_HEIGHT;
+	mf->width	= priv->out_size.width;
+	mf->height	= priv->out_size.height;
 	mf->field	= V4L2_FIELD_NONE;

+	dev_dbg(sd->v4l2_dev->dev, "%s return width: %u heigth: %u\n", __func__,
+			mf->width, mf->height);
Isn't that a bit too verbose ? Printing the format in a debug message in the 
s_fmt handler is useful, but maybe doing it in g_fmt is a bit too much.
This is a dev_dbg()... Personally, as long as they don't clutter the source 
code needlessly, compile without warnings and have their typos fixed (;-)) 
I don't have problems with an odd instance, even if I don't really perceive 
its output as particularly useful:-)

[snip]
quoted
+	dev_dbg(sd->v4l2_dev->dev, "%s crop width: %u heigth: %u\n", __func__,
+			rect->width, rect->height);
Same comment as for g_fmt.
same reply:-)

Thanks
Guennadi
---
Guennadi Liakhovetski, Ph.D.
Freelance Open-Source Software Developer
http://www.open-technology.de/
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help