From a92fde1e88888a25c40d395809352fb7f5d10ed5 Mon Sep 17 00:00:00 2001
From: Tristan Walter <twalter@orn.mpg.de>
Date: Tue, 13 Oct 2020 18:19:43 +0200
Subject: [PATCH] * avoiding deadlock in debug mode * hack to make it work on
 OSX

---
 Application/src/commons/common/gui/IMGUIBase.cpp |  2 --
 Application/src/grabber/CMakeLists.txt           |  2 +-
 Application/src/grabber/tgrabs.cpp               |  3 +++
 docs/contents.rst                                | 10 ++++++++++
 4 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/Application/src/commons/common/gui/IMGUIBase.cpp b/Application/src/commons/common/gui/IMGUIBase.cpp
index c6ba148..8af45b0 100644
--- a/Application/src/commons/common/gui/IMGUIBase.cpp
+++ b/Application/src/commons/common/gui/IMGUIBase.cpp
@@ -130,7 +130,6 @@ void clear_cache() {
             
 #ifndef NDEBUG
             if(_texture) {
-                std::lock_guard<std::mutex> guard(_texture_mutex);
                 auto it = all_gpu_texture.find(_texture->ptr);
                 if(it != all_gpu_texture.end()) {
                     all_gpu_texture.erase(it);
@@ -143,7 +142,6 @@ void clear_cache() {
             
 #ifndef NDEBUG
             if(_texture) {
-                std::lock_guard<std::mutex> guard(_texture_mutex);
                 all_gpu_texture.insert(_texture->ptr);
             }
 #endif
diff --git a/Application/src/grabber/CMakeLists.txt b/Application/src/grabber/CMakeLists.txt
index 7b1f0ab..9c24bd8 100644
--- a/Application/src/grabber/CMakeLists.txt
+++ b/Application/src/grabber/CMakeLists.txt
@@ -213,7 +213,7 @@ set(targets ${TGRABS_EXEC_NAME} pvinfo pvconvert)
 
 if(APPLE)
     add_executable(tgrabs_starter tgrabs.cpp)
-    target_link_libraries(tgrabs_starter PRIVATE cpputils)
+    target_link_libraries(tgrabs_starter PRIVATE commons cnpy)
     set_target_properties(tgrabs_starter PROPERTIES OUTPUT_NAME tgrabs)
     set(targets ${targets} tgrabs_starter)
     target_compile_definitions(tgrabs_starter PRIVATE TREX_PYTHON_PATH="${CONDA_PREFIX_VAR}")
diff --git a/Application/src/grabber/tgrabs.cpp b/Application/src/grabber/tgrabs.cpp
index ec6c578..8fe4edb 100644
--- a/Application/src/grabber/tgrabs.cpp
+++ b/Application/src/grabber/tgrabs.cpp
@@ -2,7 +2,10 @@
 #include <cstdio>
 #include <string>
 #include <sstream>
+
+#define LIBCNPY_H_
 #include <cpputils/cpputils.h>
+#include <file/Path.h>
 
 #if WIN32
 #define OS_SEP '\\'
diff --git a/docs/contents.rst b/docs/contents.rst
index 24088f9..7789dc9 100644
--- a/docs/contents.rst
+++ b/docs/contents.rst
@@ -28,6 +28,16 @@ Overview
 * **TGrabs**: Record or convert existing videos, perform live-tracking and closed-loop experiments
 * **TRex**: Track converted videos (in PV format), use the automatic visual recognition, explore the data with visual helpers, export task-specific data, and adapt tracking parameters to specific use-cases
 
+.. raw:: html
+
+    <div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; height: auto;">
+		<video autoplay muted loop playsinline id="myVideo">
+				<source src="composite_tracking_video.webm" type='video/webm; codecs="vp9"' />
+				<source src="composite_tracking_video_.mp4" type='video/mp4; codecs="avc1"'>
+				<source src="composite_tracking_video.mov" type='video/mp4; codecs="h264"' />
+		</video>
+    </div>
+
 |grabs| always has to be used first. |trex| is optional in some cases. Use-cases where |trex| is not required include:
 
 * *Just give me tracks*: The user has a video and wants positional, or posture-related data for the individuals seen in the video. Maintaining identities is not required.
-- 
GitLab