1
0
mirror of https://github.com/opencv/opencv.git synced 2026-07-29 23:33:05 +04:00

Merge pull request #21337 from mansourmoufid:videocapture-get-property-return

Make cv::VideoCapture::get return cv::CAP_PROP_UNKNOWN (-1) for unsupported properties #21337

The return value indicating an unsupported property is not consistent across backends.

I stumbled on this issue because my code was determining if a property value is valid if it's non-zero (like the documentation says), which worked fine on macOS, but not on Android.

For example, auto-exposure is not supported on macOS, so get() returns 0. But it is supported on Android and 0 means auto-exposure is off.

I think -1 is the better return value to indicate unsupported properties.

I made changes to all the backends. I think I got every case. This breaks API compatibility for some backends, so I based this on branch 3.4.

- [x] I agree to contribute to the project under Apache 2 License.
- [x] To the best of my knowledge, the proposed patch is not based on a code under GPL or other license that is incompatible with OpenCV
- [x] The PR is proposed to proper branch
- [ ] There is reference to original bug report and related work
- [ ] There is accuracy test, performance test and test data in opencv_extra repository, if applicable
      Patch to opencv_extra has the same branch name.
- [ ] The feature is well documented and sample code can be built with the project CMake
This commit is contained in:
Mansour Moufid
2026-06-02 01:27:24 -04:00
committed by GitHub
parent 1d4d81103e
commit a68e8d8289
37 changed files with 142 additions and 114 deletions
+1 -1
View File
@@ -159,7 +159,7 @@ VideoCapture_uEye::VideoCapture_uEye(int camera)
double VideoCapture_uEye::getProperty(int property_id) const
{
auto value = 0.;
auto value = CAP_PROP_UNKNOWN;
switch (property_id)
{
case CAP_PROP_FRAME_WIDTH: