fixed build for CARMA:

* added CMake toolchain file
* added WITH_NVCUVID flag
This commit is contained in:
Vladislav Vinogradov
2012-12-20 16:19:14 +04:00
parent 11293d071f
commit 2f1ca1b6b3
21 changed files with 127 additions and 111 deletions

View File

@@ -46,19 +46,16 @@ if (HAVE_CUDA)
set(cuda_link_libs ${CUDA_LIBRARIES} ${CUDA_npp_LIBRARY})
if(NOT APPLE)
unset(CUDA_nvcuvid_LIBRARY CACHE)
find_cuda_helper_libs(nvcuvid)
if(WITH_NVCUVID)
set(cuda_link_libs ${cuda_link_libs} ${CUDA_nvcuvid_LIBRARY})
endif()
if(WIN32)
unset(CUDA_nvcuvenc_LIBRARY CACHE)
find_cuda_helper_libs(nvcuvenc)
set(cuda_link_libs ${cuda_link_libs} ${CUDA_nvcuvenc_LIBRARY})
endif()
if(NOT APPLE AND WITH_FFMPEG)
if(WITH_FFMPEG)
set(cuda_link_libs ${cuda_link_libs} ${HIGHGUI_LIBRARIES})
endif()
else()

View File

@@ -0,0 +1,10 @@
set(CMAKE_SYSTEM_NAME Linux)
SET(CMAKE_SYSTEM_VERSION 1)
set(CMAKE_C_COMPILER /usr/bin/arm-linux-gnueabi-gcc-4.5)
set(CMAKE_CXX_COMPILER /usr/bin/arm-linux-gnueabi-g++-4.5)
SET(CMAKE_FIND_ROOT_PATH /usr/arm-linux-gnueabi)
set(CARMA 1)
add_definitions(-DCARMA)

View File

@@ -1,7 +1,7 @@
#include "cuvid_video_source.h"
#include "cu_safe_call.h"
#if defined(HAVE_CUDA) && !defined(__APPLE__)
#if defined(HAVE_CUDA) && defined(HAVE_NVCUVID)
cv::gpu::detail::CuvidVideoSource::CuvidVideoSource(const std::string& fname)
{

View File

@@ -45,7 +45,7 @@
#include "precomp.hpp"
#if defined(HAVE_CUDA) && !defined(__APPLE__)
#if defined(HAVE_CUDA) && defined(HAVE_NVCUVID)
namespace cv { namespace gpu
{

View File

@@ -42,7 +42,7 @@
#include "ffmpeg_video_source.h"
#if defined(HAVE_CUDA) && !defined(__APPLE__)
#if defined(HAVE_CUDA) && defined(HAVE_NVCUVID)
#if defined(HAVE_FFMPEG) && defined(BUILD_SHARED_LIBS)
#include "cap_ffmpeg_impl.hpp"

View File

@@ -46,7 +46,7 @@
#include "precomp.hpp"
#include "thread_wrappers.h"
#if defined(HAVE_CUDA) && !defined(__APPLE__)
#if defined(HAVE_CUDA) && defined(HAVE_NVCUVID)
struct InputMediaStream_FFMPEG;

View File

@@ -42,7 +42,7 @@
#include "frame_queue.h"
#if defined(HAVE_CUDA) && !defined(__APPLE__)
#if defined(HAVE_CUDA) && defined(HAVE_NVCUVID)
cv::gpu::detail::FrameQueue::FrameQueue() :
endOfDecode_(0),

View File

@@ -46,7 +46,7 @@
#include "precomp.hpp"
#include "thread_wrappers.h"
#if defined(HAVE_CUDA) && !defined(__APPLE__)
#if defined(HAVE_CUDA) && defined(HAVE_NVCUVID)
namespace cv { namespace gpu
{

View File

@@ -97,12 +97,12 @@
#include <cublas.h>
#endif
#ifndef __APPLE__
#ifdef HAVE_NVCUVID
#include <nvcuvid.h>
#endif
#ifdef WIN32
#include <NVEncoderAPI.h>
#ifdef WIN32
#include <NVEncoderAPI.h>
#endif
#endif
#include "internal_shared.hpp"

View File

@@ -42,7 +42,7 @@
#include "thread_wrappers.h"
#if defined(HAVE_CUDA) && !defined(__APPLE__)
#if defined(HAVE_CUDA) && defined(HAVE_NVCUVID)
#ifdef WIN32
#define NOMINMAX

View File

@@ -45,7 +45,7 @@
#include "precomp.hpp"
#if defined(HAVE_CUDA) && !defined(__APPLE__)
#if defined(HAVE_CUDA) && defined(HAVE_NVCUVID)
namespace cv { namespace gpu
{

View File

@@ -43,7 +43,7 @@
#include "video_decoder.h"
#include "frame_queue.h"
#if defined(HAVE_CUDA) && !defined(__APPLE__)
#if defined(HAVE_CUDA) && defined(HAVE_NVCUVID)
void cv::gpu::detail::VideoDecoder::create(const VideoReader_GPU::FormatInfo& videoFormat)
{

View File

@@ -46,7 +46,7 @@
#include "precomp.hpp"
#include "cu_safe_call.h"
#if defined(HAVE_CUDA) && !defined(__APPLE__)
#if defined(HAVE_CUDA) && defined(HAVE_NVCUVID)
namespace cv { namespace gpu
{

View File

@@ -43,7 +43,7 @@
#include "video_parser.h"
#include "cu_safe_call.h"
#if defined(HAVE_CUDA) && !defined(__APPLE__)
#if defined(HAVE_CUDA) && defined(HAVE_NVCUVID)
cv::gpu::detail::VideoParser::VideoParser(VideoDecoder* videoDecoder, FrameQueue* frameQueue) :
videoDecoder_(videoDecoder), frameQueue_(frameQueue), unparsedPackets_(0), hasError_(false)

View File

@@ -48,7 +48,7 @@
#include "frame_queue.h"
#include "video_decoder.h"
#if defined(HAVE_CUDA) && !defined(__APPLE__)
#if defined(HAVE_CUDA) && defined(HAVE_NVCUVID)
namespace cv { namespace gpu
{

View File

@@ -42,7 +42,7 @@
#include "precomp.hpp"
#if !defined HAVE_CUDA || defined(CUDA_DISABLER) || defined(__APPLE__)
#if !defined(HAVE_CUDA) || defined(CUDA_DISABLER) || !defined(HAVE_NVCUVID)
class cv::gpu::VideoReader_GPU::Impl
{

View File

@@ -42,7 +42,7 @@
#include "precomp.hpp"
#if !defined HAVE_CUDA || defined(CUDA_DISABLER) || !defined(WIN32)
#if !defined(HAVE_CUDA) || defined(CUDA_DISABLER) || !defined(HAVE_NVCUVID) || !defined(WIN32)
class cv::gpu::VideoWriter_GPU::Impl
{
@@ -1001,4 +1001,4 @@ void cv::gpu::VideoWriter_GPU::EncoderParams::save(const std::string& configFile
cv::write(fs, "DisableSPSPPS" , DisableSPSPPS);
}
#endif // !defined HAVE_CUDA || !defined WIN32
#endif // !defined HAVE_CUDA || !defined WIN32

View File

@@ -41,7 +41,47 @@
#include "test_precomp.hpp"
#ifdef HAVE_CUDA
#if defined(HAVE_CUDA) && defined(HAVE_NVCUVID)
//////////////////////////////////////////////////////
// VideoReader
PARAM_TEST_CASE(VideoReader, cv::gpu::DeviceInfo, std::string)
{
cv::gpu::DeviceInfo devInfo;
std::string inputFile;
virtual void SetUp()
{
devInfo = GET_PARAM(0);
inputFile = GET_PARAM(1);
cv::gpu::setDevice(devInfo.deviceID());
inputFile = std::string(cvtest::TS::ptr()->get_data_path()) + "video/" + inputFile;
}
};
GPU_TEST_P(VideoReader, Regression)
{
cv::gpu::VideoReader_GPU reader(inputFile);
ASSERT_TRUE(reader.isOpened());
cv::gpu::GpuMat frame;
for (int i = 0; i < 10; ++i)
{
ASSERT_TRUE(reader.read(frame));
ASSERT_FALSE(frame.empty());
}
reader.close();
ASSERT_FALSE(reader.isOpened());
}
INSTANTIATE_TEST_CASE_P(GPU_Video, VideoReader, testing::Combine(
ALL_DEVICES,
testing::Values(std::string("768x576.avi"), std::string("1920x1080.avi"))));
//////////////////////////////////////////////////////
// VideoWriter
@@ -109,48 +149,4 @@ INSTANTIATE_TEST_CASE_P(GPU_Video, VideoWriter, testing::Combine(
#endif // WIN32
//////////////////////////////////////////////////////
// VideoReader
#ifdef HAVE_NVCUVID
PARAM_TEST_CASE(VideoReader, cv::gpu::DeviceInfo, std::string)
{
cv::gpu::DeviceInfo devInfo;
std::string inputFile;
virtual void SetUp()
{
devInfo = GET_PARAM(0);
inputFile = GET_PARAM(1);
cv::gpu::setDevice(devInfo.deviceID());
inputFile = std::string(cvtest::TS::ptr()->get_data_path()) + "video/" + inputFile;
}
};
GPU_TEST_P(VideoReader, Regression)
{
cv::gpu::VideoReader_GPU reader(inputFile);
ASSERT_TRUE(reader.isOpened());
cv::gpu::GpuMat frame;
for (int i = 0; i < 10; ++i)
{
ASSERT_TRUE(reader.read(frame));
ASSERT_FALSE(frame.empty());
}
reader.close();
ASSERT_FALSE(reader.isOpened());
}
INSTANTIATE_TEST_CASE_P(GPU_Video, VideoReader, testing::Combine(
ALL_DEVICES,
testing::Values(std::string("768x576.avi"), std::string("1920x1080.avi"))));
#endif // HAVE_NVCUVID
#endif // HAVE_CUDA
#endif // defined(HAVE_CUDA) && defined(HAVE_NVCUVID)