opencv/cmake/templates
Maksim Shabunin 7bdc618697
Merge pull request #26025 from mshabunin:cpp-videoio-highgui
 Potential conflicts with #25958
C-API cleanup: highgui, videoio #26025

  Merge with: opencv/opencv_contrib#3780

This PR removes usage of C-API from highgui and videoio modules. Only source code is affected, tests were not using obsolete API.

It should be possible to backport these changes to 4.x branch preserving removed public headers and source files (`*_c.h` and `*_c.cpp`).


#### Checklist

I tried to verify as many backends as possible, though these checks were not as thorough as I'd like them to be. Below is the checklist covering all modified backends with their statuses.

> 🔹 - small changes
> 🟢 - consider working
>  - considered untested

##### highgui

Pass | Backend | Local check | CI check
-----|---------|-------------|---------
🟢 | GTK2 | build + test, plugin build | build + test  
🟢 | GTK3 | build + test, plugin build | build + test
🟢 | QT | build + test, plugin build |
 | Wayland 🔹 | |
🟢 | WIN32 🔹 | | build + test
🟢 | Cocoa 🔹 | | build + test
 | WinRT | | 

##### videoio 

Pass | Backend | Local check | CI check
-----|---------|-------------|---------
🟢 | Android Camera/MediaNDK 🔹 | | build
🟢 | Aravis | build |
🟢 | AVFoundation OSX | | build + test
 | AVFoundation iOS | | build
🟢 | DC1394 | build |
🟢 | DShow 🔹 | | build
🟢 | FFMpeg | build, plugin build | build + test
🟢 | GPhoto 🔹 | build |
🟢 | GStreamer | build, plugin build | build + test
🟢 | Images | build | build + test
🟢 | MSMF 🔹 | | build + test
🟢 | OpenNI | build |
🟢 | PVAPI | build |
🟢 | V4L | build + test | build
🟢 | XIMEA | build |
🟢 | XINE 🔹 | build |

#### Notes

- local linux build checks performed using [this framework](https://github.com/mshabunin/opencv-videoio-build-check)
- minor extra changes made in both `cap_avfoundation*.mm` to make them slightly more synchronized - it would be better to combine them into a single one in the future
- configurations with plugins have been build but not tested
- **moved unrelated changes to separate PRs** ~two issues have been fixed in separate commits:~
  - ~imgproc: missing `cv::hal::` color conversion functions has been used in MediaSDK backend~
  - ~videoio/V4L: wrong color conversion mode caused bad colors for NV12 camera input format (RGB instead of BGR)~

It would be nice to check following functionality manually:
- [ ] OSX: camera input
- [ ] iOS: camera and file input
- [ ] WinRT: build, some testing
- [x] Linux/Wayland: build
2024-09-09 16:42:44 +03:00
..
cmake_uninstall.cmake.in cmake: update generation of 'uninstall' target 2020-04-07 22:03:12 +00:00
custom_hal.hpp.in cmake: refactor HAL attaching process 2016-06-15 17:34:30 +03:00
cv_cpu_config.h.in cmake: support multiple CPU targets 2017-02-13 19:52:59 +03:00
cvconfig.h.in Merge pull request #25197 from invarrow:invbranch-cleanup 2024-03-26 15:17:18 +03:00
dllmain.cpp.in Support building shared libraries on WINCE. 2019-08-01 15:28:04 +02:00
opencv_abi.xml.in Merge pull request #26025 from mshabunin:cpp-videoio-highgui 2024-09-09 16:42:44 +03:00
opencv_modules.hpp.in cmake: add OPENCV_ENABLE_NONFREE option and macro 2016-08-04 19:23:49 +03:00
opencv_run_all_tests_android.sh.in opencv_run_all_tests.sh implemented for Android SDK. 2014-02-12 14:21:58 +04:00
opencv_run_all_tests_unix.sh.in remove unsupported unsupported unicode 2023-06-11 23:02:34 +08:00
opencv_run_all_tests_windows.cmd.in Add a script to run all tests on Windows 2015-03-10 16:24:23 +03:00
OpenCV-abi.mk.in Separate OpenCV.mk files for different ABIs 2015-06-17 18:10:28 +03:00
opencv-XXX.pc.in pkg-config: Drop broken include path 2020-05-25 22:33:34 +02:00
OpenCV.mk.in android: move .a files into 'staticlibs' directory 2018-02-15 16:31:49 +03:00
OpenCVConfig-ANDROID.cmake.in cmake: refactoring of OpenCVConfig 2016-06-20 15:15:21 +03:00
OpenCVConfig-CUDA.cmake.in Merge pull request #22615 from cudawarped:nvcuvenc 2022-10-28 11:03:51 +03:00
OpenCVConfig-CUDALanguage.cmake.in build: first class cuda support 2023-12-26 09:39:18 +03:00
OpenCVConfig-IPPICV.cmake.in cmake: refactoring of OpenCVConfig 2016-06-20 15:15:21 +03:00
OpenCVConfig-IPPIW.cmake.in cmake: update handling of IPPICV/IPPIW 2017-04-26 00:15:54 +03:00
OpenCVConfig-version.cmake.in Properly check for version in find_package 2015-12-17 17:00:30 +03:00
OpenCVConfig.cmake.in cmake: enable C++11 implicitly 2020-02-03 17:45:37 +03:00
OpenCVConfig.root-ANDROID.cmake.in cmake: refactoring of OpenCVConfig 2016-06-20 15:15:21 +03:00
OpenCVConfig.root-WIN32.cmake.in Support VS 2022 17.1x.y 2024-05-23 16:05:19 +02:00
pylint.cmake.in cmake: change Pylint integration 2017-08-24 14:59:33 +03:00
setup_vars_linux.sh.in cmake: introduce setup_vars scripts 2018-11-01 17:38:40 +03:00
setup_vars_macosx.sh.in cmake: introduce setup_vars scripts 2018-11-01 17:38:40 +03:00
setup_vars_win32.cmd.in win32: update setupvars.cmd 2018-11-15 23:36:26 +00:00
vs_version.rc.in build: added VERSIONINFO resource 2017-06-20 15:45:21 +03:00
xcode-launch-c.in cmake: support ccache with Xcode generator 2021-01-15 19:58:01 +00:00
xcode-launch-cxx.in cmake: support ccache with Xcode generator 2021-01-15 19:58:01 +00:00