From 655b22e050f73592579e5b80c7a9cad019c0d10b Mon Sep 17 00:00:00 2001 From: Artur Wieczorek Date: Thu, 25 Sep 2014 12:37:38 +0200 Subject: [PATCH 1/2] Fixed CMake issue with FFMPEG videoio configuration --- modules/videoio/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/videoio/CMakeLists.txt b/modules/videoio/CMakeLists.txt index 67fd9816ed..7c8f6a058f 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() From 34533dc569cde73be02a9d52c0c8e4c43aacb6d0 Mon Sep 17 00:00:00 2001 From: Artur Wieczorek Date: Mon, 29 Sep 2014 00:39:35 +0200 Subject: [PATCH 2/2] Use FFMPEG capture only if HAVE_FFMPEG flag is defined. --- modules/videoio/src/cap.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/modules/videoio/src/cap.cpp b/modules/videoio/src/cap.cpp index 30ec7ecc9d..ee24058985 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);