5deb9dda60097e8ff092456cfb810dbb57bfceb5
A camera source may reject changing the mode while it is busy leaving the the camerabin plugin in a state inconsistent with the gstreamer pipeline which can lead to attempts to record video in the image capture mode and ultimately a lockup. Changing any of the source resolutions requires putting the pipeline into the the READY state to apply the changes. If this happened during a capture the state change was deferred and the internal plugin state was restored to active before the capture finished and the state changes were treated as a no-op and the resolution change wasn't applied leading to an attempt to record video with an unsupported resolution set for the image capture mode. So if a change to a lower state is requested and the plugin is unable to process it immediately still defer the change but ensure the pipeline is still dropped to the lowest requested state before being restored to the current requested state so that any changes made on state transitions are applied.
Description
No description provided
Languages
C++
90.5%
Objective-C++
5.8%
QMake
1%
Objective-C
0.9%
QML
0.5%
Other
1%