From 935222c58f0d3a3a51e29f5222b67accf1f12a31 Mon Sep 17 00:00:00 2001 From: Andrey Kamaev Date: Mon, 9 Apr 2012 18:31:52 +0000 Subject: [PATCH] ffmpeg version info for Windows --- 3rdparty/ffmpeg/ffmpeg_version.cmake | 11 +++++++++++ CMakeLists.txt | 29 +++++++++++++++++------------ modules/highgui/CMakeLists.txt | 11 +++++------ 3 files changed, 33 insertions(+), 18 deletions(-) create mode 100644 3rdparty/ffmpeg/ffmpeg_version.cmake diff --git a/3rdparty/ffmpeg/ffmpeg_version.cmake b/3rdparty/ffmpeg/ffmpeg_version.cmake new file mode 100644 index 0000000..2954d22 --- /dev/null +++ b/3rdparty/ffmpeg/ffmpeg_version.cmake @@ -0,0 +1,11 @@ +set(NEW_FFMPEG 1) +set(HAVE_FFMPEG_CODEC 1) +set(HAVE_FFMPEG_FORMAT 1) +set(HAVE_FFMPEG_UTIL 1) +set(HAVE_FFMPEG_SWSCALE 1) +set(HAVE_GENTOO_FFMPEG 1) + +set(ALIASOF_libavcodec_VERSION 53.61.100) +set(ALIASOF_libavformat_VERSION 53.32.100) +set(ALIASOF_libavutil_VERSION 51.35.100) +set(ALIASOF_libswscale_VERSION 2.1.100) \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 4380f1e..38c85aa 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -104,7 +104,7 @@ OCV_OPTION(WITH_CUBLAS "Include NVidia Cuda Basic Linear Algebra Subprog OCV_OPTION(WITH_CUDA "Include NVidia Cuda Runtime support" ON IF (CMAKE_VERSION VERSION_GREATER "2.8" AND NOT ANDROID AND NOT IOS) ) OCV_OPTION(WITH_CUFFT "Include NVidia Cuda Fast Fourier Transform (FFT) library support" ON IF (CMAKE_VERSION VERSION_GREATER "2.8" AND NOT ANDROID AND NOT IOS) ) OCV_OPTION(WITH_EIGEN "Include Eigen2/Eigen3 support" ON) -OCV_OPTION(WITH_FFMPEG "Include FFMPEG support" ON IF (UNIX AND NOT ANDROID AND NOT IOS) ) +OCV_OPTION(WITH_FFMPEG "Include FFMPEG support" ON IF (NOT ANDROID AND NOT IOS) ) OCV_OPTION(WITH_GSTREAMER "Include Gstreamer support" ON IF (UNIX AND NOT APPLE AND NOT ANDROID AND NOT IOS) ) OCV_OPTION(WITH_GTK "Include GTK support" ON IF (UNIX AND NOT APPLE AND NOT ANDROID AND NOT IOS) ) OCV_OPTION(WITH_IPP "Include Intel IPP support" OFF IF (MSVC OR X86 OR X86_64) ) @@ -461,6 +461,10 @@ if(APPLE AND WITH_FFMPEG) endif() endif() +if(WIN32 AND WITH_FFMPEG) + include(3rdparty/ffmpeg/ffmpeg_version.cmake REQUIRED) +endif() + #################### LATEX for dpf documentation ################## if(BUILD_DOCS) include(cmake/OpenCVFindLATEX.cmake REQUIRED) @@ -677,7 +681,7 @@ endif() # C/C++ options status("") -status(" C++:") +status(" C/C++:") status(" Built as dynamic libs?:" BUILD_SHARED_LIBS THEN YES ELSE NO) status(" C++ Compiler:" CMAKE_COMPILER_IS_GNUCXX THEN "${CMAKE_CXX_COMPILER} (ver ${CMAKE_GCC_REGEX_VERSION})" ELSE "${CMAKE_CXX_COMPILER}" ) status(" C++ flags (Release):" ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_RELEASE}) @@ -799,16 +803,6 @@ if(UNIX AND NOT APPLE) status(" Video I/O:") status(" DC1394 1.x:" HAVE_DC1394 THEN "YES (ver ${ALIASOF_libdc1394_VERSION})" ELSE NO) status(" DC1394 2.x:" HAVE_DC1394_2 THEN "YES (ver ${ALIASOF_libdc1394-2_VERSION})" ELSE NO) -endif() -if(UNIX) - status(" FFMPEG:" HAVE_FFMPEG THEN YES ELSE NO) - status(" codec:" HAVE_FFMPEG_CODEC THEN "YES (ver ${ALIASOF_libavcodec_VERSION})" ELSE NO) - status(" format:" HAVE_FFMPEG_FORMAT THEN "YES (ver ${ALIASOF_libavformat_VERSION})" ELSE NO) - status(" util:" HAVE_FFMPEG_UTIL THEN "YES (ver ${ALIASOF_libavutil_VERSION})" ELSE NO) - status(" swscale:" HAVE_FFMPEG_SWSCALE THEN "YES (ver ${ALIASOF_libswscale_VERSION})" ELSE NO) - status(" gentoo-style:" HAVE_GENTOO_FFMPEG THEN YES ELSE NO) -endif() -if(UNIX AND NOT APPLE) status(" GStreamer:" HAVE_GSTREAMER THEN "" ELSE NO) if(HAVE_GSTREAMER) status(" base:" "YES (ver ${ALIASOF_gstreamer-base-0.10_VERSION})") @@ -848,6 +842,17 @@ elseif(WIN32) status(" Video I/O:" HAVE_VIDEOINPUT THEN DirectShow ELSE NO) endif() +if(WIN32) + status(" FFMPEG:" WITH_FFMPEG THEN "YES (prebuilt binaries)" ELSE NO) +else() + status(" FFMPEG:" HAVE_FFMPEG THEN YES ELSE NO) +endif() +status(" codec:" HAVE_FFMPEG_CODEC THEN "YES (ver ${ALIASOF_libavcodec_VERSION})" ELSE NO) +status(" format:" HAVE_FFMPEG_FORMAT THEN "YES (ver ${ALIASOF_libavformat_VERSION})" ELSE NO) +status(" util:" HAVE_FFMPEG_UTIL THEN "YES (ver ${ALIASOF_libavutil_VERSION})" ELSE NO) +status(" swscale:" HAVE_FFMPEG_SWSCALE THEN "YES (ver ${ALIASOF_libswscale_VERSION})" ELSE NO) +status(" gentoo-style:" HAVE_GENTOO_FFMPEG THEN YES ELSE NO) + # Other third-party libraries status("") status(" Other third-party libraries:") diff --git a/modules/highgui/CMakeLists.txt b/modules/highgui/CMakeLists.txt index 828caef..7024eb8 100644 --- a/modules/highgui/CMakeLists.txt +++ b/modules/highgui/CMakeLists.txt @@ -53,9 +53,9 @@ set(grfmt_srcs src/bitstrm.cpp ${grfmt_srcs}) source_group("Src\\grfmts" FILES ${grfmt_hdrs} ${grfmt_srcs}) if(NEW_FFMPEG) -set(highgui_hdrs src/precomp.hpp src/utils.hpp src/cap_ffmpeg_impl_v2.hpp) + set(highgui_hdrs src/precomp.hpp src/utils.hpp src/cap_ffmpeg_impl_v2.hpp) else() -set(highgui_hdrs src/precomp.hpp src/utils.hpp src/cap_ffmpeg_impl.hpp) + set(highgui_hdrs src/precomp.hpp src/utils.hpp src/cap_ffmpeg_impl.hpp) endif() set(highgui_srcs @@ -230,14 +230,13 @@ if(IOS) endif() if(WIN32) - link_directories("${CMAKE_CURRENT_SOURCE_DIR}/../../3rdparty/lib") - include_directories(AFTER "${CMAKE_CURRENT_SOURCE_DIR}/../../3rdparty/include") #for directshow + link_directories("${OpenCV_SOURCE_DIR}/3rdparty/lib") + include_directories(AFTER "${OpenCV_SOURCE_DIR}/3rdparty/include") #for directshow endif() source_group("Src" FILES ${highgui_srcs} ${highgui_hdrs}) source_group("Include" FILES ${highgui_ext_hdrs}) ocv_set_module_sources(HEADERS ${highgui_ext_hdrs} SOURCES ${highgui_srcs} ${highgui_hdrs} ${grfmt_srcs} ${grfmt_hdrs}) - ocv_module_include_directories() ocv_create_module(${GRFMT_LIBS} ${HIGHGUI_LIBRARIES}) @@ -259,7 +258,7 @@ if(CMAKE_COMPILER_IS_GNUCXX AND NOT ENABLE_NOISY_WARNINGS) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-declarations") endif() -if(WIN32) +if(WIN32 AND WITH_FFMPEG) #copy ffmpeg dll to the output folder if(MSVC64 OR MINGW64) set(FFMPEG_SUFFIX _64) -- 2.7.4