diff --git a/modules/videoio/CMakeLists.txt b/modules/videoio/CMakeLists.txt index 67fd9816e..7c8f6a058 100644 --- a/modules/videoio/CMakeLists.txt +++ b/modules/videoio/CMakeLists.txt @@ -18,13 +18,11 @@ endif() set(videoio_hdrs ${CMAKE_CURRENT_LIST_DIR}/src/precomp.hpp - ${CMAKE_CURRENT_LIST_DIR}/src/cap_ffmpeg_impl.hpp ) set(videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap.cpp ${CMAKE_CURRENT_LIST_DIR}/src/cap_images.cpp - ${CMAKE_CURRENT_LIST_DIR}/src/cap_ffmpeg.cpp ) file(GLOB videoio_ext_hdrs @@ -111,6 +109,8 @@ if(HAVE_XIMEA) endif(HAVE_XIMEA) if(HAVE_FFMPEG) + list(APPEND videoio_hdrs ${CMAKE_CURRENT_LIST_DIR}/src/cap_ffmpeg_impl.hpp) + list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_ffmpeg.cpp) if(UNIX AND BZIP2_LIBRARIES) list(APPEND VIDEOIO_LIBRARIES ${BZIP2_LIBRARIES}) endif() diff --git a/modules/videoio/src/cap.cpp b/modules/videoio/src/cap.cpp index 30ec7ecc9..ee2405898 100644 --- a/modules/videoio/src/cap.cpp +++ b/modules/videoio/src/cap.cpp @@ -363,8 +363,10 @@ CV_IMPL CvCapture * cvCreateFileCapture (const char * filename) { CvCapture * result = 0; +#ifdef HAVE_FFMPEG if (! result) result = cvCreateFileCapture_FFMPEG_proxy (filename); +#endif #ifdef HAVE_VFW if (! result) @@ -421,8 +423,10 @@ CV_IMPL CvVideoWriter* cvCreateVideoWriter( const char* filename, int fourcc, if(!fourcc || !fps) result = cvCreateVideoWriter_Images(filename); +#ifdef HAVE_FFMPEG if(!result) result = cvCreateVideoWriter_FFMPEG_proxy (filename, fourcc, fps, frameSize, is_color); +#endif #ifdef HAVE_VFW if(!result) @@ -454,6 +458,19 @@ CV_IMPL CvVideoWriter* cvCreateVideoWriter( const char* filename, int fourcc, result = cvCreateVideoWriter_GStreamer(filename, fourcc, fps, frameSize, is_color); #endif +#if !defined(HAVE_FFMPEG) && \ + !defined(HAVE_VFW) && \ + !defined(HAVE_MSMF) && \ + !defined(HAVE_AVFOUNDATION) && \ + !defined(HAVE_QUICKTIME) && \ + !defined(HAVE_QTKIT) && \ + !defined(HAVE_GSTREAMER) +// If none of the writers is used +// these statements suppress 'unused parameter' warnings. + (void)frameSize; + (void)is_color; +#endif + if(!result) result = cvCreateVideoWriter_Images(filename);