Coder Social home page Coder Social logo

stitchem / stitchem Goto Github PK

View Code? Open in Web Editor NEW
265.0 37.0 63.0 7.44 MB

Vahana VR & VideoStitch Studio: software to create immersive 360° VR video, live and in post-production

License: MIT License

CMake 3.42% C++ 77.21% C 7.51% Cuda 5.10% Shell 0.37% Inno Setup 0.16% Batchfile 0.01% GLSL 0.02% Makefile 0.01% Python 5.05% TeX 0.07% LLVM 0.04% Yacc 0.04% Smarty 0.05% Gherkin 0.70% Dockerfile 0.01% SWIG 0.25%
360-video video-stitching video-streaming panoramic-camera gpu-acceleration vr-video

stitchem's Introduction

License Build

Vahana VR & VideoStitch Studio: software to create immersive 360° VR video, live and in post-production.

The software was originally developed by VideoStitch SAS. After the company folded in early 2018, the source code was acquired by the newly founded non-profit organization stitchEm, to publish it under a free software license.

Vahana VR

Vahana VR is a camera-rig independent real-time 360° VR video stitching software.

With Vahana VR you can capture multiple video streams, stitch them instantly into a single 360°×180° video file, preview the result in real-time and stream it to any 360° video player or compatible platform.

Vahana VR supports range of video capture and output hardware, including Decklink SDI cards from BlackMagic Design, and HDMI capture cards from Magewell, Ximea cameras and RTMP network broadcasting.

Screenshot Vahana VR

VideoStitch Studio

VideoStitch Studio is a post-production video stitching software that enables you to create immersive 360° VR videos. It takes video files and stitches them into a standard 360° video file automatically.

VideoStitch Studio supports input synchronization, automatic calibration, exposure and color correction, video stabilisation and a range of different output formats.

Screenshot VideoStitch Studio

Orah 4i

The Orah 4i is a camera with 4 fisheye lenses designed for live 4K 360° Video streaming. Information on setting up the camera is found in a the dedicated camorah respository.

Usage & Community

The VideoStitch Studio User Guide describes the stitching workflow using the software in detail.

If you need help getting started, have an idea for improvements or want to help develop the software, come join the VideoStitch Studio Users group on Facebook.

Technical issues can be directly reported on GitHub.

Download

Builds of Vahana VR and VideoStitch Studio for Windows and macOS can be downloaded in the release section.

Build

The software can be built on Windows, macOS and Linux. Not all features are available on all platforms. See doc/BUILD.md for details.

License

The stitchEm project is licensed under the terms of the MIT License.

The repository includes several third-party open source files, which are licensed under their own respective licenses. They are listed in doc/LICENSE-3RD-PARTY-SOURCES.md.

The stitchEm software uses code from third-party libraries, listed in doc/LICENSE-3RD-PARTY-LIBRARIES.md.

stitchem's People

Contributors

arpu avatar heptaset avatar jeremad avatar keven-ma avatar klem23 avatar w-m avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

stitchem's Issues

igfx_s3dcontrol.h not found error.

When windows build project, It happen 'igfx_s3dcontrol.h not found error'.

I think it is Intel media SDK version issue.

Is it OK? what version to use??

Vahana and Orah 4i

how can I connect to Vahana directly by Orah 4i camera, and its four H264 streams grab directly through RJ45? it's the same ex company, isn't it in the source code?

Distinguish between no compatible GPU found and no GPU backend built

The device detection defaults to FrameworkStatus::NoCompatibleDevice if the backend is not built, both for CUDA and OpenCL.

As both Framework Statuses are now the same, Vahana VR will default to CUDA and then print an error that no CUDA compatible device was found.

This doesn't make any sense in cases where only OpenCL support was built, and no CUDA support was built. The framework status of not-having-the-backend should have a higher error code than no-device, and the app should finally show a message about no OpenCL device being found.

cropInputTest fails on Travis/Linux

https://travis-ci.org/stitchEm/stitchEm/jobs/528169517

52/59 Test #84: cropInputTest ....................***Failed    0.05 sec
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
qt.qpa.screen: QXcbConnection: Could not connect to display 
Could not connect to any X display.
Failed to initialize NVML: Unknown Error
Host allocated memory:
Device allocated memory:
Failed to shutdown NVML: Unknown Error
Host CUDA allocated memory:
Device CUDA allocated memory:

Not sure if the X display error is related - all the Qt tests are passing. It's passing on Travis/Mac as well.

Failed to initialize NVML: Unknown Error is also expected with no GPU present I think, without being the reason to fail the test.

Vahana VR cancel button is a broom

Cancel button should be a cross instead. See log window. You've got the broom in the bottom right to clean the output. And you got the broom again on the top right to close the window.

DirUtilsTest failing on Travis/Linux

https://travis-ci.org/stitchEm/stitchEm/jobs/528169517

46/59 Test #60: DirUtilsTest .....................***Failed    0.03 sec
Failed to initialize NVML: Unknown Error
[Status] [output] Runtime error: Error creating folder /root/.local/share/VideoStitch, No such file or directory
TEST FAILED: Error creating folder /root/.local/share/VideoStitch, No such file or directory
Error: signal 6:
/stitchEm/build/bin/x64/release/DirUtilsTest(+0x3091)[0x563177541091]
/lib/x86_64-linux-gnu/libc.so.6(+0x3ef20)[0x7fc60b463f20]
/lib/x86_64-linux-gnu/libpthread.so.0(raise+0xc7)[0x7fc60bdc9727]
/stitchEm/build/bin/x64/release/DirUtilsTest(+0x4c27)[0x563177542c27]
/stitchEm/build/bin/x64/release/DirUtilsTest(+0x2f0a)[0x563177540f0a]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xe7)[0x7fc60b446b97]
/stitchEm/build/bin/x64/release/DirUtilsTest(+0x2f7a)[0x563177540f7a]
Host allocated memory:
Device allocated memory:
Failed to shutdown NVML: Unknown Error
Host CUDA allocated memory:
Device CUDA allocated memory:

DirUtilsTest tests the cache directory infra for OpenCL kernel caching. Needs an update to the dockerfile to be allowed to write to /root/.local/share/VideoStitch?

Speed up homebrew install on Travis/Mac

Travis Mac builder spends ~13 of 19 minutes build time (see e.g. https://travis-ci.org/stitchEm/stitchEm/builds/526026548) on downloading homebrew, updating homebrew and installing the deps.

I tried adding the HomeBrew cache directory to the osx matrix: https://github.com/stitchEm/stitchEm/tree/w-m/brew-cache

Output in the build:

adding /Users/travis/Library/Caches/Homebrew to cache
Homebrew is not yet cached
...
==> `brew cleanup` has not been run in 30 days, running now...

Doesn't seem to work - shouldn't brew cleanup have been run before_cache?

Is it legal to put the cache line inside the matrix/include in Travis, does it get added to the global cache: ccache?

sample videos dataset

can anyone provide some sample videos datasets?I don't have the equipment to get videos that can stitch together。

Crash when importing files with mono audio

When creating a new project or dragging video files and dropping them into the drop pane causes the app to crash. I'm using 2 video files in an attempt to create a 180 equilatriangular video. If I select only 1 of the 2 videos in the New Project flow it imports than I can use the File -> Open Media to add the other video.

However I have a 2nd set of videos that I have tried this same workaround but it doesn't work, I have to import the same video from my first set and then I can Open Media to add the videos from the 2nd set. The issue with this is now I have 3 videos and there doesn't appear to be a way to remove the video from the 1st set.

I've attached a screenshot to show what I mean, the 1st video is from the 1st set and the only way I'm able to import is the other 2 is if I 1st import the 1st one when a new project is created and then I use the Open Media menu to add the other 2 but I don't see a way to remove the 1st one.

Screen Shot 2019-12-04 at 10 08 03 PM

Mac OS 10.14.6 (Mojave)

Terminal output:
/Users/michaelweiland/Documents/Development/stitchEm/build/bin/x64/release/Studio/videostitch-studio ; exit;
Michaels-MacBook-Pro:~ michaelweiland$ /Users/michaelweiland/Documents/Development/stitchEm/build/bin/x64/release/Studio/videostitch-studio ; exit;
objc[48976]: Class FIFinderSyncExtensionHost is implemented in both /System/Library/PrivateFrameworks/FinderKit.framework/Versions/A/FinderKit (0x7fffa34513d8) and /System/Library/PrivateFrameworks/FileProvider.framework/OverrideBundles/FinderSyncCollaborationFileProviderOverride.bundle/Contents/MacOS/FinderSyncCollaborationFileProviderOverride (0x1222b3f50). One of the two will be used. Which one is undefined.
QObject::connect: No such slot PostProdStitcherController::setDisplayGrid(bool)
QObject::connect: No such signal PostProdProjectDefinition::reqReextract(SignalCompressionCaps*)
.Missing field 'rig' for BaseProjectDefinition.
[ambisonic] Decoder bad coefficients given for stereo
Missing mandatory field 'video_codec' for object Ptv.
QAbstractOpenGLTexture::setMipLevels(): This texture target does not support mipmaps
[AudioPlayer] Audio data is not being fed to the audio device at a fast enough rate, cannot play audio.
Missing field 'rig' for BaseProjectDefinition.
[Status] [audio pipeline configuration] Invalid configuration: No audio processor definition found
[ambisonic] Decoder bad coefficients given for stereo
QOpenGLTexture::setData() tried to set a null image
QGLShader::compile(Vertex): ERROR: 0:1: '' : version '330' is not supported

QObject::connect: No such slot PostProdStitcherController::setDisplayGrid(bool)
QObject::connect: No such signal PostProdProjectDefinition::reqReextract(SignalCompressionCaps*)
Missing field 'rig' for BaseProjectDefinition.
[ambisonic] Decoder bad coefficients given for stereo
Missing mandatory field 'video_codec' for object Ptv.
Segmentation fault: 11
logout
Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.

[Process completed]

Building from source on macOS

Hi all,
Sorry in advance for this but I can't build this.
I was a VideoStitch studio customer and I'm just trying to pick up where I left off as a stitcher not a coder. I've installed the GUI version of CMAKE and tried to compile there but get errors building.

CMake Error at /Applications/CMake.app/Contents/share/cmake-3.15/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
  Could NOT find PNG (missing: PNG_LIBRARY) (found version "1.4.12")

I appreciate there are numerous external dependencies but is there any prospect of this being packaged up for folk like me?

Many thanks and sorry for the low level skills issues!

Steve

Vahana VR HDD output setting broken

Open Vahana VR 2.4.0, create a new project, add 4 test inputs (default), add HDD output with default settings (hdd_export.vah.zip).

Enable HDD output and watch the log, these lines are continuously repeated:

[2020/05/03 13:04:33] [libavoutput] failed to re-instanciate LibavWriter implementation.
[2020/05/03 13:04:33] [libavoutput] LibavWriter : no implementation is instanciated

No output file is created.

Create Mac Studio app package

  • adapt make_dmg_functions.sh to work with MacPorts binaries (rpath?)
  • adapt make_dmg_functions.sh to work with HomeBrew binaries (rpath?)
  • disable codesign (stitchEm is not eligible for to get the membership fees of the Apple Developer Program waived)
  • create library license page
  • create menu / help entry linking to license page
  • create release on GitHub, upload .dmg
  • automatically push .dmg to GitHub from Travis?

VR180 stereo

Hi, first of all. Great project! Thanks so much for making it open source.
I want to use vahana for live previewing VR180 3D videos.
I have two cameras facing the same direction. get a pair of circular fisheye images. Instead of stitching them I want to make stereo 180° x 180° video and live preview it in oculus rift. Is vahana ok for this?

Support OpenCV 4 on macOS with MacPorts

The OpenCV 4.1.1 that comes pre-installed on the Jetson Nano does not have the old CV_XYZ constants anymore, see #59. Checking with findContours, they were used in OpenCV 2.4, but from OpenCV 3.0 they changed to the namespaced cv::XYZ.

TODO:

  • have a builder with OpenCV 4
  • change constants to namespaced versions
  • require minimum OpenCV 3 in CMake
  • support with the macOS MacPorts build

WIN10 installation?

Hi! I found the link to stitchEm in FB group of 360° videographers, but no one know how to compile it and make running on WIN10. Any hint? Thank you in advance

CUDA API Error

I try to show input Sources in Vahana VR.
Error occur and screen is black.

Here is error code. I had already install CUDA10.0.

C:\Users\buildbot\Works\buildbot-slave\windows_all\VideoStitch-all\lib\src\cuda/error.hpp(39) : CUDA Runtime API error 8:invalid device function

src/core1/cupanoRemmaper.cu(127) : CUDA Runtime API error 18:invalid texture reference

stitchingWindowTest is failing on Travis

The problem is probably that the VMs used don't have a stitching compatible GPU. It's a situation in which any of the apps would refuse to launch anyways. But this UI test shouldn't depend on the build hardware.

Error on Mac:

https://travis-ci.org/stitchEm/stitchEm/jobs/528169509

********* Start testing of VideostitchTestStitchingWindow *********
Config: Using QtTest library 5.12.3, Qt 5.12.3 (x86_64-little_endian-lp64 shared (dynamic) release build; by Clang 10.0.0 (clang-1000.11.45.5) (Apple))
PASS   : VideostitchTestStitchingWindow::initTestCase()
FAIL!  : VideostitchTestStitchingWindow::testStitchingWindow() 'validDevices.size() <= devCount' returned FALSE. ()
   Loc: [../apps/src/tests/stitchingWindowTest/stitchingWindowTest.cpp(51)]
PASS   : VideostitchTestStitchingWindow::cleanupTestCase()
Totals: 2 passed, 1 failed, 0 skipped, 0 blacklisted, 7ms
********* Finished testing of VideostitchTestStitchingWindow *********
Host OpenCL allocated memory:
Device OpenCL allocated memory:

Error on Linux:

https://travis-ci.org/stitchEm/stitchEm/jobs/528169517

QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
qt.qpa.screen: QXcbConnection: Could not connect to display 
Could not connect to any X display.
Failed to initialize NVML: Unknown Error
Host allocated memory:
Device allocated memory:
Failed to shutdown NVML: Unknown Error
Host CUDA allocated memory:
Device CUDA allocated memory:

Original VideoStitch Software

Hello! I know this is a long shot, but thought I'd ask since it seems the Windows version of this isn't ready yet.
A few years back I purchased a license for VideoStitch Studio V2. Earlier this year I had to reformat my harddrive, and when I went to reinstall the software the license no longer validated and that's when I learned the company had gone under.
Does anyone know of a way to get my validation code working again? (I still have the original purchase email if needed for verification purposes)
I just shot a 360 interview a few days ago, and if I can get this working again, it will save me a TON of time.

Mac cmake errors

I bypassed the openAl in the install script and have everything else installed. However, when I attempt to do the cmake command I'm getting an error.

cmake -DGPU_BACKEND_CUDA=OFF -DGPU_BACKEND_OPENCL=ON -DQt5_DIR=~/Qt/qt_/5.9.8/clang_64/lib/cmake/Qt5 -DCMAKE_BUILD_TYPE=Release -G Ninja ../../stitchEm

-- Studio version: Studio-v0.0.9-31-g20693a5-master.2019-08-29
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
librtmp
linked by target "rtmpPlugin" in directory /Users/michaelweiland/Documents/Development/stitchEm/IO/src/rtmp

-- Configuring incomplete, errors occurred!

I've attached the error log.

Macbook Pro running 10.14.6 (Mojave), Xcode 11.2.1

Thanks,

Mike

CMakeError.log

Automatically build & install Windows deps

Windows doesn't have a system-wide package manager for the installation of the library/build dependencies. At VideoStitch, the required packages were manually built and distributed as binaries, a process which we can't replicate for the open source project.

This ticket tracks the progress of automatically installing the required deps on a Windows 10 environment.

The ultimate goal is to have an automatic Windows build. Perhaps on AppVeyor?

https://www.appveyor.com/docs/windows-images-software/

Build deps:

Package Notes
Visual Studio 2013
Qt
CUDA
Python 2.7
CMake
Ninja Not required, could use cmake --build w/ Visual Studio project
Flex
bison
Swig Optional
Doxygen Optional

lib deps:

Name Notes
libpng
opencv2
CL OpenCL only
clangcl OpenCL only
eigen
ceres
r8b Already using FetchContent

I/O:

Name Notes
ffmpeg
portaudio
lame
x264
libtiff
aja
ladybug removed (outdated)
magewell
magewellPro
teledyne removed (license)
Ximea
yuan removed (outdated)
librtmp
libjpeg
decklink
ptgrey remove (outdated)
nginx_rtmp sbox and local streaming test
Intel_Media_SDK
faac
faad
nvenc
v4l2 video 4 linux ver2 (linux only)

Apps:

Name Notes
vlc Probably no longer required (dep for VideoStitch Player)
OculusSDK
openvr
jsoncpp
googleapis
json
glog

Not sure:

Name Notes
GL
Sapera
QCAP
gflags
curl
openssl

Build Problem on Fedora 30 opencv libs not found

1/479] cd /home/arpu/Work/githubsources/stitchEm/lib && ls /home/arpu/Work/githubsources/stitchEm/generated_headers/version.hpp
/home/arpu/Work/githubsources/stitchEm/generated_headers/version.hpp
[2/479] Linking CXX executable bin/x64/release/calibrationimport
FAILED: bin/x64/release/calibrationimport 
: && /usr/bin/c++  -Wall -Wextra -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-function -Wno-missing-field-initializers -O2 -DNDEBUG   lib/samples/calibrationimport/CMakeFiles/calibrationimport.dir/calibrationimport.cpp.o  -o bin/x64/release/calibrationimport  -Wl,-rpath,/home/arpu/Work/githubsources/stitchEm/bin/x64/release bin/x64/release/libvideostitch_opencl.so -lpthread /usr/lib64/libOpenCL.so /usr/lib64/libHalf.so /usr/lib64/libIex.so /usr/lib64/libImath.so /usr/lib64/libIlmImf.so /usr/lib64/libIlmThread.so /usr/lib64/libdrm.so -Wl,-rpath-link,/home/arpu/Work/githubsources/stitchEm/bin/x64/release && :
/usr/bin/ld: bin/x64/release/libvideostitch_opencl.so: undefined reference to `cv::String::allocate(unsigned long)'
/usr/bin/ld: bin/x64/release/libvideostitch_opencl.so: undefined reference to `cv::AKAZE::create(int, int, int, float, int, int, int)'
/usr/bin/ld: bin/x64/release/libvideostitch_opencl.so: undefined reference to `cv::findContours(cv::_InputOutputArray const&, cv::_OutputArray const&, cv::_OutputArray const&, int, int, cv::Point_<int>)'
/usr/bin/ld: bin/x64/release/libvideostitch_opencl.so: undefined reference to `cv::fillPoly(cv::Mat&, cv::Point_<int> const**, int const*, int, cv::Scalar_<double> const&, int, int, cv::Point_<int>)'
/usr/bin/ld: bin/x64/release/libvideostitch_opencl.so: undefined reference to `cv::putText(cv::_InputOutputArray const&, cv::String const&, cv::Point_<int>, int, double, cv::Scalar_<double>, int, int, bool)'
/usr/bin/ld: bin/x64/release/libvideostitch_opencl.so: undefined reference to `cv::drawMatches(cv::_InputArray const&, std::vector<cv::KeyPoint, std::allocator<cv::KeyPoint> > const&, cv::_InputArray const&, std::vector<cv::KeyPoint, std::allocator<cv::KeyPoint> > const&, std::vector<cv::DMatch, std::allocator<cv::DMatch> > const&, cv::_InputOutputArray const&, cv::Scalar_<double> const&, cv::Scalar_<double> const&, std::vector<char, std::allocator<char> > const&, int)'
/usr/bin/ld: bin/x64/release/libvideostitch_opencl.so: undefined reference to `cv::error(int, cv::String const&, char const*, char const*, int)'
/usr/bin/ld: bin/x64/release/libvideostitch_opencl.so: undefined reference to `cv::String::deallocate()'
/usr/bin/ld: bin/x64/release/libvideostitch_opencl.so: undefined reference to `cv::polylines(cv::Mat&, cv::Point_<int> const* const*, int const*, int, bool, cv::Scalar_<double> const&, int, int, int)'
collect2: error: ld returned 1 exit status
[3/479] Linking CXX executable bin/x64/release/aec
FAILED: bin/x64/release/aec 
: && /usr/bin/c++  -Wall -Wextra -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-function -Wno-missing-field-initializers -O2 -DNDEBUG   lib/samples/ambisonic/CMakeFiles/aec.dir/ambisonicEncoderTool.cpp.o  -o bin/x64/release/aec  -Wl,-rpath,/home/arpu/Work/githubsources/stitchEm/bin/x64/release bin/x64/release/libvideostitch_opencl.so -lpthread /usr/lib64/libOpenCL.so /usr/lib64/libHalf.so /usr/lib64/libIex.so /usr/lib64/libImath.so /usr/lib64/libIlmImf.so /usr/lib64/libIlmThread.so /usr/lib64/libdrm.so -Wl,-rpath-link,/home/arpu/Work/githubsources/stitchEm/bin/x64/release && :
/usr/bin/ld: bin/x64/release/libvideostitch_opencl.so: undefined reference to `cv::String::allocate(unsigned long)'
/usr/bin/ld: bin/x64/release/libvideostitch_opencl.so: undefined reference to `cv::AKAZE::create(int, int, int, float, int, int, int)'
/usr/bin/ld: bin/x64/release/libvideostitch_opencl.so: undefined reference to `cv::findContours(cv::_InputOutputArray const&, cv::_OutputArray const&, cv::_OutputArray const&, int, int, cv::Point_<int>)'
/usr/bin/ld: bin/x64/release/libvideostitch_opencl.so: undefined reference to `cv::fillPoly(cv::Mat&, cv::Point_<int> const**, int const*, int, cv::Scalar_<double> const&, int, int, cv::Point_<int>)'
/usr/bin/ld: bin/x64/release/libvideostitch_opencl.so: undefined reference to `cv::putText(cv::_InputOutputArray const&, cv::String const&, cv::Point_<int>, int, double, cv::Scalar_<double>, int, int, bool)'
/usr/bin/ld: bin/x64/release/libvideostitch_opencl.so: undefined reference to `cv::drawMatches(cv::_InputArray const&, std::vector<cv::KeyPoint, std::allocator<cv::KeyPoint> > const&, cv::_InputArray const&, std::vector<cv::KeyPoint, std::allocator<cv::KeyPoint> > const&, std::vector<cv::DMatch, std::allocator<cv::DMatch> > const&, cv::_InputOutputArray const&, cv::Scalar_<double> const&, cv::Scalar_<double> const&, std::vector<char, std::allocator<char> > const&, int)'
/usr/bin/ld: bin/x64/release/libvideostitch_opencl.so: undefined reference to `cv::error(int, cv::String const&, char const*, char const*, int)'
/usr/bin/ld: bin/x64/release/libvideostitch_opencl.so: undefined reference to `cv::String::deallocate()'
/usr/bin/ld: bin/x64/release/libvideostitch_opencl.so: undefined reference to `cv::polylines(cv::Mat&, cv::Point_<int> const* const*, int const*, int, bool, cv::Scalar_<double> const&, int, int, int)'
collect2: error: ld returned 1 exit status
[4/479] Linking CXX executable bin/x64/release/autocrop-cmd
FAILED: bin/x64/release/autocrop-cmd 
: && /usr/bin/c++  -Wall -Wextra -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-function -Wno-missing-field-initializers -O2 -DNDEBUG   lib/samples/autocrop/CMakeFiles/autocrop-cmd.dir/autocrop-cmd.cpp.o  -o bin/x64/release/autocrop-cmd  -Wl,-rpath,/home/arpu/Work/githubsources/stitchEm/bin/x64/release bin/x64/release/libvideostitch_opencl.so -lpthread /usr/lib64/libOpenCL.so /usr/lib64/libHalf.so /usr/lib64/libIex.so /usr/lib64/libImath.so /usr/lib64/libIlmImf.so /usr/lib64/libIlmThread.so /usr/lib64/libdrm.so -Wl,-rpath-link,/home/arpu/Work/githubsources/stitchEm/bin/x64/release && :
/usr/bin/ld: bin/x64/release/libvideostitch_opencl.so: undefined reference to `cv::String::allocate(unsigned long)'
/usr/bin/ld: bin/x64/release/libvideostitch_opencl.so: undefined reference to `cv::AKAZE::create(int, int, int, float, int, int, int)'
/usr/bin/ld: bin/x64/release/libvideostitch_opencl.so: undefined reference to `cv::findContours(cv::_InputOutputArray const&, cv::_OutputArray const&, cv::_OutputArray const&, int, int, cv::Point_<int>)'
/usr/bin/ld: bin/x64/release/libvideostitch_opencl.so: undefined reference to `cv::fillPoly(cv::Mat&, cv::Point_<int> const**, int const*, int, cv::Scalar_<double> const&, int, int, cv::Point_<int>)'
/usr/bin/ld: bin/x64/release/libvideostitch_opencl.so: undefined reference to `cv::putText(cv::_InputOutputArray const&, cv::String const&, cv::Point_<int>, int, double, cv::Scalar_<double>, int, int, bool)'
/usr/bin/ld: bin/x64/release/libvideostitch_opencl.so: undefined reference to `cv::drawMatches(cv::_InputArray const&, std::vector<cv::KeyPoint, std::allocator<cv::KeyPoint> > const&, cv::_InputArray const&, std::vector<cv::KeyPoint, std::allocator<cv::KeyPoint> > const&, std::vector<cv::DMatch, std::allocator<cv::DMatch> > const&, cv::_InputOutputArray const&, cv::Scalar_<double> const&, cv::Scalar_<double> const&, std::vector<char, std::allocator<char> > const&, int)'
/usr/bin/ld: bin/x64/release/libvideostitch_opencl.so: undefined reference to `cv::error(int, cv::String const&, char const*, char const*, int)'
/usr/bin/ld: bin/x64/release/libvideostitch_opencl.so: undefined reference to `cv::String::deallocate()'
/usr/bin/ld: bin/x64/release/libvideostitch_opencl.so: undefined reference to `cv::polylines(cv::Mat&, cv::Point_<int> const* const*, int const*, int, bool, cv::Scalar_<double> const&, int, int, int)'
collect2: error: ld returned 1 exit status
[5/479] Linking CXX executable bin/x64/release/ptvb2ptv
FAILED: bin/x64/release/ptvb2ptv 
: && /usr/bin/c++  -Wall -Wextra -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-function -Wno-missing-field-initializers -O2 -DNDEBUG   lib/samples/ptvb2ptv/CMakeFiles/ptvb2ptv.dir/ptvb2ptv.cpp.o  -o bin/x64/release/ptvb2ptv  -Wl,-rpath,/home/arpu/Work/githubsources/stitchEm/bin/x64/release bin/x64/release/libvideostitch_opencl.so -lpthread /usr/lib64/libOpenCL.so /usr/lib64/libHalf.so /usr/lib64/libIex.so /usr/lib64/libImath.so /usr/lib64/libIlmImf.so /usr/lib64/libIlmThread.so /usr/lib64/libdrm.so -Wl,-rpath-link,/home/arpu/Work/githubsources/stitchEm/bin/x64/release && :
/usr/bin/ld: bin/x64/release/libvideostitch_opencl.so: undefined reference to `cv::String::allocate(unsigned long)'
/usr/bin/ld: bin/x64/release/libvideostitch_opencl.so: undefined reference to `cv::AKAZE::create(int, int, int, float, int, int, int)'
/usr/bin/ld: bin/x64/release/libvideostitch_opencl.so: undefined reference to `cv::findContours(cv::_InputOutputArray const&, cv::_OutputArray const&, cv::_OutputArray const&, int, int, cv::Point_<int>)'
/usr/bin/ld: bin/x64/release/libvideostitch_opencl.so: undefined reference to `cv::fillPoly(cv::Mat&, cv::Point_<int> const**, int const*, int, cv::Scalar_<double> const&, int, int, cv::Point_<int>)'
/usr/bin/ld: bin/x64/release/libvideostitch_opencl.so: undefined reference to `cv::putText(cv::_InputOutputArray const&, cv::String const&, cv::Point_<int>, int, double, cv::Scalar_<double>, int, int, bool)'
/usr/bin/ld: bin/x64/release/libvideostitch_opencl.so: undefined reference to `cv::drawMatches(cv::_InputArray const&, std::vector<cv::KeyPoint, std::allocator<cv::KeyPoint> > const&, cv::_InputArray const&, std::vector<cv::KeyPoint, std::allocator<cv::KeyPoint> > const&, std::vector<cv::DMatch, std::allocator<cv::DMatch> > const&, cv::_InputOutputArray const&, cv::Scalar_<double> const&, cv::Scalar_<double> const&, std::vector<char, std::allocator<char> > const&, int)'
/usr/bin/ld: bin/x64/release/libvideostitch_opencl.so: undefined reference to `cv::error(int, cv::String const&, char const*, char const*, int)'
/usr/bin/ld: bin/x64/release/libvideostitch_opencl.so: undefined reference to `cv::String::deallocate()'
/usr/bin/ld: bin/x64/release/libvideostitch_opencl.so: undefined reference to `cv::polylines(cv::Mat&, cv::Point_<int> const* const*, int const*, int, bool, cv::Scalar_<double> const&, int, int, int)'
collect2: error: ld returned 1 exit status
[6/479] Linking CXX executable bin/x64/release/videostitch-cmd
FAILED: bin/x64/release/videostitch-cmd 
: && /usr/bin/c++  -Wall -Wextra -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-function -Wno-missing-field-initializers -O2 -DNDEBUG   lib/samples/sample-02-fullCmd/CMakeFiles/videostitch-cmd.dir/videostitch-cmd.cpp.o lib/samples/sample-02-fullCmd/CMakeFiles/videostitch-cmd.dir/__/common/cmdUtils.cpp.o  -o bin/x64/release/videostitch-cmd  -Wl,-rpath,/home/arpu/Work/githubsources/stitchEm/bin/x64/release bin/x64/release/libvideostitch_opencl.so bin/x64/release/libvideostitch-gpudiscovery.so /usr/lib64/libglfw.so /usr/lib64/libOpenCL.so -lpthread /usr/lib64/libHalf.so /usr/lib64/libIex.so /usr/lib64/libImath.so /usr/lib64/libIlmImf.so /usr/lib64/libIlmThread.so /usr/lib64/libdrm.so && :
/usr/bin/ld: bin/x64/release/libvideostitch_opencl.so: undefined reference to `cv::String::allocate(unsigned long)'
/usr/bin/ld: bin/x64/release/libvideostitch_opencl.so: undefined reference to `cv::AKAZE::create(int, int, int, float, int, int, int)'
/usr/bin/ld: bin/x64/release/libvideostitch_opencl.so: undefined reference to `cv::findContours(cv::_InputOutputArray const&, cv::_OutputArray const&, cv::_OutputArray const&, int, int, cv::Point_<int>)'
/usr/bin/ld: bin/x64/release/libvideostitch_opencl.so: undefined reference to `cv::fillPoly(cv::Mat&, cv::Point_<int> const**, int const*, int, cv::Scalar_<double> const&, int, int, cv::Point_<int>)'
/usr/bin/ld: bin/x64/release/libvideostitch_opencl.so: undefined reference to `cv::putText(cv::_InputOutputArray const&, cv::String const&, cv::Point_<int>, int, double, cv::Scalar_<double>, int, int, bool)'
/usr/bin/ld: bin/x64/release/libvideostitch_opencl.so: undefined reference to `cv::drawMatches(cv::_InputArray const&, std::vector<cv::KeyPoint, std::allocator<cv::KeyPoint> > const&, cv::_InputArray const&, std::vector<cv::KeyPoint, std::allocator<cv::KeyPoint> > const&, std::vector<cv::DMatch, std::allocator<cv::DMatch> > const&, cv::_InputOutputArray const&, cv::Scalar_<double> const&, cv::Scalar_<double> const&, std::vector<char, std::allocator<char> > const&, int)'
/usr/bin/ld: bin/x64/release/libvideostitch_opencl.so: undefined reference to `cv::error(int, cv::String const&, char const*, char const*, int)'
/usr/bin/ld: bin/x64/release/libvideostitch_opencl.so: undefined reference to `cv::String::deallocate()'
/usr/bin/ld: bin/x64/release/libvideostitch_opencl.so: undefined reference to `cv::polylines(cv::Mat&, cv::Point_<int> const* const*, int const*, int, bool, cv::Scalar_<double> const&, int, int, int)'
collect2: error: ld returned 1 exit status
[7/479] Linking CXX executable bin/x64/release/undistort
FAILED: bin/x64/release/undistort 
: && /usr/bin/c++  -Wall -Wextra -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-function -Wno-missing-field-initializers -O2 -DNDEBUG   lib/samples/undistort/CMakeFiles/undistort.dir/undistort.cpp.o lib/samples/undistort/CMakeFiles/undistort.dir/__/common/cmdUtils.cpp.o  -o bin/x64/release/undistort  -Wl,-rpath,/home/arpu/Work/githubsources/stitchEm/bin/x64/release bin/x64/release/libvideostitch_opencl.so bin/x64/release/libvideostitch-gpudiscovery.so /usr/lib64/libOpenCL.so -lpthread /usr/lib64/libHalf.so /usr/lib64/libIex.so /usr/lib64/libImath.so /usr/lib64/libIlmImf.so /usr/lib64/libIlmThread.so /usr/lib64/libdrm.so && :
/usr/bin/ld: bin/x64/release/libvideostitch_opencl.so: undefined reference to `cv::String::allocate(unsigned long)'
/usr/bin/ld: bin/x64/release/libvideostitch_opencl.so: undefined reference to `cv::AKAZE::create(int, int, int, float, int, int, int)'
/usr/bin/ld: bin/x64/release/libvideostitch_opencl.so: undefined reference to `cv::findContours(cv::_InputOutputArray const&, cv::_OutputArray const&, cv::_OutputArray const&, int, int, cv::Point_<int>)'
/usr/bin/ld: bin/x64/release/libvideostitch_opencl.so: undefined reference to `cv::fillPoly(cv::Mat&, cv::Point_<int> const**, int const*, int, cv::Scalar_<double> const&, int, int, cv::Point_<int>)'
/usr/bin/ld: bin/x64/release/libvideostitch_opencl.so: undefined reference to `cv::putText(cv::_InputOutputArray const&, cv::String const&, cv::Point_<int>, int, double, cv::Scalar_<double>, int, int, bool)'
/usr/bin/ld: bin/x64/release/libvideostitch_opencl.so: undefined reference to `cv::drawMatches(cv::_InputArray const&, std::vector<cv::KeyPoint, std::allocator<cv::KeyPoint> > const&, cv::_InputArray const&, std::vector<cv::KeyPoint, std::allocator<cv::KeyPoint> > const&, std::vector<cv::DMatch, std::allocator<cv::DMatch> > const&, cv::_InputOutputArray const&, cv::Scalar_<double> const&, cv::Scalar_<double> const&, std::vector<char, std::allocator<char> > const&, int)'
/usr/bin/ld: bin/x64/release/libvideostitch_opencl.so: undefined reference to `cv::error(int, cv::String const&, char const*, char const*, int)'
/usr/bin/ld: bin/x64/release/libvideostitch_opencl.so: undefined reference to `cv::String::deallocate()'
/usr/bin/ld: bin/x64/release/libvideostitch_opencl.so: undefined reference to `cv::polylines(cv::Mat&, cv::Point_<int> const* const*, int const*, int, bool, cv::Scalar_<double> const&, int, int, int)'
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.

dnf list | grep opencv                                                                                                                                                                                          ✔  10067  22:15:11 
opencv.x86_64                                                          3.4.4-10.fc30                                              @updates                 
opencv-contrib.x86_64                                                  3.4.4-10.fc30                                              @updates                 
opencv-core.x86_64                                                     3.4.4-10.fc30                                              @updates                 
opencv-devel.x86_64                                                    3.4.4-10.fc30                                              @updates                 
frei0r-plugins-opencv.x86_64                                           1.6.1-7.fc30                                               fedora                   
libfreenect-opencv.i686                                                0.5.7-6.fc30                                               fedora                   
libfreenect-opencv.x86_64                                              0.5.7-6.fc30                                               fedora                   
opencv.i686                                                            3.4.4-10.fc30                                              updates                  
opencv-contrib.i686                                                    3.4.4-10.fc30                                              updates                  
opencv-core.i686                                                       3.4.4-10.fc30                                              updates                  
opencv-devel.i686                                                      3.4.4-10.fc30                                              updates                  
opencv-doc.noarch                                                      3.4.4-10.fc30                                              updates                  
opencv-java.x86_64                                                     3.4.4-10.fc30                                              updates                  
python3-opencv.x86_64                                                  3.4.4-10.fc30           

opanAL on MacOS

I'm running into an issue which appears to be installing openAL on MacOS 10.14.6 (Mojave). When I go through the stitchEm install scripts it's failing on openAL.

sudo port install opencv glew gsed jpeg libpng openal tiff faac faad2 ceres-solver glfw ffmpeg glm OpenEXR

---> Attempting to fetch openal-1.3_0.darwin_18.x86_64.tbz2 from https://packages.macports.org/openal
---> Attempting to fetch openal-1.3_0.darwin_18.x86_64.tbz2 from http://aus.us.packages.macports.org/macports/packages/openal
---> Attempting to fetch openal-1.3_0.darwin_18.x86_64.tbz2 from http://ywg.ca.packages.macports.org/mirror/macports/packages/openal
---> Building openal
Error: Failed to build openal: command execution failed
Error: See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_audio_openal/openal/main.log for details.
Error: Follow https://guide.macports.org/#project.tickets to report a bug.
Error: Processing of port openal failed
Which of course causes issues when I try to cmake.

Looking at main.log as indicated in the terminal error the bit that seems the most relevant is the 404 error:
:debug:archivefetch Fetching archive failed: The requested URL returned error: 404 Not Found
:msg:archivefetch ---> Attempting to fetch openal-1.3_0.darwin_18.x86_64.tbz2 from http://aus.us.packages.macports.org/macports/packages/openal

I'm not familiar enough with where I should be going to get openAL when it fails with macports. I've seen some mention that it's already installed on macOS and I can't find the developer section at creative that appeared to have downloads and openAL.org the SDK download is an .exe

I think Steve in issue #27 ran into the same exact thing I've been facing but I'm not sure how he got openAL installed to finish the cmake.

Any suggestions?

Mike

Compilation in macos with backend OPENCL asks for CUDA

Hello, I want to compile the project for mac using backend OPENCL.
I used macports to install the dependencies and compiled it with GPU_BACKEND_CUDA=OFF, GPU_BACKEND_OPENCL=ON, and GPU_BACKEND_DEFAULT=OPENCL using cmake-gui.
It compiles with no errors but when I try to run videostitch-gui I get the message "Your CUDA driver appears to be outdated" and then it closes, the same happens with vahana vr.

Windows 10 CUDA illegal address

When building a release build in Windows 10 with Visual Studio 2017, there are CUDA illegal address errors at runtime.

The errors have been reproduced on @jeremad's machine (GPU: ?) and on @w-m's machine (GTX 980 Ti). Latest graphics drivers are used.

The errors appear when building with CUDA 10.0 and with 10.2.

CUDA 9.2 can't be used, as it is not compatible with the latest Visual Studio 2017 compiler.

Stitching is fine when running a debug build with the same configuration, on the same machine.

The first error that is thrown (uncomment https://github.com/stitchEm/stitchEm/blob/master/lib/src/cuda/error.cpp#L20 and look at the log, not the first error dialog) seems to always be cudaEventSynchronize:

  • deviceEvent.cpp (24)
  • deviceStream.cpp (90)

The following CUDA error locations are somewhat random and can be disregarded I think, as the illegal address thing seems to be unrecoverable and is not purged after it's thrown.

Error is thrown both in Studio and Vahana VR.

Linux Fedora 30 does not start wants CUDA but only Opencl is enable OpenCL 1.1 Mesa 19.1.5

      -DGPU_BACKEND_CUDA=OFF -DGPU_BACKEND_OPENCL=ON \
      -G Ninja \
      -DCMAKE_BUILD_TYPE=Release
CMake Warning:
  No source or binary directory provided.  Both will be assumed to be the
  same as the current working directory, but note that this warning will
  become a fatal error in future CMake releases.


-- GPU_BACKEND_CUDA='OFF'
-- GPU_BACKEND_OPENCL='ON'
-- System: LINUX
-- CMake Build Type -- Release
-- USE_DELAY_LOAD = OFF
-- CUDA VERSION: 8.0
-- CUDA PATH: /usr/local/cuda-8.0
-- Could NOT find CUDA (missing: CUDA_NVCC_EXECUTABLE CUDA_INCLUDE_DIRS CUDA_CUDART_LIBRARY) (found suitable exact version "8.0")
No Alternative OpenCL SPIR compiler for Linux
-- --- OpenCL GPU backend ---
-- OpenCL version: 2.2
-- OpenCL includes: /usr/include
-- OpenCL libraries: /usr/lib64/libOpenCL.so
-- 
-- Main OpenCL SPIR compiler: /usr/bin/clang
-- Alternative OpenCL SPIR compiler: 
-- System: LINUX
-- --- VideoStitch-lib dependencies ---
-- OpenEXR libs: /usr/lib64/libHalf.so;/usr/lib64/libIex.so;/usr/lib64/libImath.so;/usr/lib64/libIlmImf.so;/usr/lib64/libIlmThread.so
-- OpenEXR include: /usr/include;/usr/include/openexr
-- PNG: /usr/lib64/libpng.so
-- R8B: r8b
-- OpenCV libs: /usr/lib64/libopencv_calib3d.so;/usr/lib64/libopencv_features2d.so;/usr/lib64/libopencv_flann.so;/usr/lib64/libopencv_video.so;/usr/lib64/libopencv_imgproc.so;/usr/lib64/libopencv_core.so
-- CERES LIBS: general;/usr/lib64/libceres.so
-- 
-- VideoStitch I/O libs configured to build: avPlugin;jpgPlugin;pamPlugin;pngPlugin;rawPlugin;tiffPlugin;exrPlugin;rtmpPlugin;v4l2Plugin;portaudioPlugin
-- Qt minimum supported version: 5.6
-- Qt FOUND: 5.12.4
-- Studio version: Studio-v0.0.9-31-g20693a5-master.2019-08-29
-- Configuring done
-- Generating done
-- Build files have been written to: /home/arpu/Work/githubsources/stitchEm_master
 arpu@testnet  ~/Work/githubsources/stitchEm_master   master ?  ninja                                                                                                                                                                                                                              ✔  10215  23:10:35 
[1/46] cd /home/arpu/Work/githubsources/stitchEm_master/lib && ls /home/arpu/Work/githubsources/stitchEm_master/generated_headers/version.hpp
/home/arpu/Work/githubsources/stitchEm_master/generated_headers/version.hpp
[16/18] Automatic MOC for target videostitch-studio
 arpu@testnet  ~/Work/githubsources/stitchEm_master   master ?  bin/x64/release/videostitch-studio                                                                                                                                                                                                 ✔  10216  23:10:40 
Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
Host OpenCL allocated memory:
Device OpenCL allocated memory:
Number of platforms                               1
  Platform Name                                   Clover
  Platform Vendor                                 Mesa
  Platform Version                                OpenCL 1.1 Mesa 19.1.5
  Platform Profile                                FULL_PROFILE
  Platform Extensions                             cl_khr_icd
  Platform Extensions function suffix             MESA

  Platform Name                                   Clover
Number of devices                                 1
  Device Name                                     AMD Radeon (TM) RX 460 Graphics (POLARIS11, DRM 3.32.0, 5.2.9-200.fc30.x86_64, LLVM 8.0.0)
  Device Vendor                                   AMD
  Device Vendor ID                                0x1002
  Device Version                                  OpenCL 1.1 Mesa 19.1.5
  Driver Version                                  19.1.5
  Device OpenCL C Version                         OpenCL C 1.1 
  Device Type                                     GPU
  Device Profile                                  FULL_PROFILE
  Device Available                                Yes
  Compiler Available                              Yes
  Max compute units                               14
  Max clock frequency                             1210MHz
  Max work item dimensions                        3
  Max work item sizes                             256x256x256
  Max work group size                             256
  Preferred work group size multiple              64
  Preferred / native vector sizes                 
    char                                                16 / 16      
    short                                                8 / 8       
    int                                                  4 / 4       
    long                                                 2 / 2       
    half                                                 8 / 8        (cl_khr_fp16)
    float                                                4 / 4       
    double                                               2 / 2        (cl_khr_fp64)
  Half-precision Floating-point support           (cl_khr_fp16)
    Denormals                                     No
    Infinity and NANs                             Yes
    Round to nearest                              Yes
    Round to zero                                 No
    Round to infinity                             No
    IEEE754-2008 fused multiply-add               No
    Support is emulated in software               No
  Single-precision Floating-point support         (core)
    Denormals                                     No
    Infinity and NANs                             Yes
    Round to nearest                              Yes
    Round to zero                                 No
    Round to infinity                             No
    IEEE754-2008 fused multiply-add               No
    Support is emulated in software               No
    Correctly-rounded divide and sqrt operations  No
  Double-precision Floating-point support         (cl_khr_fp64)
    Denormals                                     Yes
    Infinity and NANs                             Yes
    Round to nearest                              Yes
    Round to zero                                 Yes
    Round to infinity                             Yes
    IEEE754-2008 fused multiply-add               Yes
    Support is emulated in software               No
  Address bits                                    64, Little-Endian
  Global memory size                              4294967296 (4GiB)
  Error Correction support                        No
  Max memory allocation                           3435973836 (3.2GiB)
  Unified memory for Host and Device              No
  Minimum alignment for any data type             128 bytes
  Alignment of base address                       32768 bits (4096 bytes)
  Global Memory cache type                        None
  Image support                                   No
  Local memory type                               Local
  Local memory size                               32768 (32KiB)
  Max number of constant args                     16
  Max constant buffer size                        2147483647 (2GiB)
  Max size of kernel argument                     1024
  Queue properties                                
    Out-of-order execution                        No
    Profiling                                     Yes
  Profiling timer resolution                      0ns
  Execution capabilities                          
    Run OpenCL kernels                            Yes
    Run native kernels                            No
  Device Extensions                               cl_khr_byte_addressable_store cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_int64_base_atomics cl_khr_int64_extended_atomics cl_khr_fp64 cl_khr_fp16

NULL platform behavior
  clGetPlatformInfo(NULL, CL_PLATFORM_NAME, ...)  Clover
  clGetDeviceIDs(NULL, CL_DEVICE_TYPE_ALL, ...)   Success [MESA]
  clCreateContext(NULL, ...) [default]            Success [MESA]
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_DEFAULT)  Success (1)
    Platform Name                                 Clover
    Device Name                                   AMD Radeon (TM) RX 460 Graphics (POLARIS11, DRM 3.32.0, 5.2.9-200.fc30.x86_64, LLVM 8.0.0)
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_CPU)  No devices found in platform
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_GPU)  Success (1)
    Platform Name                                 Clover
    Device Name                                   AMD Radeon (TM) RX 460 Graphics (POLARIS11, DRM 3.32.0, 5.2.9-200.fc30.x86_64, LLVM 8.0.0)
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_ACCELERATOR)  No devices found in platform
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_CUSTOM)  No devices found in platform
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_ALL)  Success (1)
    Platform Name                                 Clover
    Device Name                                   AMD Radeon (TM) RX 460 Graphics (POLARIS11, DRM 3.32.0, 5.2.9-200.fc30.x86_64, LLVM 8.0.0)

ICD loader properties
  ICD loader Name                                 OpenCL ICD Loader
  ICD loader Vendor                               OCL Icd free software
  ICD loader Version                              2.2.12
  ICD loader Profile                              OpenCL 2.2

Calibration Error

When Calibration doing on windows10 vs2017 x64 debug build version.
Error occur at libstitch-cuda library and program down.
( rotationDistance.hpp file 20 line --> xmemory0 file 880 line (_Ptr is null) )

  • input source is magwellpro live cam.
    *Is it cuda - version issue?? I used cuda 10.2 version.

glog linker errors on Ubuntu 18.04

Hello! I wonder if I've done something wrong. Builds are failing with a bunch of linker errors.

I get a repeated dump of linker errors that look like this:

[876/1395] Linking CXX executable bin/x64/debug/OptimalPanoSizeTest
FAILED: bin/x64/debug/OptimalPanoSizeTest 
: && /usr/bin/g++-6  -Wall -Wextra -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-function -Wno-missing-field-initializers -g   lib/src/test/CMakeFiles/OptimalPanoSizeTest.dir/optimalPanoSizeTest.cpp.o  -o bin/x64/debug/OptimalPanoSizeTest  -Wl,-rpath,/media/taylor/external/Software/stitchEm/bin/x64/debug  bin/x64/debug/libvideostitch_cuda.so  bin/x64/debug/libvideostitch-gpudiscovery.so  /usr/lib/x86_64-linux-gnu/libOpenCL.so  /usr/lib/x86_64-linux-gnu/libnvidia-ml.so  /usr/local/cuda-10.0/lib64/libcudart_static.a  -ldl  /usr/lib/x86_64-linux-gnu/librt.so  /usr/lib/x86_64-linux-gnu/libcuda.so  -lpthread  /usr/lib/x86_64-linux-gnu/libHalf.so  /usr/lib/x86_64-linux-gnu/libIex.so  /usr/lib/x86_64-linux-gnu/libImath.so  /usr/lib/x86_64-linux-gnu/libIlmImf.so  /usr/lib/x86_64-linux-gnu/libIlmThread.so  /usr/lib/x86_64-linux-gnu/libdrm.so && :
bin/x64/debug/libvideostitch_cuda.so: undefined reference to `google::LogMessageFatal::LogMessageFatal(char const*, int)'
bin/x64/debug/libvideostitch_cuda.so: undefined reference to `google::base::CheckOpMessageBuilder::CheckOpMessageBuilder(char const*)'
bin/x64/debug/libvideostitch_cuda.so: undefined reference to `cs_di_post'
bin/x64/debug/libvideostitch_cuda.so: undefined reference to `cholmod_finish'
bin/x64/debug/libvideostitch_cuda.so: undefined reference to `cs_di_etree'
bin/x64/debug/libvideostitch_cuda.so: undefined reference to `google::base::CheckOpMessageBuilder::~CheckOpMessageBuilder()'
bin/x64/debug/libvideostitch_cuda.so: undefined reference to `cholmod_free_factor'
bin/x64/debug/libvideostitch_cuda.so: undefined reference to `cs_di_pinv'
bin/x64/debug/libvideostitch_cuda.so: undefined reference to `cs_di_counts'
bin/x64/debug/libvideostitch_cuda.so: undefined reference to `cholmod_print_common'
bin/x64/debug/libvideostitch_cuda.so: undefined reference to `cs_di_compress'
bin/x64/debug/libvideostitch_cuda.so: undefined reference to `cholmod_solve'
bin/x64/debug/libvideostitch_cuda.so: undefined reference to `cs_di_sfree'
bin/x64/debug/libvideostitch_cuda.so: undefined reference to `google::LogMessageFatal::LogMessageFatal(char const*, int, google::CheckOpString const&)'
bin/x64/debug/libvideostitch_cuda.so: undefined reference to `cholmod_free_sparse'
bin/x64/debug/libvideostitch_cuda.so: undefined reference to `cs_di_spfree'
bin/x64/debug/libvideostitch_cuda.so: undefined reference to `cholmod_free_dense'
bin/x64/debug/libvideostitch_cuda.so: undefined reference to `cs_di_transpose'
bin/x64/debug/libvideostitch_cuda.so: undefined reference to `dgels_'
bin/x64/debug/libvideostitch_cuda.so: undefined reference to `dsyrk_'
bin/x64/debug/libvideostitch_cuda.so: undefined reference to `cholmod_factorize'
bin/x64/debug/libvideostitch_cuda.so: undefined reference to `cholmod_analyze_p'
bin/x64/debug/libvideostitch_cuda.so: undefined reference to `dpotrf_'
bin/x64/debug/libvideostitch_cuda.so: undefined reference to `cs_di_nfree'
bin/x64/debug/libvideostitch_cuda.so: undefined reference to `cs_di_amd'
bin/x64/debug/libvideostitch_cuda.so: undefined reference to `cs_di_cumsum'
bin/x64/debug/libvideostitch_cuda.so: undefined reference to `cs_di_symperm'
bin/x64/debug/libvideostitch_cuda.so: undefined reference to `cs_di_lsolve'
bin/x64/debug/libvideostitch_cuda.so: undefined reference to `cholmod_analyze'
bin/x64/debug/libvideostitch_cuda.so: undefined reference to `google::base::CheckOpMessageBuilder::ForVar2()'
bin/x64/debug/libvideostitch_cuda.so: undefined reference to `cs_di_ltsolve'
bin/x64/debug/libvideostitch_cuda.so: undefined reference to `cholmod_start'
bin/x64/debug/libvideostitch_cuda.so: undefined reference to `cs_di_schol'
bin/x64/debug/libvideostitch_cuda.so: undefined reference to `cs_di_calloc'
bin/x64/debug/libvideostitch_cuda.so: undefined reference to `cs_di_multiply'
bin/x64/debug/libvideostitch_cuda.so: undefined reference to `cholmod_zeros'
bin/x64/debug/libvideostitch_cuda.so: undefined reference to `dpotrs_'
bin/x64/debug/libvideostitch_cuda.so: undefined reference to `cs_di_pvec'
bin/x64/debug/libvideostitch_cuda.so: undefined reference to `cs_di_malloc'
bin/x64/debug/libvideostitch_cuda.so: undefined reference to `cs_di_free'
bin/x64/debug/libvideostitch_cuda.so: undefined reference to `cs_di_ipvec'
bin/x64/debug/libvideostitch_cuda.so: undefined reference to `cholmod_amd'
bin/x64/debug/libvideostitch_cuda.so: undefined reference to `cholmod_camd'
bin/x64/debug/libvideostitch_cuda.so: undefined reference to `google::LogMessageFatal::~LogMessageFatal()'
bin/x64/debug/libvideostitch_cuda.so: undefined reference to `cs_di_chol'
bin/x64/debug/libvideostitch_cuda.so: undefined reference to `google::base::CheckOpMessageBuilder::NewString[abi:cxx11]()'
bin/x64/debug/libvideostitch_cuda.so: undefined reference to `cholmod_triplet_to_sparse'
bin/x64/debug/libvideostitch_cuda.so: undefined reference to `google::LogMessage::stream()'
bin/x64/debug/libvideostitch_cuda.so: undefined reference to `cs_di_cholsol'
collect2: error: ld returned 1 exit status

Any ideas what it could be? Thank you!

Jetson Nano cmake Error

I'm attempting to get StitchEm Studio running on a Nvidia Jetson Nano. I'm running into it complaining that several variables are used in the project but they are not set:

CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
FFMPEG_avcodec
linked by target "avPlugin" in directory /home/aspen/Documents/Development/stitchEm/IO/src/av
FFMPEG_avformat
linked by target "avPlugin" in directory /home/aspen/Documents/Development/stitchEm/IO/src/av
FFMPEG_avutil
linked by target "avPlugin" in directory /home/aspen/Documents/Development/stitchEm/IO/src/av
TIFF
linked by target "tiffPlugin" in directory /home/aspen/Documents/Development/stitchEm/IO/src/tiff

I've tried a couple different cmake with -DISABLE_AV=ON and with -DISABLE_TIFF=ON
cmake -DGPU_BACKEND_CUDA=ON -DGPU_BACKEND_OPENCL=OFF -DISABLE_AV=ON -DDISABLE_RTMP=ON DISABLE_TIFF=ON -G Ninja stitchEm

cmake -DGPU_BACKEND_CUDA=ON -DGPU_BACKEND_OPENCL=OFF -DDISABLE_RTMP=ON -G Ninja stitchEm

Any suggestions on how to get past this?
CMakeError.log

App crash when trying to stitch on macOS Mojave

Adding a single input is fine, when adding a second input, there's a SIGILL in the MaskMerger destructor.

macOS Mojave, 10.14.6
MBP 13" 2019, Intel Iris Pro 655

Thread 6 Crashed:: Controller Thread
0   libvideostitch.dylib          	0x000000010b12c084 VideoStitch::Core::MaskMerger::~MaskMerger() + 4
1   libvideostitch.dylib          	0x000000010b125529 VideoStitch::Core::ImageMerger::~ImageMerger() + 41
2   libvideostitch.dylib          	0x000000010b1223ee VideoStitch::Core::GradientImageMerger::~GradientImageMerger() + 14
3   libvideostitch.dylib          	0x000000010b122a1e VideoStitch::Core::ImageMapping::~ImageMapping() + 78
4   libvideostitch.dylib          	0x000000010b122aae VideoStitch::Core::ImageMapping::~ImageMapping() + 14
5   libvideostitch.dylib          	0x000000010b12eaaf VideoStitch::Core::PanoStitcherImplV1<VideoStitch::Core::StitcherOutput<VideoStitch::Output::VideoWriter> >::~PanoStitcherImplV1() + 79
6   libvideostitch.dylib          	0x000000010b12ebde VideoStitch::Core::PanoStitcherImplV1<VideoStitch::Core::StitcherOutput<VideoStitch::Output::VideoWriter> >::~PanoStitcherImplV1() + 14
7   libvideostitch.dylib          	0x000000010b0e01a2 VideoStitch::Core::PanoPipeline::~PanoPipeline() + 34
8   libvideostitch.dylib          	0x000000010b049a88 non-virtual thunk to VideoStitch::Core::ControllerImpl<VideoStitch::Core::PanoPipeline>::deleteStitcher() + 56
9   libvideostitch-gui.dylib      	0x000000010ad507fc VideoStitcher<VideoStitch::Core::StitcherController<VideoStitch::Core::StitcherOutput<VideoStitch::Output::VideoWriter>, VideoStitch::Core::PanoDeviceDefinition> >::closeProject() + 28
10  libvideostitch-gui.dylib      	0x000000010ad4c283 StitcherController::closeProject() + 35
11  videostitch-studio            	0x000000010abfe752 PostProdStitcherController::resetPano() + 882
12  videostitch-studio            	0x000000010abfec48 PostProdStitcherController::reset() + 24
13  libvideostitch-gui.dylib      	0x000000010ad4c0bd StitcherController::onReset(SignalCompressionCaps*) + 45
14  org.qt-project.QtCore         	0x000000010d694b0a QMetaObject::activate(QObject*, int, int, void**) + 2954
15  libvideostitch-gui.dylib      	0x000000010acfad1c ProjectDefinition::reqReset(SignalCompressionCaps*) + 60
16  videostitch-studio            	0x000000010abaffb5 PostProdProjectDefinition::addInputs(QList<VideoStitch::Ptv::Value*>) + 837
17  videostitch-studio            	0x000000010abfda13 PostProdStitcherController::openInputs(QList<QUrl>, int, int) + 2259
18  videostitch-studio            	0x000000010aba87de QtPrivate::FunctorCall<QtPrivate::IndexesList<0, 1, 2>, QtPrivate::List<QList<QUrl>, int, int>, void, void (PostProdStitcherController::*)(QList<QUrl>, int, int)>::call(void (PostProdStitcherController::*)(QList<QUrl>, int, int), PostProdStitcherController*, void**) + 78

Document hack Stitching 180 Degree movies

I have a question on the best settings when stitching 2 camera videos together for 180 degree videos. I have 2 cameras one pointing to the left and another over the top of the nodal point pointing right. I stitch them together but the resulting video there is a lot of black around it. I then take it into Premiere to crop it down. Ideally I'd like to know how to set up my panorama so I don't have to take this step.

My source footage is 3840 × 2160. The stitchEm output is 4096 × 2048. Here's an example of what a frame looks like, I'd like to make it so there is no black.

StitchEm-Example

Thanks,

Mike

PtsCommaParsingTest failing on Travis/Linux

https://travis-ci.org/stitchEm/stitchEm/jobs/528169517

See https://github.com/stitchEm/stitchEm/blob/master/lib/src/test/ptsParsingTest.cpp#L879 and https://github.com/stitchEm/stitchEm/blob/master/lib/src/core/defs/ptoParse.cpp#L75 for locale-related code.

Linux only, not failing on Mac.

31/59 Test #31: PtsCommaParsingTest ..............Child aborted***Exception:   0.21 sec
terminate called after throwing an instance of 'std::runtime_error'
  what():  locale::facet::_S_create_c_locale name not valid

OpenCL SPIR build errors macOS 14, Intel GPU

macOS Mojave, 10.14.6
MBP 13" 2019, Intel Iris Pro 655

On the first run, OpenCL building kernels produces errors (but doesn't show any UI warning).

[OpenCL] [CL_DEVICE_NOT_AVAILABLE] : OpenCL Error : Error: Build Program driver returned (10015)
[OpenCL] OpenCL Warning : clBuildProgram failed: could not build program for 0x1024500 (Intel(R) Iris(TM) Plus Graphics 655) (err:-2)
[OpenCL] [CL_BUILD_ERROR] : OpenCL Build Error : Compiler build log:

error: undefined reference to `_Z12write_imagefPU3AS110_image2d_tDv2_iDv4_f()'
undefined reference to `_Z11read_imagefPU3AS110_image2d_tuSamplerDv2_f()'

error: backend compiler failed build.


[OpenCL] [CL_DEVICE_NOT_AVAILABLE] : OpenCL Error : Error: Build Program driver returned (10015)
[OpenCL] OpenCL Warning : clBuildProgram failed: could not build program for 0x1024500 (Intel(R) Iris(TM) Plus Graphics 655) (err:-2)
[OpenCL] [CL_BUILD_ERROR] : OpenCL Build Error : Compiler build log:

error: undefined reference to `_Z11read_imagefPU3AS110_image2d_tuSamplerDv2_f()'

error: backend compiler failed build.


[OpenCL] [CL_DEVICE_NOT_AVAILABLE] : OpenCL Error : Error: Build Program driver returned (10015)
[OpenCL] OpenCL Warning : clBuildProgram failed: could not build program for 0x1024500 (Intel(R) Iris(TM) Plus Graphics 655) (err:-2)
[OpenCL] [CL_BUILD_ERROR] : OpenCL Build Error : Compiler build log:

error: undefined reference to `_Z11read_imagefPU3AS110_image2d_tuSamplerDv2_f()'

error: backend compiler failed build.


[OpenCL] [CL_DEVICE_NOT_AVAILABLE] : OpenCL Error : Error: Build Program driver returned (10015)
[OpenCL] OpenCL Warning : clBuildProgram failed: could not build program for 0x1024500 (Intel(R) Iris(TM) Plus Graphics 655) (err:-2)
[OpenCL] [CL_BUILD_ERROR] : OpenCL Build Error : Compiler build log:

error: undefined reference to `_Z11read_imagefPU3AS110_image2d_tuSamplerDv2_i()'
undefined reference to `_Z12write_imagefPU3AS110_image2d_tDv2_iDv4_f()'

error: backend compiler failed build.


[OpenCL] [CL_DEVICE_NOT_AVAILABLE] : OpenCL Error : Error: Build Program driver returned (10015)
[OpenCL] OpenCL Warning : clBuildProgram failed: could not build program for 0x1024500 (Intel(R) Iris(TM) Plus Graphics 655) (err:-2)
[OpenCL] [CL_BUILD_ERROR] : OpenCL Build Error : Compiler build log:

error: undefined reference to `_Z12write_imagefPU3AS110_image2d_tDv2_iDv4_f()'

error: backend compiler failed build.

Disabling SPIR fixes these compiler errors.

--> Disable SPIR by default when creating apps?

Remove readdir_r

readdir_r is deprecated, let's use the thread-unsafe readdir.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.