Hi Sakari, On 12/10/2011 11:44 AM, Sakari Ailus wrote: > On Wed, Dec 07, 2011 at 12:09:09PM +0100, Sylwester Nawrocki wrote: >> On 12/06/2011 05:27 PM, Sylwester Nawrocki wrote: >>>>> + >>>>> <entry><constant>V4L2_METERING_MODE_CENTER_WEIGHTED</constant> </entr >>>>> y> + <entry>Average the light information coming from the entire scene >>>>> +giving priority to the center of the metered area.</entry> >>>>> + </row> >>>>> + <row> >>>>> + <entry><constant>V4L2_METERING_MODE_SPOT</constant> </entry> >>>>> + <entry>Measure only very small area at the cent-re of the >>>>> scene.</entry> + </row> >>>>> + </tbody> >>>> >>>> For the last two cases, would it also make sense to specify the center of the >>>> weighted area and the spot location ? >>> >>> Yes, that's quite basic requirement as well.. A means to determine the >>> location would be also needed for some auto focus algorithms. >>> >>> Additionally for V4L2_METERING_MODE_CENTER_WEIGHTED it's also needed to >>> specify the size of the area (width/height). >>> >>> What do you think about defining new control for passing pixel position, >>> i.e. modifying struct v4l2_ext_control to something like: >>> >>> struct v4l2_ext_control { >>> __u32 id; >>> __u32 size; >>> __u32 reserved2[1]; >>> union { >>> __s32 value; >>> __s64 value64; >>> struct v4l2_point position; >>> char *string; >>> }; >>> } __attribute__ ((packed)); >>> >>> where: >>> >>> struct v4l2_point { >>> __s32 x; >>> __s32 y; >>> }; >> >> Hmm, that won't work since there is no way to handle the min/max/step for >> more than one value. Probably the selection API could be used for specifying >> the metering rectangle, or just separate controls for x, y, width, height. >> Since we need to specify only locations for some controls and a rectangle for >> others, probably separate controls would be more suitable. > > I prefer the use of the selection API over controls. Also consider you may > have multiple areas for metering. Also the areas may well be different for > focus, white balance and exxposure --- they often actually are. Yes, AFAIR Laurent expressed similar opinion on that [1]. I talked to Tomasz and Marek about configuring of the metering areas and we came to conclusion that we could designate a group of targets for exposure, auto-focus, etc. Define a base and target pool size so it is possible to define multiple rectangles. And single point (pixel) would be described by struct v4l2_rect with width=1, height=1. Then we would probably need to be able to enumerate the targets somehow. [1] http://www.spinics.net/lists/linux-media/msg41215.html -- Thanks, Sylwester -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html