Ask Your Question
1

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

asked 2013-05-16 06:51:40 -0600

johnalexander gravatar image

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 ... (more)

edit retag flag offensive close merge delete

Comments

P.S. I've asked this question on StackOverflow, but only received comment to 'refer to OpenCV developers'. Hence this post, which one could view as being a repost. My apologies for my internet-littering, however I do still believe this is a relevant question for this forum and it's members.

johnalexander gravatar imagejohnalexander ( 2013-05-16 06:56:11 -0600 )edit

1 answer

Sort by ยป oldest newest most voted
2

answered 2013-05-16 07:17:35 -0600

Vladislav Vinogradov gravatar image

Precompiled version from Sourceforge was built without GPU video decoding/encoding support.

To enable GPU video encoding you have to build OpenCV from sources and setup CMake variable WITH_NVCUVID to ON. Here is a tutorial.

edit flag offensive delete link more

Comments

2

Is there any reason why CUDA and OCL support are not available in the precompiled version? I tried to build OpenCV myself, but I failed, see here: http://answers.opencv.org/question/12110/compiling-opencv-245-under-vs-2012-x64/

Ben gravatar imageBen ( 2013-05-16 07:26:02 -0600 )edit

Ben look at my answer, indeed you need also to build it yourself! :) I will keep updates in my post about how to go further!

StevenPuttemans gravatar imageStevenPuttemans ( 2013-05-16 12:15:00 -0600 )edit

@ Vladislav Vinogradov: Thank you for your answer! If you're interested in higher reputation, you can consider answering this same question on StackOverflow; else I will link to your answer from there.

johnalexander gravatar imagejohnalexander ( 2013-05-24 00:53:22 -0600 )edit

Question Tools

Stats

Asked: 2013-05-16 06:51:40 -0600

Seen: 6,103 times

Last updated: May 16 '13