Is cv::VideoCapturec supposed to be in opencv_videoio_ffmpeg480_64.dll?

Installed from opencv-4.8.0-windows.exe, also built from git (using installOCV.sh from instructions) with Visual Stdio 22/17.7.1. Both either included or built a opencv_videoio_ffmpeg480_64.dll.

There is a cvCreateVideoWriter_FFMPEG entry point, but no cvCreateVideoCapture_FFMPEG.
There are opencv_videoio_capture_plugin_init_v1 and opencv_videoio_write_plugin_init_v1 entry points.

Is there a config option missing to create a VideoCapture object?

Also, google can’t find links to the plugin_init_v1 entry points.

no, you’re supposed to have two DLLs:

  • opencv_videoio480.dll
  • opencv_videoio_ffmpeg480_64.dll

did you not notice the first one?

why are you concerned with entry points?

I guess that’s the problem.

Didn’t look through the whole system, but the install of opencv-4.8.0-windows.exe, created a few DLLs under build/binx64/vc16, but opencv_videoio480.dll. is not one of them, I have opencv_videoio_ffmpeg480_64.dll, _msmf480_64, and _msmf480+64d. Neither has a CreateVideoCapture entry point.

My build attempt only created the _ffmpeg versions, nothing else.

I’m concerned about entry points, as I need to call the DLL from a non C/C++ language and it can see the cvCreateVideoWriter but not VideoCapture, thus I won’t be able to open any camera.

do you have a world dll? then all of that is in there.

opencv can be built to have core, imgproc, … modules individually, or all of them bound together into a world.

OpenCV has no C API any more. if you find any old C API in there, that is by accident. anything you find will have to be C++ API, perhaps with name mangling or whatever is done in the C++ world.

I do have a world dll, it just has way to many exported functions and I couldn’t see the forest from the trees.

My problem is that all these DLLs have C and C++ exports and I can only (easily) access C exports. E.g. cvCreateVideoWriter and cvCreateCameraCapture are there as C exports, but VideoCapture::VideoCapture is there only as a C++ export.

Off I go to write C wrappers for the few things I need. Thanks.

please, those are package private, implementation functions.
do not use them for anything

Not planning in doing so, those were just exports I could see form a “C view” of the DLL.
As I said, I’ll just wrap the C++ code I need with C wrappers, as I can’t call C++ directly.