Commit Graph

12917 Commits

Author SHA1 Message Date
Andrey Pavlenko
0a3aca230c Merge pull request #2436 from ilya-lavrenov:tapi_dft_fix 2014-03-04 19:21:15 +04:00
Andrey Pavlenko
ba4513503e Merge pull request #2429 from ilya-lavrenov:master_compatible_tests 2014-03-04 19:18:13 +04:00
Andrey Pavlenko
c9d8025fab Merge pull request #2391 from ilya-lavrenov:tapi_match_template 2014-03-04 18:50:14 +04:00
Andrey Pavlenko
c00f0faf24 Merge pull request #2408 from ilya-lavrenov:tapi_core_opt 2014-03-04 18:37:26 +04:00
Roman Donchenko
5527f2872d Merge pull request #2409 from juanmanpr:master 2014-03-04 15:32:13 +04:00
Roman Donchenko
b5248dbf3f Merge pull request #2407 from codyrigney92:LKOptFlow_NEON 2014-03-04 15:30:26 +04:00
Roman Donchenko
fa3f29f2b5 Merge pull request #2439 from ilya-lavrenov:typo 2014-03-04 13:51:31 +04:00
Ilya Lavrenov
099ea91823 typos 2014-03-04 12:47:40 +04:00
Roman Donchenko
0692a674d1 Merge pull request #2381 from ElenaGvozdeva:ipp_resize 2014-03-04 11:49:02 +04:00
Roman Donchenko
a600267b9f Merge pull request #2432 from ilya-lavrenov:summary_py 2014-03-04 11:46:29 +04:00
mlyashko
5c867463d2 changed localsize to NULL (reviewers comment) 2014-03-04 11:36:47 +04:00
Hilton Bristow
72d5609a36 Merged upstream master 2014-03-04 11:14:03 +10:00
GregoryMorse
90920c2376 Update cap_msmf.cpp
Add support for WinRT in the MF capture framework by removing the disallowed calls to enumerate devices and create a sample grabber sink and adding framework for the MediaCapture interface and a custom sink which interfaces with the sample grabber callback interface. The change requires discussion for making it completely functional as redundancy is required given that if the source is a video file, the old code pathways must be used. Otherwise all IMFMediaSession, IMFMediaSource, and IMFActivate code must use a MediaCapture code path and all sink code must use the CMediaSink custom sink.

Support for the custom sink is extended to non-WinRT not for compatibility as Windows Vista client is a minimum regardless, but because it offers more flexibility, could be faster and is able to be used as an optionally different code path during sink creation based on a future configuration parameter.

My discussion and proposal to finish this change:
 Devices are so easily enumerated through WinRT Windows.Devices namespace that wrapping the calls in a library is quite a chore for little benefit though to get the various modes and formats could still be a worthwhile project. For now conditional compilation to remove videodevices and any offending non-video file related activity in videodevice. In my opinion, this is a different , far less fundamental and important change which can possibly be done as a future project and also much more easily implemented in C++/CX.

ImageGrabber has the IMFSampleGrabberSinkCallback replaced with a base class (SharedSampleGrabber) which also be is base class for ImageGrabberRT. This change is necessary as the custom sink does not require a thread to pump events which is done through MediaCapture already. IMFSampleGrabberSinkCallback is the common element between both models and that piece can be shared. Initializing the new ImageGrabberRT is as simple as passing an already initialized MediaCapture object and any video format/encoding parameters.

The concurrency event is necessary to wait for completion and is the way the underlying, IAsyncAction wrappers in the task library work as well. Native WIN32 event objects would be an option if HAVE_CONCURRENCY is not defined. I could even imagine doing it with sleep/thread yield and InterlockedCompareExchange yet I am not enthusiastic about that approach either. Since there is a specific compiler HAVE_ for concurrency, I do not like pulling it in though I think for WinRT it is safe to say we will always have it available though should probably conditionally compile with the Interlocked option as WIN32 events would require HAVE_WIN32.

It looks like C++/CX cannot be used for the IMediaExtension sink (which should not be a problem) as using COM objects requires WRL and though deriving from IMediaExtension can be done, there is little purpose without COM. Objects from C++/CX can be swapped to interact with objects from native C++ as Inspectable* can reinterpret_cast to the ref object IInspectable^ and vice-versa. A solution to the COM class with C++/CX would be great so we could have dual support. Also without #define for every WRL object in use, the code will get quite muddy given that the */^ would need to be ifdef'd everywhere.

Update cap_msmf.cpp

Fixed bugs and completed the change.  I believe the new classes need to be moved to a header file as the file has become to large and more classes need to be added for handling all the asynchronous problems (one wrapping IAsyncAction in a task and another for making a task out of IAsyncAction).  Unfortunately, blocking on the UI thread is not an option in WinRT so a synchronous architecture is considered "illegal" by Microsoft's standards even if implementable (C++/CX ppltasks library throws errors if you try it).  Worse, either by design or a bug in the MF MediaCapture class with Custom Sinks causes a crash if stop/start previewing without reinitializing (spPreferredPreviewMediaType is fatally nulled).  After decompiling Windows.Media.dll, I worked around this in my own projects by using an activate-able custom sink ID which strangely assigns 1 to this pointer allowing it to be reinitialized in what can only be described as a hack by Microsoft.  This would add additional overhead to the project to implement especially for static libraries as it requires IDL/DLL exporting followed by manifest declaration.  Better to document that it is not supported.

Furthermore, an additional class for IMFAttributes should be implemented to make clean architecture for passing around attributes as opposed to directly calling non-COM interface calls on the objects and making use of SetProperties which would also be a set up for an object that uses the RuntimeClass activation ID.

The remaining changes are not difficult and will be complete soon along with debug tracing messages.

Update cap_msmf.cpp

Create cap_msmf.h

Update cap_msmf.cpp

Update cap_msmf.h

Update cap_msmf.cpp

Update cap_msmf.h

Update and rename cap_msmf.h to cap_msmf.hpp

Update cap_msmf.cpp

Update CMakeLists.txt

Update cap_msmf.hpp

Update cap_msmf.cpp

Update cap_msmf.cpp

Update cap_msmf.cpp

Update cap_msmf.hpp

Update cap_msmf.hpp

Update cap_msmf.cpp

Successful test - samples are grabbed

Update cap_msmf.cpp

Update cap_msmf.hpp

Update cap_msmf.cpp

Update cap_msmf.hpp

Update cap_msmf.hpp

Update cap_msmf.cpp

Update cap_msmf.hpp

Update cap_msmf.cpp

Update cap_msmf.hpp

Update cap_msmf.cpp

Update cap_msmf.hpp

Create ppltasks_winrt.h

Update cap_msmf.hpp

Update cap_msmf.hpp

Update cap_msmf.cpp

Update ppltasks_winrt.h

Library updated and cleaned up with comments, marshaling, exceptions and linker settings

Update ppltasks_winrt.h

Fixed trailing whitespace
2014-03-04 01:52:17 +08:00
Ilya Lavrenov
050cca0422 improved performance of cv::flip (flip cols) 2014-03-03 19:04:32 +04:00
Roman Donchenko
7ecbf45751 Merge pull request #2435 from SpecLad:merge-2.4 2014-03-03 15:41:06 +04:00
Ilya Lavrenov
4376de7698 fixed morphology operations 2014-03-03 15:29:48 +04:00
Ilya Lavrenov
be5b5a0471 fixed cv::dft 2014-03-03 14:32:38 +04:00
Roman Donchenko
db85c35e69 Merge remote-tracking branch 'origin/2.4' into merge-2.4
Conflicts:
	modules/contrib/src/basicretinafilter.hpp
	modules/contrib/src/magnoretinafilter.hpp
	modules/contrib/src/parvoretinafilter.hpp
	modules/contrib/src/retinacolor.hpp
	modules/gpu/include/opencv2/gpu/gpu.hpp
	modules/highgui/src/cap_tyzx.cpp
	modules/ocl/perf/perf_filters.cpp
	modules/ocl/src/haar.cpp
	modules/ocl/src/opencl/haarobjectdetect.cl
	modules/ocl/test/test_filters.cpp
	modules/ocl/test/test_objdetect.cpp
2014-03-03 13:45:22 +04:00
Ilya Lavrenov
29deff8707 ability to merge logs with intersections only 2014-03-03 13:27:07 +04:00
Roman Donchenko
af8aa8a2fa Merge pull request #2433 from ilya-lavrenov:typos 2014-03-03 12:20:35 +04:00
Anatoly Baksheev
fb7e74c511 iteractor work 2014-03-02 23:15:53 +04:00
Ilya Lavrenov
eedf86402d typos 2014-03-02 21:04:17 +04:00
Ilya Lavrenov
68957b2757 added some new performance tests 2014-03-02 10:29:50 +04:00
Ilya Lavrenov
767b28f2e3 tests 2014-03-01 18:47:44 +04:00
Cody Rigney
fbc69e444b Added NEON optimizations for LK optical flow (Intrinsics). 2014-02-28 16:48:04 -05:00
Ilya Lavrenov
c1c3139368 master-like performance tests 2014-02-28 22:40:24 +04:00
Andrey Pavlenko
409bd162ff Merge pull request #2421 from akarsakov:fix_ocl_haar_intel 2014-02-28 18:22:03 +04:00
Andrey Pavlenko
37580687e6 Merge pull request #2427 from alalek:ocl_build_log 2014-02-28 18:21:38 +04:00
Elena Gvozdeva
68edda3350 fixed 2014-02-28 11:56:23 +04:00
Alexander Alekhin
b9d68ef061 core/ocl: OpenCL build log improvements 2014-02-27 13:16:07 +04:00
Andrey Pavlenko
57b6850d74 Merge pull request #2415 from vpisarev:fix_stereobm_sse 2014-02-27 09:37:04 +04:00
Alexander Karsakov
e6f6707558 OCL: Fix for Haar classifier (thanks to Konstantin Rodyushkin). 2014-02-26 18:11:11 +04:00
Roman Donchenko
7dc22b4ea6 Merge pull request #2419 from linquize:tgit.icon 2014-02-26 17:34:49 +04:00
Linquize
a228633d31 Add tgit.icon project config 2014-02-26 17:46:52 +08:00
Roman Donchenko
bd5d8404c9 Merge pull request #2393 from ilya-lavrenov:coverity 2014-02-26 12:16:36 +04:00
mlyashko
ba5ebaa758 changed file name to case-sensitve to support linux 2014-02-26 10:55:18 +04:00
juanmanpr
7a68e3d207 CV_Assert for photo module corrected 2014-02-25 19:58:08 +01:00
Roman Donchenko
693129902d Merge pull request #2399 from SpecLad:merge-2.4 2014-02-25 19:42:54 +04:00
Vadim Pisarevsky
a3aced20c1 fixed difference between SSE2 and C branches of StereoBM; they should now produce absolutely the same results 2014-02-25 18:13:51 +04:00
Roman Donchenko
c9a4a82667 Merge pull request #2358 from rohitgirdhar:rotatedRect 2014-02-25 17:43:48 +04:00
Ilya Lavrenov
ce0557ebb8 fixed defects from Xcode 2014-02-25 17:33:12 +04:00
Elena Gvozdeva
45cc8a5300 fixed 2014-02-25 16:43:52 +04:00
Roman Donchenko
1db1a83410 Merge pull request #2410 from asmorkalov:android_tiff_lowmem_fix 2014-02-25 15:04:24 +04:00
Roman Donchenko
48432502b6 Merge remote-tracking branch 'origin/2.4' into merge-2.4
Conflicts:
	cmake/OpenCVDetectCUDA.cmake
	doc/tutorials/introduction/linux_gcc_cmake/linux_gcc_cmake.rst
	modules/core/CMakeLists.txt
	modules/features2d/perf/opencl/perf_brute_force_matcher.cpp
	modules/highgui/src/grfmt_tiff.cpp
	modules/imgproc/src/clahe.cpp
	modules/imgproc/src/moments.cpp
	modules/nonfree/CMakeLists.txt
	modules/ocl/perf/perf_ml.cpp
	modules/superres/CMakeLists.txt
2014-02-25 15:02:24 +04:00
Roman Donchenko
3693facd9e Merge pull request #2412 from arunjvs:master 2014-02-25 14:21:12 +04:00
Ilya Lavrenov
fe38aab84a core tapi optimization 2014-02-25 14:14:42 +04:00
Arun JVS
31fb7c4fec Fixed Bug #3568: Build fails with WITH_OPENGL=ON 2014-02-25 14:34:32 +05:30
Elena Gvozdeva
48e7bc6b30 fixed 2014-02-25 12:59:33 +04:00
Roman Donchenko
7dc549f166 Merge pull request #2411 from asmorkalov:android_mat_leak_fix 2014-02-25 12:37:01 +04:00
Alexander Smorkalov
c78142acb0 Bug #3391 org.opencv.android.NativeCameraView crashes after latest OpenCV Manager update fixed.
The crash was cased by massive Mat objects leak in NativeCameraView class.
2014-02-25 11:54:03 +04:00