Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
O
opencv
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
opencv
Commits
3d8395ca
Commit
3d8395ca
authored
Nov 29, 2016
by
Vadim Pisarevsky
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #7743 from alalek:cmake_ffmpeg_cleanup_2.4
parents
2af4dc72
32f56830
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
104 additions
and
77 deletions
+104
-77
ffmpeg_version.cmake
3rdparty/ffmpeg/ffmpeg_version.cmake
+10
-13
CMakeLists.txt
CMakeLists.txt
+7
-8
OpenCVFindLibsVideo.cmake
cmake/OpenCVFindLibsVideo.cmake
+22
-50
OpenCVUtils.cmake
cmake/OpenCVUtils.cmake
+38
-0
ffmpeg_test.cpp
cmake/checks/ffmpeg_test.cpp
+24
-0
cvconfig.h.in
cmake/templates/cvconfig.h.in
+0
-6
cap_ffmpeg_impl.hpp
modules/highgui/src/cap_ffmpeg_impl.hpp
+3
-0
No files found.
3rdparty/ffmpeg/ffmpeg_version.cmake
View file @
3d8395ca
set
(
HAVE_FFMPEG 1
)
set
(
FFMPEG_libavcodec_FOUND 1
)
set
(
HAVE_FFMPEG_CODEC 1
)
set
(
FFMPEG_libavformat_FOUND 1
)
set
(
HAVE_FFMPEG_FORMAT 1
)
set
(
FFMPEG_libavutil_FOUND 1
)
set
(
HAVE_FFMPEG_UTIL 1
)
set
(
FFMPEG_libswscale_FOUND 1
)
set
(
HAVE_FFMPEG_SWSCALE 1
)
set
(
FFMPEG_libavresample_FOUND 1
)
set
(
HAVE_FFMPEG_RESAMPLE 0
)
set
(
HAVE_GENTOO_FFMPEG 1
)
set
(
ALIASOF_libavcodec_VERSION 55.18.102
)
set
(
FFMPEG_libavcodec_VERSION 55.18.102
)
set
(
ALIASOF_libavformat_VERSION 55.12.100
)
set
(
FFMPEG_libavformat_VERSION 55.12.100
)
set
(
ALIASOF_libavutil_VERSION 52.38.100
)
set
(
FFMPEG_libavutil_VERSION 52.38.100
)
set
(
ALIASOF_libswscale_VERSION 2.3.100
)
set
(
FFMPEG_libswscale_VERSION 2.3.100
)
set
(
ALIASOF_libavresample_VERSION 1.0.1
)
set
(
FFMPEG_libavresample_VERSION 1.0.1
)
\ No newline at end of file
CMakeLists.txt
View file @
3d8395ca
...
@@ -880,19 +880,18 @@ if(ANDROID)
...
@@ -880,19 +880,18 @@ if(ANDROID)
endif
()
endif
()
endif
()
endif
()
if
(
DEFINED WITH_FFMPEG
)
if
(
DEFINED WITH_FFMPEG
OR HAVE_FFMPEG
)
if
(
WIN32
)
if
(
WIN32
)
status
(
" FFMPEG:"
WITH_FFMPEG THEN
"YES (prebuilt binaries)"
ELSE NO
)
status
(
" FFMPEG:"
WITH_FFMPEG THEN
"YES (prebuilt binaries)"
ELSE NO
)
else
()
else
()
status
(
" FFMPEG:"
HAVE_FFMPEG THEN YES ELSE NO
)
status
(
" FFMPEG:"
HAVE_FFMPEG THEN YES ELSE NO
)
endif
()
endif
()
status
(
" codec:"
HAVE_FFMPEG_CODEC THEN
"YES (ver
${
ALIASOF_libavcodec_VERSION
}
)"
ELSE NO
)
status
(
" avcodec:"
FFMPEG_libavcodec_FOUND THEN
"YES (ver
${
FFMPEG_libavcodec_VERSION
}
)"
ELSE NO
)
status
(
" format:"
HAVE_FFMPEG_FORMAT THEN
"YES (ver
${
ALIASOF_libavformat_VERSION
}
)"
ELSE NO
)
status
(
" avformat:"
FFMPEG_libavformat_FOUND THEN
"YES (ver
${
FFMPEG_libavformat_VERSION
}
)"
ELSE NO
)
status
(
" util:"
HAVE_FFMPEG_UTIL THEN
"YES (ver
${
ALIASOF_libavutil_VERSION
}
)"
ELSE NO
)
status
(
" avutil:"
FFMPEG_libavutil_FOUND THEN
"YES (ver
${
FFMPEG_libavutil_VERSION
}
)"
ELSE NO
)
status
(
" swscale:"
HAVE_FFMPEG_SWSCALE THEN
"YES (ver
${
ALIASOF_libswscale_VERSION
}
)"
ELSE NO
)
status
(
" swscale:"
FFMPEG_libswscale_FOUND THEN
"YES (ver
${
FFMPEG_libswscale_VERSION
}
)"
ELSE NO
)
status
(
" resample:"
HAVE_FFMPEG_RESAMPLE THEN
"YES (ver
${
ALIASOF_libavresample_VERSION
}
)"
ELSE NO
)
status
(
" avresample:"
FFMPEG_libavresample_FOUND THEN
"YES (ver
${
FFMPEG_libavresample_VERSION
}
)"
ELSE NO
)
status
(
" gentoo-style:"
HAVE_GENTOO_FFMPEG THEN YES ELSE NO
)
endif
()
endif
(
DEFINED WITH_FFMPEG
)
if
(
DEFINED WITH_GSTREAMER
)
if
(
DEFINED WITH_GSTREAMER
)
status
(
" GStreamer:"
HAVE_GSTREAMER THEN
""
ELSE NO
)
status
(
" GStreamer:"
HAVE_GSTREAMER THEN
""
ELSE NO
)
...
...
cmake/OpenCVFindLibsVideo.cmake
View file @
3d8395ca
...
@@ -190,63 +190,35 @@ if(WITH_XIMEA)
...
@@ -190,63 +190,35 @@ if(WITH_XIMEA)
endif
(
WITH_XIMEA
)
endif
(
WITH_XIMEA
)
# --- FFMPEG ---
# --- FFMPEG ---
ocv_clear_vars
(
HAVE_FFMPEG
HAVE_FFMPEG_CODEC HAVE_FFMPEG_FORMAT HAVE_FFMPEG_UTIL HAVE_FFMPEG_SWSCALE HAVE_FFMPEG_RESAMPLE HAVE_GENTOO_FFMPEG HAVE_FFMPEG_FFMPEG
)
ocv_clear_vars
(
HAVE_FFMPEG
)
if
(
WITH_FFMPEG
)
if
(
WITH_FFMPEG
)
if
(
WIN32 AND NOT ARM
)
if
(
WIN32 AND NOT ARM
)
include
(
"
${
OpenCV_SOURCE_DIR
}
/3rdparty/ffmpeg/ffmpeg_version.cmake"
)
include
(
"
${
OpenCV_SOURCE_DIR
}
/3rdparty/ffmpeg/ffmpeg_version.cmake"
)
elseif
(
UNIX
)
set
(
HAVE_FFMPEG TRUE
)
CHECK_MODULE
(
libavcodec HAVE_FFMPEG_CODEC
)
elseif
(
PKG_CONFIG_FOUND
)
CHECK_MODULE
(
libavformat HAVE_FFMPEG_FORMAT
)
ocv_check_modules
(
FFMPEG libavcodec libavformat libavutil libswscale
)
CHECK_MODULE
(
libavutil HAVE_FFMPEG_UTIL
)
ocv_check_modules
(
FFMPEG_libavresample libavresample
)
CHECK_MODULE
(
libswscale HAVE_FFMPEG_SWSCALE
)
if
(
FFMPEG_libavresample_FOUND
)
CHECK_MODULE
(
libavresample HAVE_FFMPEG_RESAMPLE
)
ocv_append_build_options
(
FFMPEG FFMPEG_libavresample
)
CHECK_INCLUDE_FILE
(
libavformat/avformat.h HAVE_GENTOO_FFMPEG
)
CHECK_INCLUDE_FILE
(
ffmpeg/avformat.h HAVE_FFMPEG_FFMPEG
)
if
(
NOT HAVE_GENTOO_FFMPEG AND NOT HAVE_FFMPEG_FFMPEG
)
if
(
EXISTS /usr/include/ffmpeg/libavformat/avformat.h OR HAVE_FFMPEG_SWSCALE
)
set
(
HAVE_GENTOO_FFMPEG TRUE
)
endif
()
endif
()
endif
()
if
(
HAVE_FFMPEG_CODEC AND HAVE_FFMPEG_FORMAT AND HAVE_FFMPEG_UTIL AND HAVE_FFMPEG_SWSCALE
)
set
(
HAVE_FFMPEG TRUE
)
endif
()
if
(
HAVE_FFMPEG
)
if
(
HAVE_FFMPEG
)
# Find the bzip2 library because it is required on some systems
try_compile
(
__VALID_FFMPEG
FIND_LIBRARY
(
BZIP2_LIBRARIES NAMES bz2 bzip2
)
"
${
OpenCV_BINARY_DIR
}
"
if
(
NOT BZIP2_LIBRARIES
)
"
${
OpenCV_SOURCE_DIR
}
/cmake/checks/ffmpeg_test.cpp"
# Do an other trial
CMAKE_FLAGS
"-DINCLUDE_DIRECTORIES:STRING=
${
FFMPEG_INCLUDE_DIRS
}
"
FIND_FILE
(
BZIP2_LIBRARIES NAMES libbz2.so.1 PATHS /lib
)
"-DLINK_DIRECTORIES:STRING=
${
FFMPEG_LIBRARY_DIRS
}
"
"-DLINK_LIBRARIES:STRING=
${
FFMPEG_LIBRARIES
}
"
OUTPUT_VARIABLE TRY_OUT
)
if
(
NOT __VALID_FFMPEG
)
#message(FATAL_ERROR "FFMPEG: test check build log:\n${TRY_OUT}")
message
(
STATUS
"WARNING: Can't build ffmpeg test code"
)
else
()
ocv_append_build_options
(
HIGHGUI FFMPEG
)
endif
()
endif
()
else
()
find_path
(
FFMPEG_INCLUDE_DIR
"libavformat/avformat.h"
PATHS /usr/local /usr /opt
PATH_SUFFIXES include
DOC
"The path to FFMPEG headers"
)
if
(
FFMPEG_INCLUDE_DIR
)
set
(
HAVE_GENTOO_FFMPEG TRUE
)
set
(
FFMPEG_LIB_DIR
"
${
FFMPEG_INCLUDE_DIR
}
/../lib"
CACHE PATH
"Full path of FFMPEG library directory"
)
find_library
(
FFMPEG_CODEC_LIB
"avcodec"
HINTS
"
${
FFMPEG_LIB_DIR
}
"
)
find_library
(
FFMPEG_FORMAT_LIB
"avformat"
HINTS
"
${
FFMPEG_LIB_DIR
}
"
)
find_library
(
FFMPEG_UTIL_LIB
"avutil"
HINTS
"
${
FFMPEG_LIB_DIR
}
"
)
find_library
(
FFMPEG_SWSCALE_LIB
"swscale"
HINTS
"
${
FFMPEG_LIB_DIR
}
"
)
if
(
FFMPEG_CODEC_LIB AND FFMPEG_FORMAT_LIB AND
FFMPEG_UTIL_LIB AND FFMPEG_SWSCALE_LIB
)
set
(
ALIASOF_libavcodec_VERSION
"Unknown"
)
set
(
ALIASOF_libavformat_VERSION
"Unknown"
)
set
(
ALIASOF_libavutil_VERSION
"Unknown"
)
set
(
ALIASOF_libswscale_VERSION
"Unknown"
)
set
(
HAVE_FFMPEG 1
)
endif
()
endif
(
FFMPEG_INCLUDE_DIR
)
if
(
HAVE_FFMPEG
)
set
(
HIGHGUI_LIBRARIES
${
HIGHGUI_LIBRARIES
}
${
FFMPEG_CODEC_LIB
}
${
FFMPEG_FORMAT_LIB
}
${
FFMPEG_UTIL_LIB
}
${
FFMPEG_SWSCALE_LIB
}
)
ocv_include_directories
(
${
FFMPEG_INCLUDE_DIR
}
)
endif
(
HAVE_FFMPEG
)
endif
()
endif
()
else
()
message
(
STATUS
"Can't find ffmpeg - 'pkg-config' utility is missing"
)
endif
()
endif
()
endif
(
WITH_FFMPEG
)
endif
(
WITH_FFMPEG
)
...
...
cmake/OpenCVUtils.cmake
View file @
3d8395ca
...
@@ -278,6 +278,44 @@ macro(OCV_OPTION variable description value)
...
@@ -278,6 +278,44 @@ macro(OCV_OPTION variable description value)
unset
(
__value
)
unset
(
__value
)
endmacro
()
endmacro
()
# Usage: ocv_append_build_options(HIGHGUI FFMPEG)
macro
(
ocv_append_build_options var_prefix pkg_prefix
)
foreach
(
suffix INCLUDE_DIRS LIBRARIES LIBRARY_DIRS
)
if
(
${
pkg_prefix
}
_
${
suffix
}
)
list
(
APPEND
${
var_prefix
}
_
${
suffix
}
${${
pkg_prefix
}
_
${
suffix
}}
)
list
(
REMOVE_DUPLICATES
${
var_prefix
}
_
${
suffix
}
)
endif
()
endforeach
()
endmacro
()
# Usage is similar to CMake 'pkg_check_modules' command
# It additionally controls HAVE_${define} and ${define}_${modname}_FOUND variables
macro
(
ocv_check_modules define
)
unset
(
HAVE_
${
define
}
)
foreach
(
m
${
ARGN
}
)
if
(
m MATCHES
"(.*[^><])(>=|=|<=)(.*)"
)
set
(
__modname
"
${
CMAKE_MATCH_1
}
"
)
else
()
set
(
__modname
"
${
m
}
"
)
endif
()
unset
(
${
define
}
_
${
__modname
}
_FOUND
)
endforeach
()
pkg_check_modules
(
${
define
}
${
ARGN
}
)
if
(
${
define
}
_FOUND
)
set
(
HAVE_
${
define
}
1
)
endif
()
foreach
(
m
${
ARGN
}
)
if
(
m MATCHES
"(.*[^><])(>=|=|<=)(.*)"
)
set
(
__modname
"
${
CMAKE_MATCH_1
}
"
)
else
()
set
(
__modname
"
${
m
}
"
)
endif
()
if
(
NOT DEFINED
${
define
}
_
${
__modname
}
_FOUND AND
${
define
}
_FOUND
)
set
(
${
define
}
_
${
__modname
}
_FOUND 1
)
endif
()
endforeach
()
endmacro
()
# Macros that checks if module have been installed.
# Macros that checks if module have been installed.
# After it adds module to build and define
# After it adds module to build and define
...
...
cmake/checks/ffmpeg_test.cpp
0 → 100644
View file @
3d8395ca
#include <stdlib.h>
extern
"C"
{
#include <libavformat/avformat.h>
#include <libavcodec/avcodec.h>
#include <libswscale/swscale.h>
}
#define CALC_FFMPEG_VERSION(a,b,c) ( a<<16 | b<<8 | c )
static
void
test
()
{
AVFormatContext
*
c
=
0
;
AVCodec
*
avcodec
=
0
;
AVFrame
*
frame
=
0
;
#if LIBAVFORMAT_BUILD >= CALC_FFMPEG_VERSION(52, 111, 0)
int
err
=
avformat_open_input
(
&
c
,
""
,
NULL
,
NULL
);
#else
int
err
=
av_open_input_file
(
&
c
,
""
,
NULL
,
0
,
NULL
);
#endif
}
int
main
()
{
test
();
return
0
;
}
cmake/templates/cvconfig.h.in
View file @
3d8395ca
...
@@ -61,12 +61,6 @@
...
@@ -61,12 +61,6 @@
/* FFMpeg video library */
/* FFMpeg video library */
#cmakedefine HAVE_FFMPEG
#cmakedefine HAVE_FFMPEG
/* ffmpeg's libswscale */
#cmakedefine HAVE_FFMPEG_SWSCALE
/* ffmpeg in Gentoo */
#cmakedefine HAVE_GENTOO_FFMPEG
/* GStreamer multimedia framework */
/* GStreamer multimedia framework */
#cmakedefine HAVE_GSTREAMER
#cmakedefine HAVE_GSTREAMER
...
...
modules/highgui/src/cap_ffmpeg_impl.hpp
View file @
3d8395ca
...
@@ -40,6 +40,9 @@
...
@@ -40,6 +40,9 @@
//
//
//M*/
//M*/
#define HAVE_FFMPEG_SWSCALE
#define HAVE_GENTOO_FFMPEG
#include "cap_ffmpeg_api.hpp"
#include "cap_ffmpeg_api.hpp"
#include <assert.h>
#include <assert.h>
#include <algorithm>
#include <algorithm>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment