Ok I try to increase performance with 30% and send again the patch
Brian Johnson wrote:
> brightness and contrast really should be set at the same time since
> all these controls use the color matrix its much easier to just
> calculate the new amtrix values and set them all at once. Also i'm
> really not sure what could be so performance hungry in this function
> since its just doing array lookups and bit shifitng. I'm curious have
> you tried disabling all the callbacks for the optical controls but
> that saturation one and seeing if it still hangs?
>
> On Wed, Mar 25, 2009 at 6:26 PM, Gray Water <[email protected]> wrote:
>   
>> Maybe there is a way we could find a compromise:
>> Brightness and contrast get their own functions back. optical_parameters
>> just reads out the values for the affected registers. This way we can at
>> least reduce the number of times optical_parameters is executed.
>>
>> Performance:
>> My assumption ("optical_parameters is perfrmance hungry") is based solely
>> upn my experience uring the testing. I have no idea how the CPU's or the C
>> languages internals work and can therefore not point the finger at a
>> specific piece of code. Does typecasting involve a lot of calculation?
>>
>> GWater
>>
>> 2009/3/25 Boris Borisov <[email protected]>
>>     
>>> As global the function is very simple just a bit operation and I not found
>>> hungry code.
>>> Also strange situation is, if I set the parameters out of wrapper function
>>> and call set_optical.... then the parameters is not changed.
>>> On current version present in git the set contrast is call 2 times. And
>>> that is reason for call 4 times if function for brightness, contrast. hue,
>>> saturation is one. Multiple calls is happened for mplayer 2 times and for
>>> kopette 8 times. Not for ekiga, skype, amsn.
>>> I'm little bit confused.
>>> Mplayer log
>>> Mar 25 21:58:33 shemet sn9c20x: Contrast is set
>>> Mar 25 21:58:33 shemet sn9c20x: Gama is set
>>> Mar 25 21:58:33 shemet sn9c20x: Sharpness is set
>>> Mar 25 21:58:33 shemet sn9c20x: Red gain is set
>>> Mar 25 21:58:33 shemet sn9c20x: Blue gain is set
>>> Mar 25 21:58:33 shemet sn9c20x: Using yuv420 output format
>>> Mar 25 21:58:33 shemet driver: '2-4:1.0': driver_bound: bound to device
>>> 'sn9c20x'
>>> Mar 25 21:58:33 shemet bus: 'usb': really_probe: bound device 2-4:1.0 to
>>> driver sn9c20x
>>> Mar 25 21:58:33 shemet usbcore: registered new interface driver sn9c20x
>>> Mar 25 21:58:33 shemet sn9c20x: SN9C20x USB 2.0 Webcam Driver v2009.01
>>> loaded
>>>
>>>
>>> Mar 25 21:58:46 shemet sn9c20x: Contrast is set
>>> Mar 25 21:58:46 shemet sn9c20x: Contrast is set
>>> Mar 25 21:58:47 shemet device: 'usbdev2.4_ep81': device_unregister
>>> Mar 25 21:58:47 shemet PM: Removing info for No Bus:usbdev2.4_ep81
>>>
>>> Kopete log
>>> Mar 25 22:47:48 shemet sn9c20x: Using yuv420 output format
>>> Mar 25 22:47:48 shemet sn9c20x: Using yuv420 output format
>>> Mar 25 22:47:48 shemet sn9c20x: Using raw output format
>>> Mar 25 22:47:48 shemet sn9c20x: Using yuv420 output format
>>> Mar 25 22:47:48 shemet sn9c20x: Contrast is set
>>> Mar 25 22:47:48 shemet sn9c20x: Contrast is set
>>> Mar 25 22:47:48 shemet sn9c20x: Gama is set
>>> Mar 25 22:47:48 shemet sn9c20x: Contrast is set
>>> Mar 25 22:47:48 shemet sn9c20x: Contrast is set
>>> Mar 25 22:47:48 shemet sn9c20x: Gama is set
>>> Mar 25 22:47:48 shemet sn9c20x: Contrast is set
>>> Mar 25 22:47:48 shemet sn9c20x: Contrast is set
>>> Mar 25 22:47:48 shemet sn9c20x: Using yuv420 output format
>>> Mar 25 22:47:48 shemet sn9c20x: Contrast is set
>>> Mar 25 22:47:48 shemet sn9c20x: Contrast is set
>>>
>>> Brian Johnson wrote:
>>>
>>> It also wasn't committed due to not having the checkpatch.pl errors fixed
>>> yet.
>>>
>>>
>>> Do you know what exactly is so performance hungry in regards to
>>> set_optical_parameters?
>>>
>>> Also how would removing the wrappers fix it from being called 4 times
>>> you stil need to set each of those 4 items even without the wrappers
>>> correct? though since all the wrappers do is call
>>> set_optical_parameters they should probably be removed anyways.
>>>
>>> 2009/3/25 Gray Water <[email protected]>:
>>>
>>>
>>> Your patch was not commited because it locked my computer up several
>>> times.
>>>
>>> Luckily I hope to have found the cause:
>>> 1. set_optical_parameters() is very performance hungry - which is ok
>>> љљ as long as it is called only once.
>>> 2. MPlayer always resets the video device ("just to make sure").
>>> 3. Our reset function calls set_optical_parameters() 4 times
>>> љљ through wrapper functions:
>>> љљ - contrast
>>> љљ - brightness
>>> љљ - hue
>>> љљ - saturation
>>> 4. Together with the isoc_init in the usb subsystem, the buffer system
>>> љљ initializing itself and mplayer loading libv4l in userspace my computer
>>> љљ can't cope and locks up.
>>>
>>> љљ Hopefully removing the wrappers as I suggested before will fix this.
>>>
>>> љљ GWater
>>>
>>>
>>> 2009/3/25 Boris Borisov <[email protected]>
>>>
>>>
>>> Brian
>>> You are not push the patch for control of hie and saturation.
>>> Brian Johnson wrote:
>>>
>>> Pushed
>>>
>>> On Tue, Mar 24, 2009 at 12:38 PM, Josua Grawitter
>>> <[email protected]>
>>>  wrote:
>>>
>>>
>>> Am Dienstag 24 MР”rz 2009 17:32:28 schrieb Brian Johnson:
>>>
>>>
>>> Ok If noone has any issues with these patches i'm going to push them
>>> when i get home later this this evening.
>>>
>>> On Mon, Mar 23, 2009 at 2:46 PM, Pablo Castellano
>>>
>>> <[email protected]> wrote:
>>>
>>>
>>> Brian Johnson wrote:
>>>
>>>
>>> Alright here is a thread to post any patches to test this weekend.
>>>
>>> I've attached my wo patches i've been working on to this message
>>> 1. adds support for USB suspend/resume
>>> 2. exposes webcam button presses via the linux evdev input system
>>>
>>>
>>> Suspend/Resume support seems to work reasonably well on my own
>>> machine, with me being able to open up mplayer suspend the machine and
>>> when i resume mplayer is still delivering a valid video stream.
>>>
>>> My second patch is is a combination of the two patches related to
>>> webcam buttons in a previous post that i have combined into one as
>>> well as modified my thread function to support suspend/resume. This
>>> patch probably needs a bit of testing with different web cams that
>>> have buttons. It should work ok as it is now, however i would like
>>> some more information about which webcams are known to have buttons,
>>> if there are any that have more then one and which bits in the general
>>> purpose input registers(1005 and 1009) are set when a button is
>>> pressed. You can find out that information using debugfs. Testing the
>>> current button events cn be done using gizmod.
>>>
>>> # sudo gizmod -g
>>>
>>> Thsi will start gizmod in debug mode and you should see information
>>> about BTN_0 - BTN_7 show up when pressing your webcam buttons
>>>
>>>
>>> Nice job! This is the only thing I can say :)
>>>
>>> --
>>> Regards, Pablo.
>>>
>>>
>>> Great. I hope to figure out my camera's problem with the saturation
>>> patches
>>>
>>>
>>> this evening and when they are in it's time for final testing and kernel
>>> submission.
>>>
>>> GWater
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>       
>>     
>
> >
>
>   


--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to