opencv/modules/videoio/src
Mikhail Nikolskii 7bcb51eded
Merge pull request #19460 from mikhail-nikolskiy:videoio-hw
videoio: HW decode/encode in FFMPEG backend; new properties with support in FFMPEG/GST/MSMF

* HW acceleration in FFMPEG backend

* fixes on Windows, remove D3D9

* HW acceleration in FFMPEG backend

* fixes on Windows, remove D3D9

* improve va test

* Copyright

* check LIBAVUTIL_BUILD >= AV_VERSION_INT(55, 78, 100) // FFMPEG 3.4+

* CAP_MSMF test on .mp4

* .mp4 in test

* improve va test

* Copyright

* check LIBAVUTIL_BUILD >= AV_VERSION_INT(55, 78, 100) // FFMPEG 3.4+

* CAP_MSMF test on .mp4

* .mp4 in test

* .avi for GStreamer test

* revert changes around seek()

* cv_writer_open_with_params

* params.warnUnusedParameters

* VideoCaptureParameters in GStreamer

* open_with_params

* params->getUnused

* Reduce PSNR threshold 33->32 (other tests use 30)

* require FFMPEG 4.0+; PSNR 30 as in other tests

* GStreamer AVI-demux plugin not installed in Ubuntu test environment?

* fix build on very old ffmpeg

* fix build on very old ffmpeg

* fix build issues

* fix build issues (static_cast)

* FFMPEG built on Windows without H264 encoder?

* fix for write_nothing test on VAAPI

* fix warnings

* fix cv_writer_get_prop in plugins

* use avcodec_get_hw_frames_parameters; more robust fallback to SW codecs

* internal function hw_check_device() for device check/logging

* two separate tests for HW read and write

* image size 640x480 in encode test

* WITH_VA=ON (only .h headers used in OpenCV, no linkage dependency)

* exception on VP9 SW encoder?

* rebase master; refine info message

* videoio: fix FFmpeg standalone plugin build

* videoio(ffmpeg): eliminate MSVC build warnings

* address review comments

* videoio(hw): update videocapture_acceleration.read test

- remove parallel decoding by SW code path
- check PSNR against the original generated image

* videoio: minor fixes

* videoio(test): disable unsupported MSMF cases (SW and HW)

* videoio(test): update PSNR thresholds for HW acceleration read

* videoio(test): update debug messages

* "hw_acceleration" whitelisting parameter

* little optimization in test

* D3D11VA supports decoders, doesn't support encoders

* videoio(test): adjust PSNR threshold in write_read_position tests

* videoio(ffmpeg): fix rejecting on acceleration device name mismatch

* videoio(ffmpeg): fix compilation USE_AV_HW_CODECS=0, add more debug logging

* videoio: rework VideoAccelerationType behavior

- enum is not a bitset
- default value is backend specific
- only '_NONE' and '_ANY' may fallback on software processing
- specific H/W acceleration doesn't fallback on software processing. It fails if there is no support for specified H/W acceleration.

* videoio(test): fix for current FFmpeg wrapper

Co-authored-by: Alexander Alekhin <alexander.a.alekhin@gmail.com>
2021-03-01 15:51:04 +00:00
..
cap_winrt Fix build for UWP 2019-08-05 17:19:36 +03:00
backend_plugin_legacy.impl.hpp videoio: split capture/writer plugin APIs 2021-01-14 06:19:23 +00:00
backend_plugin.cpp Merge pull request #19460 from mikhail-nikolskiy:videoio-hw 2021-03-01 15:51:04 +00:00
backend_static.cpp Merge pull request #19460 from mikhail-nikolskiy:videoio-hw 2021-03-01 15:51:04 +00:00
backend.hpp Merge pull request #19394 from MaximMilashchenko:params 2021-01-27 22:07:43 +00:00
cap_android_camera.cpp Merge pull request #19597 from komakai:android-ndk-camera 2021-02-25 19:14:11 +00:00
cap_android_mediandk.cpp Merge pull request #14005 from komakai:android-video-cap 2019-03-19 21:28:45 +03:00
cap_aravis.cpp videoio: fix compilation with Aravis enabled 2020-08-02 14:27:44 +02:00
cap_avfoundation_mac.mm Merge pull request #18426 from Varvrar:add-HEVC-codec-iOS-Mac 2020-10-19 17:39:19 +00:00
cap_avfoundation.mm Merge pull request #18426 from Varvrar:add-HEVC-codec-iOS-Mac 2020-10-19 17:39:19 +00:00
cap_dc1394_v2.cpp Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2020-10-07 09:09:37 +00:00
cap_dshow.cpp Merge pull request #19370 from OlivierLDff:patch-dshow-convertrgb 2021-01-29 10:18:09 +00:00
cap_dshow.hpp Merge pull request #19370 from OlivierLDff:patch-dshow-convertrgb 2021-01-29 10:18:09 +00:00
cap_ffmpeg_hw.hpp Merge pull request #19460 from mikhail-nikolskiy:videoio-hw 2021-03-01 15:51:04 +00:00
cap_ffmpeg_impl.hpp Merge pull request #19460 from mikhail-nikolskiy:videoio-hw 2021-03-01 15:51:04 +00:00
cap_ffmpeg_legacy_api.hpp videoio(plugins): support VideoCaptureParameters, CAPTURE_API_VERSION=1 2021-01-28 06:09:23 +00:00
cap_ffmpeg.cpp Merge pull request #19460 from mikhail-nikolskiy:videoio-hw 2021-03-01 15:51:04 +00:00
cap_gphoto2.cpp Framework for dynamic videoio backends, FFmpeg and GStreamer plugins 2019-02-26 13:50:30 +03:00
cap_gstreamer.cpp Merge pull request #19460 from mikhail-nikolskiy:videoio-hw 2021-03-01 15:51:04 +00:00
cap_images.cpp Merge pull request #16766 from VadimLevin:dev/vlevin/video_writer_params_constructor 2020-04-28 08:38:39 +00:00
cap_interface.hpp Merge pull request #19460 from mikhail-nikolskiy:videoio-hw 2021-03-01 15:51:04 +00:00
cap_ios_abstract_camera.mm build: fix warnings about TARGET_OS_MACCATALYST 2020-05-21 20:41:47 +00:00
cap_ios_photo_camera.mm Merge pull request #7178 from valeriyvan:iosfixes 2016-09-14 14:48:41 +03:00
cap_ios_video_camera.mm Fix customPreviewLayer layout issue when rotateVideo is NO in iOS 2017-11-21 12:56:23 +08:00
cap_librealsense.cpp Framework for dynamic videoio backends, FFmpeg and GStreamer plugins 2019-02-26 13:50:30 +03:00
cap_librealsense.hpp Framework for dynamic videoio backends, FFmpeg and GStreamer plugins 2019-02-26 13:50:30 +03:00
cap_mfx_common.cpp Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2020-05-12 19:24:28 +00:00
cap_mfx_common.hpp Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2020-05-12 19:24:28 +00:00
cap_mfx_plugin.cpp videoio: dump exception's messages in plugins 2021-02-24 17:48:04 +00:00
cap_mfx_reader.cpp Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2020-11-05 18:59:10 +00:00
cap_mfx_reader.hpp Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2020-11-05 18:59:10 +00:00
cap_mfx_writer.cpp Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2020-05-12 19:24:28 +00:00
cap_mfx_writer.hpp Framework for dynamic videoio backends, FFmpeg and GStreamer plugins 2019-02-26 13:50:30 +03:00
cap_mjpeg_decoder.cpp Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2020-12-04 18:26:58 +00:00
cap_mjpeg_encoder.cpp Merge pull request #16766 from VadimLevin:dev/vlevin/video_writer_params_constructor 2020-04-28 08:38:39 +00:00
cap_msmf.cpp Merge pull request #19460 from mikhail-nikolskiy:videoio-hw 2021-03-01 15:51:04 +00:00
cap_msmf.hpp Remove unused code 2018-04-24 12:13:19 +03:00
cap_openni2.cpp Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2020-11-27 14:08:06 +00:00
cap_pvapi.cpp Framework for dynamic videoio backends, FFmpeg and GStreamer plugins 2019-02-26 13:50:30 +03:00
cap_ueye.cpp videoio: plugins API versioning 2020-12-06 16:19:13 +00:00
cap_v4l.cpp Updated more links to forum.opencv.org 2021-01-19 22:03:22 +03:00
cap_winrt_bridge.cpp Refactored internal helpers. Simplified structure. Updated comments. Updates #41 2015-05-22 15:41:50 +03:00
cap_winrt_bridge.hpp Refactored internal helpers. Simplified structure. Updated comments. Updates #41 2015-05-22 15:41:50 +03:00
cap_winrt_capture.cpp Framework for dynamic videoio backends, FFmpeg and GStreamer plugins 2019-02-26 13:50:30 +03:00
cap_winrt_capture.hpp Framework for dynamic videoio backends, FFmpeg and GStreamer plugins 2019-02-26 13:50:30 +03:00
cap_winrt_video.cpp Refactored internal helpers. Simplified structure. Updated comments. Updates #41 2015-05-22 15:41:50 +03:00
cap_winrt_video.hpp Refactored internal helpers. Simplified structure. Updated comments. Updates #41 2015-05-22 15:41:50 +03:00
cap_ximea.cpp Framework for dynamic videoio backends, FFmpeg and GStreamer plugins 2019-02-26 13:50:30 +03:00
cap_xine.cpp Framework for dynamic videoio backends, FFmpeg and GStreamer plugins 2019-02-26 13:50:30 +03:00
cap.cpp videoio(plugins): support VideoCaptureParameters, CAPTURE_API_VERSION=1 2021-01-28 06:09:23 +00:00
container_avi.cpp Fix modules/ typos 2019-08-16 17:34:29 +03:00
ffmpeg_codecs.hpp build: replace WIN32 => _WIN32 2017-07-25 13:30:48 +03:00
plugin_api.hpp core(parallel): plugins support 2021-02-15 17:07:36 +00:00
plugin_capture_api.hpp core(parallel): plugins support 2021-02-15 17:07:36 +00:00
plugin_writer_api.hpp core(parallel): plugins support 2021-02-15 17:07:36 +00:00
precomp.hpp Merge pull request #19460 from mikhail-nikolskiy:videoio-hw 2021-03-01 15:51:04 +00:00
videoio_c.cpp Framework for dynamic videoio backends, FFmpeg and GStreamer plugins 2019-02-26 13:50:30 +03:00
videoio_registry.cpp Merge pull request #19597 from komakai:android-ndk-camera 2021-02-25 19:14:11 +00:00
videoio_registry.hpp videoio: revert registry chages, update cap.cpp 2019-03-04 21:37:20 +00:00
wrl.h Fix modules/ typos 2019-08-16 17:34:29 +03:00