Boris, that patch will break contrast and brightness due to the fact the maximum range of both controls is 255, after shifting their values right by 8 you will always have a value of 0.
2009/3/14 Boris Borisov <[email protected]>: > Check this patch. > Brian Johnson wrote: >> yes the way saturation is now it does not work correctly. does anyone >> have an issue with reverting the patch that added saturation support >> in there since its right now broken? >> >> On Sat, Mar 14, 2009 at 2:43 PM, Stefan Krastanov >> <[email protected]> wrote: >> >>> The new version of libv4l is working (dmesg reports yuv420) but there is >>> another problem, this time with saturation. >>> When I change sat to any value <=254 the image goes grey. When I set it to >>> 255 it's to saturated. When I reset Brightens or Contrast it gets normal. >>> When I reset Saturation it gets grey again. Is this to be expected with my >>> chip 0C45:6270 MT9V011? >>> Screenshoots are attached. >>> >>> Regards >>> Stefan >>> >>> 2009/3/14 Stefan Krastanov <[email protected]> >>> >>>> For me jpeg is working but the quality of the picture is very low. I'm >>>> installing new libv4l now. >>>> >>>> 2009/3/14 Boris Borisov <[email protected]> >>>> >>>>> my version of libV4l is: >>>>> *  media-libs/libv4l >>>>>    Latest version available: 0.5.3 >>>>>    Latest version installed: 0.5.3 >>>>> with jpeg format brightest and contrast also not working >>>>> I test with ekiga >>>>> >>>>> >>>>> Brian Johnson wrote: >>>>> >>>>>> The brightness works on the older version since that comes before we >>>>>> got proper format switching working and it was using one of the hard >>>>>> coded bridge formats. anyways brightness/contrast do not work ewith >>>>>> raw bayer format because the bridge uses its color matrix to control >>>>>> those, the color matrix is what the bridge uses to convert the raw rgb >>>>>> values to yuv, and since the bridge passing through the raw bayer >>>>>> pattern as received from the sensor without converting to a yuv format >>>>>> brightness and contrast will not work with bayer format. >>>>>> >>>>>> There are two wys to get this working right first if you insmod the >>>>>> module with the jpeg=1 parameter >>>>>> (insmod ./sn9c20x.ko jpeg=1) libv4l should choose to use the jpeg >>>>>> format instead of bayer or make sure you are using version 0.5.8 or >>>>>> greater of libv4l whcih supports the bridges custom yuv format and >>>>>> will choose that over bayer >>>>>> >>>>>> 2009/3/14 Boris Borisov <[email protected]>: >>>>>> >>>>>> >>>>>>> Because I write a part of old driver, special decoder for 6270 >>>>>>> cameras. >>>>>>> On new releases this is decoder is not included. In this case I use my >>>>>>> old copy of repository May 2008. >>>>>>> Because my implementations is using this functions (image processing) >>>>>>> access via sys-fs tuning picture (normalization) is very important . >>>>>>> New release is used for decoder v4l2convert but that is no very clear >>>>>>> solution for my situation because this is library some time is >>>>>>> generating core dump and stop production line (very often if is using >>>>>>> with V4L1). Also converter is get more resources CPU and memory. On my >>>>>>> visio systems based on Beagleboard the resources is very important for >>>>>>> robotic speed. >>>>>>> I post this issue because I can't solve for 20 minutes and not follow >>>>>>> from long time new commitments. >>>>>>> About git try with qgit or qgit4 graphics user interface program and >>>>>>> save the time for understanding git. Yes is possible to get old >>>>>>> revision. >>>>>>> >>>>>>> мЕЛ ДЕО >>>>>>> Bobby >>>>>>> >>>>>>> Stefan Krastanov wrote: >>>>>>> >>>>>>> >>>>>>>> Hello, >>>>>>>> >>>>>>>> On љ0C45:6270 with MT9V011 it's also not working(checked with >>>>>>>> v4l2ucp). I have reported it, but failed to give details - I was more >>>>>>>> interested in another problem. >>>>>>>> >>>>>>>> I have some time so I can check in exactly which version the support >>>>>>>> regresses but I will need at least some initial time interval in >>>>>>>> which >>>>>>>> to begin the search. And also, I'll be happy if you can tell me how >>>>>>>> to >>>>>>>> row back to old versions using git (based on date if it's possible) - >>>>>>>> if not I'll dig in the man page ;) >>>>>>>> >>>>>>>> Best Regards >>>>>>>> Stefan Krastanov >>>>>>>> >>>>>>>> 2009/3/14 Boris Borisov <[email protected] <mailto:[email protected]>> >>>>>>>> >>>>>>>> >>>>>>>> љ љ Hello, >>>>>>>> љ љ Can you check the brightness and contrast functions, because for >>>>>>>> љ љ me this >>>>>>>> љ љ functions is broken. >>>>>>>> љ љ Really i call sn9c20x_set_contrast with different values of >>>>>>>> brightness >>>>>>>> љ љ and contrast via sys-fs and V4l functions (ekiga) but brightness >>>>>>>> and >>>>>>>> љ љ contrast is not changed. >>>>>>>> љ љ On very old version (who I use) this functions is working. >>>>>>>> >>>>>>>> љ љ Best regards >>>>>>>> љ љ Bobby >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>> >>>>> >>>>> >>> >> >> > >> >> > > > > > > diff --git a/sn9c20x-bridge.c b/sn9c20x-bridge.c > index bb0f535..6453c48 100644 > --- a/sn9c20x-bridge.c > +++ b/sn9c20x-bridge.c > @@ -504,8 +504,8 @@ int sn9c20x_set_contrast(struct usb_sn9c20x *dev) > __u8 brightness_contrast[21] = {0x16, 0x0, 0x2b, 0x0, 0x8, 0x0, 0xf6, > 0x0f, > 0xd2, 0x0f, 0x38, 0x0, 0x34, 0x0, 0xcf, 0x0f, > 0xfd, 0x0f, 0x0, 0x0, 0x0}; > - __u8 contrast_val = (dev->vsettings.contrast) * 0x25 / 0x100; > - __u8 brightness_val = dev->vsettings.brightness; > + __u8 contrast_val = (dev->vsettings.contrast >> 8) * 0x25 / 0x100; > + __u8 brightness_val = dev->vsettings.brightness >> 8; > > brightness_val -= 0x80; > brightness_contrast[18] = brightness_val; > diff --git a/sn9c20x-bridge.h b/sn9c20x-bridge.h > index 029042c..3df1317 100644 > --- a/sn9c20x-bridge.h > +++ b/sn9c20x-bridge.h > @@ -76,6 +76,9 @@ int sn9c20x_write_i2c_array(struct usb_sn9c20x *dev, > int sn9c20x_set_resolution(struct usb_sn9c20x *dev, > int width, int height); > > +int sn9c20x_set_contrast(struct usb_sn9c20x *); > +int sn9c20x_set_brightness(struct usb_sn9c20x *); > + > int sn9c20x_get_closest_resolution(struct usb_sn9c20x *, int *, int *); > int sn9c20x_set_format(struct usb_sn9c20x *, __u32); > void sn9c20x_set_jpeg(struct usb_sn9c20x *); > > --~--~---------~--~----~------------~-------~--~----~ Lets make microdia webcams plug'n play, (currently plug'n pray) To post to this group, send email to [email protected] Visit us online https://groups.google.com/group/microdia -~----------~----~----~----~------~----~------~--~---
