On Thursday 14 January 2010 13:32:44 Frank Schaefer wrote: > Hi, > > I finally finished working on a series of patches for kopete's > webcam-code, which I think should be applied to the 4.4-branch. > They fix a number of issues with > - loading/saving of the video-settings > - device registering + unregistering + switching > - device input switching > - GUI-elements in the video-settings-dialog (bug 188177) > > See the a short summary about what they and why below. > The first 6 patches are basically what I've already put on the > review-board. I decided to split them up to make reviewing easier. > However, patch 6 ist still complex. Feel free to ask questions. > > All patches apply from Kopetes' root-directory with "patch -p1 < > patchfile". > > Even if you do/can not comment the code-changes, please test them and > report problems. > > Thanks, > Frank > > > ####################################### > > PATCH 1: > Fix loading of video-setting "Mirror image" > > Fixes a typo in videodevicepool::loadConfiguration(). > ---------------------------------------------------------------------- > PACTH 2: > Fix loading of video-setting "Whitebalance" > > Add code-line for applying the whitebalance-setting after loading it. > Also fix the standard value for this setting. > ---------------------------------------------------------------------- > PATCH 3: > videodevicepool: decrease model-count in the model-pool when devices are > removed > > This fixes a bug which causes the wrong device number to be used when > video-settings are saved in some cases. > ---------------------------------------------------------------------- > PATCH 4: > Video-settings (videodevicepool): do not save device automatically when > open() is called with a device parameter > > With the current code, always the last selected device is saved in the > video-settings-dialog, even if the settings-changes are cancled/not > applied. Restoring the initial value in the settings-dialog would be very > complex and video-settings should only be saved by calling > videodevicepool::saveConfig() explicitly. > ---------------------------------------------------------------------- > PATCH 5: > Video-settings (videodevicepool): fix nr. of clients in case of > device-removal and failed open() > > Set nr. of clients to 0 when the device is removed. > Do not increase the nr. of clients if open() fails. > > The current code causes video-settings not to be saved in some cases > (when devices are plugged in for the second time). > ---------------------------------------------------------------------- > PATCH 6: > Video-settings (videodevicepool): fix workflow during device-open > > Fixes > - loading of the saved device > - closing of the current device before opening a new device > - handling of multiple clients > > With the current code, always the device with index 0 is used regardless > of what has been saved. > This happens, because the video-settings are loaded AFTER the device is > opened. > Because the video-settings (options, values for the controls) must be > applied witch an open device, the only solution is to split the > loadConfig()-function and into two functions: > - loadSelectedDevice() => applied before the device is opened to set the > right device-index > - loadDeviceConfig() => applied after the device has been successfully > opened to set the video-settings > > With the current workflow during device-open (open(int device) calls > open()), we do not know if the device is selected explicitly or the > default device should be opened. > Because of that, merge open() and open(ind device), using negative > parameters for selecting the standard/saved device (defualt=-1). > This way, we also fix handling of multiple clients for a device and > closing of the previous device (which do not work in several cases with > the current code). > ---------------------------------------------------------------------- > PATCH 7: > Fix device-removal in video-settings-dialog > > - stop polling frames from removed device > - remove unregistered/removed devices from the selection-combobox > - switch to another device (if available) and start capturing > ---------------------------------------------------------------------- > PATCH 8: > Fix device-switching in video-settings-dialog > > Stop capturing from current device and close it before switching to the > new device > This fixes the following issues: > - device-switching not working / hanging devices > - settings-loading not working after switching to a device for the > second time (because of >1 clients in videodevicepool) > ---------------------------------------------------------------------- > PATCH 9: > Fix device-input-switching in video-settings-dialog > > On most (all ?) devices, the V4L2-ioctl returns EBUSY when trying to > switch the input while device is streaming. > Fix it by stopping capturing before switching the input and restarting > capturing afterwards. > ---------------------------------------------------------------------- > PATCH 10: > Video-settings-dialog: disable comboboxes if no device available > BUG: 188177 > ---------------------------------------------------------------------- > PATCH 11: > Video-settings-dialog: disable "Controls"- and "Options"-tabs if no > device available > BUG: 188177 > ---------------------------------------------------------------------- >
All look fine. Please commit. -- Matt _______________________________________________ kopete-devel mailing list kopete-devel@kde.org https://mail.kde.org/mailman/listinfo/kopete-devel