Commit e53f1b25 authored by Alexander Alekhin's avatar Alexander Alekhin Committed by GitHub

Merge pull request #9808 from alalek:backport_fixes

(2.4) backport fixes
parents ae52d94c 621a1d3b
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
if(" ${CMAKE_SOURCE_DIR}" STREQUAL " ${CMAKE_BINARY_DIR}") if(" ${CMAKE_SOURCE_DIR}" STREQUAL " ${CMAKE_BINARY_DIR}")
message(FATAL_ERROR " message(FATAL_ERROR "
FATAL: In-source builds are not allowed. FATAL: In-source builds are not allowed.
You should create separate directory for build files. You should create a separate directory for build files.
") ")
endif() endif()
...@@ -77,8 +77,8 @@ ocv_clear_vars(OpenCVModules_TARGETS) ...@@ -77,8 +77,8 @@ ocv_clear_vars(OpenCVModules_TARGETS)
# Break in case of popular CMake configuration mistakes # Break in case of popular CMake configuration mistakes
# ---------------------------------------------------------------------------- # ----------------------------------------------------------------------------
if(NOT CMAKE_SIZEOF_VOID_P GREATER 0) if(NOT CMAKE_SIZEOF_VOID_P GREATER 0)
message(FATAL_ERROR "CMake fails to deterimine the bitness of target platform. message(FATAL_ERROR "CMake fails to determine the bitness of the target platform.
Please check your CMake and compiler installation. If you are crosscompiling then ensure that your CMake toolchain file correctly sets the compiler details.") Please check your CMake and compiler installation. If you are cross-compiling then ensure that your CMake toolchain file correctly sets the compiler details.")
endif() endif()
# ---------------------------------------------------------------------------- # ----------------------------------------------------------------------------
...@@ -189,7 +189,7 @@ OCV_OPTION(BUILD_PACKAGE "Enables 'make package_source' command" ...@@ -189,7 +189,7 @@ OCV_OPTION(BUILD_PACKAGE "Enables 'make package_source' command"
OCV_OPTION(BUILD_PERF_TESTS "Build performance tests" ON IF (NOT IOS) ) OCV_OPTION(BUILD_PERF_TESTS "Build performance tests" ON IF (NOT IOS) )
OCV_OPTION(BUILD_TESTS "Build accuracy & regression tests" ON IF (NOT IOS) ) OCV_OPTION(BUILD_TESTS "Build accuracy & regression tests" ON IF (NOT IOS) )
OCV_OPTION(BUILD_WITH_DEBUG_INFO "Include debug info into debug libs (not MSCV only)" ON ) OCV_OPTION(BUILD_WITH_DEBUG_INFO "Include debug info into debug libs (not MSCV only)" ON )
OCV_OPTION(BUILD_WITH_STATIC_CRT "Enables use of staticaly linked CRT for staticaly linked OpenCV" ON IF MSVC ) OCV_OPTION(BUILD_WITH_STATIC_CRT "Enables use of statically linked CRT for staticaly linked OpenCV" ON IF MSVC )
OCV_OPTION(BUILD_FAT_JAVA_LIB "Create fat java wrapper containing the whole OpenCV library" ON IF NOT BUILD_SHARED_LIBS AND CMAKE_COMPILER_IS_GNUCXX ) OCV_OPTION(BUILD_FAT_JAVA_LIB "Create fat java wrapper containing the whole OpenCV library" ON IF NOT BUILD_SHARED_LIBS AND CMAKE_COMPILER_IS_GNUCXX )
OCV_OPTION(BUILD_ANDROID_SERVICE "Build OpenCV Manager for Google Play" OFF IF ANDROID AND ANDROID_SOURCE_TREE ) OCV_OPTION(BUILD_ANDROID_SERVICE "Build OpenCV Manager for Google Play" OFF IF ANDROID AND ANDROID_SOURCE_TREE )
OCV_OPTION(BUILD_ANDROID_PACKAGE "Build platform-specific package for Google Play" OFF IF ANDROID ) OCV_OPTION(BUILD_ANDROID_PACKAGE "Build platform-specific package for Google Play" OFF IF ANDROID )
......
...@@ -5,8 +5,8 @@ if(UNIX) ...@@ -5,8 +5,8 @@ if(UNIX)
find_package(PkgConfig) find_package(PkgConfig)
endif() endif()
# Search packages for host system instead of packages for target system # Search packages for the host system instead of packages for target system
# in case of cross compilation thess macro should be defined by toolchain file # in case of cross compilation these macros should be defined by the toolchain file
if(NOT COMMAND find_host_package) if(NOT COMMAND find_host_package)
macro(find_host_package) macro(find_host_package)
find_package(${ARGN}) find_package(${ARGN})
...@@ -82,7 +82,7 @@ macro(ocv_check_environment_variables) ...@@ -82,7 +82,7 @@ macro(ocv_check_environment_variables)
endforeach() endforeach()
endmacro() endmacro()
# adds include directories in such way that directories from the OpenCV source tree go first # adds include directories in such a way that directories from the OpenCV source tree go first
function(ocv_include_directories) function(ocv_include_directories)
set(__add_before "") set(__add_before "")
foreach(dir ${ARGN}) foreach(dir ${ARGN})
...@@ -337,7 +337,7 @@ macro(ocv_check_modules define) ...@@ -337,7 +337,7 @@ macro(ocv_check_modules define)
endmacro() endmacro()
# Macros that checks if module have been installed. # Macro that checks if module has been installed.
# After it adds module to build and define # After it adds module to build and define
# constants passed as second arg # constants passed as second arg
macro(CHECK_MODULE module_name define) macro(CHECK_MODULE module_name define)
...@@ -526,7 +526,7 @@ macro(ocv_list_add_suffix LST SUFFIX) ...@@ -526,7 +526,7 @@ macro(ocv_list_add_suffix LST SUFFIX)
endmacro() endmacro()
# gets and removes the first element from list # gets and removes the first element from the list
macro(ocv_list_pop_front LST VAR) macro(ocv_list_pop_front LST VAR)
if(${LST}) if(${LST})
list(GET ${LST} 0 ${VAR}) list(GET ${LST} 0 ${VAR})
......
...@@ -14,6 +14,6 @@ endif() ...@@ -14,6 +14,6 @@ endif()
set(OPENCV_SOVERSION "${OPENCV_VERSION_MAJOR}.${OPENCV_VERSION_MINOR}") set(OPENCV_SOVERSION "${OPENCV_VERSION_MAJOR}.${OPENCV_VERSION_MINOR}")
set(OPENCV_LIBVERSION "${OPENCV_VERSION_MAJOR}.${OPENCV_VERSION_MINOR}.${OPENCV_VERSION_PATCH}") set(OPENCV_LIBVERSION "${OPENCV_VERSION_MAJOR}.${OPENCV_VERSION_MINOR}.${OPENCV_VERSION_PATCH}")
# create a dependency on version file # create a dependency on the version file
# we never use output of the following command but cmake will rerun automatically if the version file changes # we never use the output of the following command but cmake will rerun automatically if the version file changes
configure_file("${OPENCV_VERSION_FILE}" "${CMAKE_BINARY_DIR}/junk/version.junk" COPYONLY) configure_file("${OPENCV_VERSION_FILE}" "${CMAKE_BINARY_DIR}/junk/version.junk" COPYONLY)
...@@ -219,6 +219,14 @@ foreach(__cvcomponent ${OpenCV_FIND_COMPONENTS}) ...@@ -219,6 +219,14 @@ foreach(__cvcomponent ${OpenCV_FIND_COMPONENTS})
string(TOUPPER "${__cvcomponent}" __cvcomponent) string(TOUPPER "${__cvcomponent}" __cvcomponent)
set(${__cvcomponent}_FOUND 1) set(${__cvcomponent}_FOUND 1)
endif() endif()
# OpenCV supports Debug and Release only.
# RelWithDebInfo and MinSizeRel are mapped to Release
if(TARGET ${__cvcomponent})
set_target_properties(${__cvcomponent} PROPERTIES
MAP_IMPORTED_CONFIG_MINSIZEREL "Release"
MAP_IMPORTED_CONFIG_RELWITHDEBINFO "Release"
)
endif()
endforeach() endforeach()
set(OpenCV_FIND_COMPONENTS ${OpenCV_FIND_COMPONENTS_}) set(OpenCV_FIND_COMPONENTS ${OpenCV_FIND_COMPONENTS_})
......
...@@ -31,7 +31,7 @@ Aligns a buffer size to the specified number of bytes. ...@@ -31,7 +31,7 @@ Aligns a buffer size to the specified number of bytes.
:param n: Alignment size that must be a power of two. :param n: Alignment size that must be a power of two.
The function returns the minimum number that is greater or equal to ``sz`` and is divisible by ``n`` : The function returns the minimum number that is greater than or equal to ``sz`` and is divisible by ``n`` :
.. math:: .. math::
...@@ -363,7 +363,7 @@ Always returns 0 if called outside of parallel region. ...@@ -363,7 +363,7 @@ Always returns 0 if called outside of parallel region.
.. ocv:function:: int getThreadNum() .. ocv:function:: int getThreadNum()
The exact meaning of return value depends on the threading framework used by OpenCV library: The exact meaning of the return value depends on the threading framework used by OpenCV library:
* **TBB** – Unsupported with current 4.1 TBB release. May be will be supported in future. * **TBB** – Unsupported with current 4.1 TBB release. May be will be supported in future.
* **OpenMP** – The thread number, within the current team, of the calling thread. * **OpenMP** – The thread number, within the current team, of the calling thread.
...@@ -450,7 +450,7 @@ This operation is used in the simplest or most complex image processing function ...@@ -450,7 +450,7 @@ This operation is used in the simplest or most complex image processing function
setNumThreads setNumThreads
----------------- -----------------
OpenCV will try to set the number of threads for the next parallel region. OpenCV will try to set the number of threads for the next parallel region.
If ``threads == 0``, OpenCV will disable threading optimizations and run all it's If ``threads == 0``, OpenCV will disable threading optimizations and run all its
functions sequentially. Passing ``threads < 0`` will reset threads number to system default. functions sequentially. Passing ``threads < 0`` will reset threads number to system default.
This function must be called outside of parallel region. This function must be called outside of parallel region.
...@@ -458,14 +458,14 @@ This function must be called outside of parallel region. ...@@ -458,14 +458,14 @@ This function must be called outside of parallel region.
:param nthreads: Number of threads used by OpenCV. :param nthreads: Number of threads used by OpenCV.
OpenCV will try to run it's functions with specified threads number, but OpenCV will try to run its functions with specified threads number, but
some behaviour differs from framework: some behaviour differs from framework:
* **TBB** – User-defined parallel constructions will run with the same threads number, * **TBB** – User-defined parallel constructions will run with the same threads number,
if another does not specified. If late on user creates own scheduler, OpenCV will be use it. if another is not specified. If late on user creates his own scheduler, OpenCV will be use it.
* **OpenMP** – No special defined behaviour. * **OpenMP** – No special defined behaviour.
* **Concurrency** – If ``threads == 1``, OpenCV will disable threading optimizations * **Concurrency** – If ``threads == 1``, OpenCV will disable threading optimizations
and run it's functions sequentially. and run its functions sequentially.
* **GCD** – Supports only values <= 0. * **GCD** – Supports only values <= 0.
* **C=** – No special defined behaviour. * **C=** – No special defined behaviour.
......
...@@ -241,7 +241,7 @@ endif(HAVE_INTELPERC) ...@@ -241,7 +241,7 @@ endif(HAVE_INTELPERC)
if(IOS) if(IOS)
add_definitions(-DHAVE_IOS=1) add_definitions(-DHAVE_IOS=1)
list(APPEND highgui_srcs src/ios_conversions.mm src/cap_ios_abstract_camera.mm src/cap_ios_photo_camera.mm src/cap_ios_video_camera.mm) list(APPEND highgui_srcs src/ios_conversions.mm src/cap_ios_abstract_camera.mm src/cap_ios_photo_camera.mm src/cap_ios_video_camera.mm)
list(APPEND HIGHGUI_LIBRARIES "-framework Accelerate" "-framework AVFoundation" "-framework CoreGraphics" "-framework CoreMedia" "-framework CoreVideo" "-framework QuartzCore" "-framework AssetsLibrary") list(APPEND HIGHGUI_LIBRARIES "-framework Accelerate" "-framework AVFoundation" "-framework CoreGraphics" "-framework CoreMedia" "-framework CoreVideo" "-framework QuartzCore" "-framework UIKit")
endif() endif()
if(WIN32) if(WIN32)
......
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
#import "opencv2/highgui/cap_ios.h" #import "opencv2/highgui/cap_ios.h"
#include "precomp.hpp" #include "precomp.hpp"
#import <AssetsLibrary/AssetsLibrary.h> #import <UIKit/UIKit.h>
static CGFloat DegreesToRadians(CGFloat degrees) {return degrees * M_PI / 180;}; static CGFloat DegreesToRadians(CGFloat degrees) {return degrees * M_PI / 180;};
...@@ -595,11 +595,7 @@ static CGFloat DegreesToRadians(CGFloat degrees) {return degrees * M_PI / 180;}; ...@@ -595,11 +595,7 @@ static CGFloat DegreesToRadians(CGFloat degrees) {return degrees * M_PI / 180;};
return; return;
} }
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init]; UISaveVideoAtPathToSavedPhotosAlbum([self videoFileString], nil, nil, NULL);
if ([library videoAtPathIsCompatibleWithSavedPhotosAlbum:[self videoFileURL]]) {
[library writeVideoAtPathToSavedPhotosAlbum:[self videoFileURL]
completionBlock:^(NSURL *assetURL, NSError *error){ (void)assetURL; (void)error; }];
}
} }
......
...@@ -367,6 +367,9 @@ decode_rle4_bad: ; ...@@ -367,6 +367,9 @@ decode_rle4_bad: ;
gray_palette[code] ); gray_palette[code] );
line_end_flag = y - prev_y; line_end_flag = y - prev_y;
if( y >= m_height )
break;
} }
else if( code > 2 ) // absolute mode else if( code > 2 ) // absolute mode
{ {
...@@ -470,8 +473,10 @@ decode_rle8_bad: ; ...@@ -470,8 +473,10 @@ decode_rle8_bad: ;
if( !color ) if( !color )
icvCvt_BGRA2Gray_8u_C4C1R( src, 0, data, 0, cvSize(m_width,1) ); icvCvt_BGRA2Gray_8u_C4C1R( src, 0, data, 0, cvSize(m_width,1) );
else else if( img.channels() == 3 )
icvCvt_BGRA2BGR_8u_C4C3R( src, 0, data, 0, cvSize(m_width,1) ); icvCvt_BGRA2BGR_8u_C4C3R(src, 0, data, 0, cvSize(m_width, 1));
else if( img.channels() == 4 )
memcpy(data, src, m_width * 4);
} }
result = true; result = true;
break; break;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment