Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

How to solve OpenCV Error "function not implemented (called functionality is disabled for current build or platform) when using VideoWriter_GPU?

My Hard- & Software:

  • Windows 7 Enterprise version 6.1.7600
  • Intel Xeon CPU Quadcore 3.07GHz
  • NVidia Quadro 4000 GPU
  • OpenCV v2.4.4 Precompiled version from Sourceforge
  • OpenCV Cuda Package belonging to opencv v2.4.4
  • CUDA v5.0 Toolkit and CUDA Driver for Windows x64 build
  • CUDA v4.2 32 bits SDK (allows OpenCV 2.4.4, which is precompiled to work with CUDA v2.4, to communicate with the CUDA v5.0)
  • Microsoft Visual Studios C++ 2010 Express ('vc10')
  • No Cmake

Question Intro

I'm running an opencv project in Visual Studios 2010 and have implemented cuda support. All cuda-functionalities are working fine - to the best of my knowledge - and are indeed improving speed on the image processing, no errors encountered.

However, I now also wanted to attemp to speed up the video-writing function in this project of mine by replacing the current cv::VideoWriter with the gpu::VideoWriter_GPU function. (The reason for this is that the cv::VideoWriter seems to somehow cause processes running outside of the scope in which the VideoWriter is called to be slowed down, resulting in images available at the DirectShow driver being dropped by the VideoCapture-function, hence messing up an algorithm I've implemented. But that issue's worth a seperate question)

Problem

To attempt to speed-up the , I've now replaced the VideoWriter-calls with calls to the VideoWriter_GPU-functionality (and correspondingly adapted syntax, and naturally provided the function with GpuMat's).

When I run my project (Compile & Run in Debug-mode), I get the following error-message (directly originating at the calling of gpu::VideoWriter_GPU):

OpenCv Error: The function/feature is not implemented (The called functionality is disabled for current build or platform) in unknown function, file c:slave\builds\wininstallermegapack\opencv\modules\gpu\src\precomp.hpp, line 131.

and the program then ends with

code -529697949 (0xe06d7363)

Corresponding header-file and error message can also be viewed here.

The thrown error also refers back to a CV_ERROR-code (to be found in header file ...\build\include\opencv2\core\types_c.h) which reads:

'the requested function/feature is not implemented'

I've purposely currently not included any of my actual code, because the error-message originates so clearly from the call to the gpu::VideoWriter_GPU, which is making me think it's not a coding or syntax problem. (Please leave a comment if you feel my code is necessary for answering this question.

My steps so far

I miss the natural gift of understanding what precisely this message means or how to interpret it, or how to search deeper into openCV sourcecode to find the origin of the error. Does my opencv v2.4.4 simply not support what I want...? Does this function simply not work on my windows 7, 64bit system...? Or maybe is Sourceforge's precompiled OpenCV v2.4.4 limited?

OpenCV documentation neither on v2.4.4 nor v2.4.5 provide with any clarity regarding versioned use or build-availability of the function

Further, I've checked out as many available google-hits I could find (relating to this error message and combinations of searchterms like "opencv, gpu, VideoWriter_GPU, disabled for current build") but have found no references to this error and thus still don't understand what the problem is or how to solve it.

This post post and this post about similar error messages suggest it's trying to tell me that opencv simply does not provide the option of using the function or functionality I am aiming to use (or only as a non-free service.. i even tried adding opencv_nonfree244d.lib to my lib-paths but without result). Or maybe even that cuda is not at all supported.. But that's all against my experience as every single opencv gpu-function I've tried to use has seemed to work fine.

Question

Could someone please explain to me why this is not working for me, what the error message really means and more importantly tell me what I can do to make the VideoWriter_GPU work? Else, if you don't know, but have a tip as to where else I could search, please also share!


Many thanks!