diff --git a/components/codecs/src/nvidia_decoder.cpp b/components/codecs/src/nvidia_decoder.cpp
index 0901e518804ecf874005d7351ad56d53387ba6f4..20632ffab9a1a3f5b0b7b883a4146e30ad76fe3c 100644
--- a/components/codecs/src/nvidia_decoder.cpp
+++ b/components/codecs/src/nvidia_decoder.cpp
@@ -100,7 +100,7 @@ uint8_t* NvidiaDecoder::_decode(const uint8_t* src, uint64_t srcSize) {
 		// Some cuvid implementations have one frame latency. Refeed frame into pipeline in this case.
 		const uint32_t DECODE_TRIES = 3;
 		for (uint32_t i = 0; (i < DECODE_TRIES) && (numFramesDecoded <= 0); ++i)
-			nv_decoder_->Decode(src, srcSize, &decodedFrames, &numFramesDecoded, CUVID_PKT_ENDOFPICTURE, &timeStamps, n_++, stream_);
+			nv_decoder_->Decode(src, static_cast<int32_t>(srcSize), &decodedFrames, &numFramesDecoded, CUVID_PKT_ENDOFPICTURE, &timeStamps, n_++, stream_);
 	} catch (NVDECException& e) {
 		throw FTL_Error("Decode failed (" << e.getErrorString() << ", error " << std::to_string(e.getErrorCode()) << " = " + DecErrorCodeToString(e.getErrorCode()) << ")");
 	}
@@ -142,7 +142,6 @@ bool NvidiaDecoder::decode(const ftl::codecs::Packet &pkt, cv::cuda::GpuMat &out
 		return false;
 	}
 
-	int rc = 0;
 	uint8_t *decodedPtr = nullptr;
 
 	if (pkt.flags & ftl::codecs::kFlagMultiple) {
@@ -201,9 +200,9 @@ bool NvidiaDecoder::decode(const ftl::codecs::Packet &pkt, cv::cuda::GpuMat &out
 	} else {
 		// Flag 0x1 means frame is in RGB so needs conversion to BGR
 		if (pkt.flags & 0x1) {
-			Nv12ToColor32<BGRA32>(decodedPtr, width_, out.data, out.step1(), width_, height_, 0, stream_);
+			Nv12ToColor32<BGRA32>(decodedPtr, width_, out.data, static_cast<int>(out.step1()), width_, height_, 0, stream_);
 		} else {
-			Nv12ToColor32<RGBA32>(decodedPtr, width_, out.data, out.step1(), width_, height_, 0, stream_);
+			Nv12ToColor32<RGBA32>(decodedPtr, width_, out.data, static_cast<int>(out.step1()), width_, height_, 0, stream_);
 		}
 	}
 
diff --git a/components/codecs/src/nvidia_encoder.cpp b/components/codecs/src/nvidia_encoder.cpp
index b3b022d2f0203445a3e0fcf05decd72aaedbfc65..846eefeb7be82aa90097a56504fe21c58ac07985 100644
--- a/components/codecs/src/nvidia_encoder.cpp
+++ b/components/codecs/src/nvidia_encoder.cpp
@@ -185,7 +185,7 @@ bool NvidiaEncoder::encode(const cv::cuda::GpuMat &in, ftl::codecs::Packet &pkt)
 	} else if (params_.isLossy()) {
 		ftl::cuda::depth_to_nv12_10(in, (ushort*)f->inputPtr, (ushort*)(((uchar*)f->inputPtr)+(nvenc_->GetEncodeHeight()*f->pitch)), f->pitch/2, 16.0f, stream_);
 	} else {
-		ftl::cuda::float_to_nv12_16bit((float*)in.data, in.step1(), (uchar*)f->inputPtr, f->pitch, nvenc_->GetEncodeWidth()/2, nvenc_->GetEncodeHeight(), cv::cuda::StreamAccessor::getStream(stream_));
+		ftl::cuda::float_to_nv12_16bit((float*)in.data, static_cast<uint32_t>(in.step1()), (uchar*)f->inputPtr, f->pitch, nvenc_->GetEncodeWidth()/2, nvenc_->GetEncodeHeight(), cv::cuda::StreamAccessor::getStream(stream_));
 	}
 
 	// TODO: Use page locked memory?
@@ -281,7 +281,7 @@ bool NvidiaEncoder::_createEncoder(const cv::cuda::GpuMat &in, const ftl::codecs
 
 		if (params.isLossy())
 		{
-			encodeConfig.rcParams.averageBitRate = bitrate;
+			encodeConfig.rcParams.averageBitRate = static_cast<uint32_t>(bitrate);
 			encodeConfig.rcParams.rateControlMode = NV_ENC_PARAMS_RC_CBR_LOWDELAY_HQ;
 			encodeConfig.rcParams.vbvBufferSize = encodeConfig.rcParams.averageBitRate * initializeParams.frameRateDen / initializeParams.frameRateNum; // bitrate / framerate = one frame
 			encodeConfig.rcParams.maxBitRate = encodeConfig.rcParams.averageBitRate;
diff --git a/components/common/cpp/include/ftl/cuda_operators.hpp b/components/common/cpp/include/ftl/cuda_operators.hpp
index 5fc84fbcb158bc599b8bca55e38035757a857648..304818b58a55610f17ec44dc4e2f714a151b8267 100644
--- a/components/common/cpp/include/ftl/cuda_operators.hpp
+++ b/components/common/cpp/include/ftl/cuda_operators.hpp
@@ -240,7 +240,7 @@ inline __host__ __device__ float2 normalize(float2 v)
 // floor
 inline __host__ __device__ float2 floor(const float2 v)
 {
-    return make_float2(floor(v.x), floor(v.y));
+    return make_float2(floorf(v.x), floorf(v.y));
 }
 
 // reflect
@@ -252,7 +252,7 @@ inline __host__ __device__ float2 reflect(float2 i, float2 n)
 // absolute value
 inline __host__ __device__ float2 fabs(float2 v)
 {
-	return make_float2(fabs(v.x), fabs(v.y));
+	return make_float2(fabsf(v.x), fabsf(v.y));
 }
 
 inline __device__ __host__ int2 sign(float2 f) { 
@@ -423,7 +423,7 @@ inline __host__ __device__ float3 normalize(float3 v)
 // floor
 inline __host__ __device__ float3 floor(const float3 v)
 {
-    return make_float3(floor(v.x), floor(v.y), floor(v.z));
+    return make_float3(floorf(v.x), floorf(v.y), floorf(v.z));
 }
 
 // reflect
@@ -435,7 +435,7 @@ inline __host__ __device__ float3 reflect(float3 i, float3 n)
 // absolute value
 inline __host__ __device__ float3 fabs(float3 v)
 {
-	return make_float3(fabs(v.x), fabs(v.y), fabs(v.z));
+	return make_float3(fabsf(v.x), fabsf(v.y), fabsf(v.z));
 }
 
 inline __device__ __host__ int3 sign(float3 f) { 
@@ -567,13 +567,13 @@ inline __host__ __device__ float4 normalize(float4 v)
 // floor
 inline __host__ __device__ float4 floor(const float4 v)
 {
-    return make_float4(floor(v.x), floor(v.y), floor(v.z), floor(v.w));
+    return make_float4(floorf(v.x), floorf(v.y), floorf(v.z), floorf(v.w));
 }
 
 // absolute value
 inline __host__ __device__ float4 fabs(float4 v)
 {
-	return make_float4(fabs(v.x), fabs(v.y), fabs(v.z), fabs(v.w));
+	return make_float4(fabsf(v.x), fabsf(v.y), fabsf(v.z), fabsf(v.w));
 }
 
 // int3 functions
diff --git a/components/common/cpp/include/ftl/threads.hpp b/components/common/cpp/include/ftl/threads.hpp
index 03536e2ff4207df8843a4536c43ae428ca951866..38021f099746a9c836269c9b695037808d299bee 100644
--- a/components/common/cpp/include/ftl/threads.hpp
+++ b/components/common/cpp/include/ftl/threads.hpp
@@ -7,7 +7,7 @@
 
 #define POOL_SIZE 10
 
-#define DEBUG_MUTEX
+//#define DEBUG_MUTEX
 #define MUTEX_TIMEOUT 5
 
 #if defined DEBUG_MUTEX
diff --git a/components/common/cpp/include/ftl/utility/msgpack.hpp b/components/common/cpp/include/ftl/utility/msgpack.hpp
index 30319d2256c0a32d324346637727e216a4620d1b..a2f2030094b02407e195d250e1f6b1a2f37d9c80 100644
--- a/components/common/cpp/include/ftl/utility/msgpack.hpp
+++ b/components/common/cpp/include/ftl/utility/msgpack.hpp
@@ -206,7 +206,7 @@ struct object_with_zone<cv::Mat> {
 		// https://github.com/msgpack/msgpack-c/wiki/v2_0_cpp_object#conversion
 		// raw_ref not copied to zone (is this a problem?)
 		o.via.array.ptr[2] = msgpack::object(
-			msgpack::type::raw_ref(reinterpret_cast<char*>(v.data), size),
+			msgpack::type::raw_ref(reinterpret_cast<char*>(v.data), static_cast<uint32_t>(size)),
 			o.zone);
 	}
 };
diff --git a/components/common/cpp/src/configuration.cpp b/components/common/cpp/src/configuration.cpp
index db446490b7311ae72a4605f9f026f45872c22683..546db6eb94989edca8c3239340a93bf335835f0b 100644
--- a/components/common/cpp/src/configuration.cpp
+++ b/components/common/cpp/src/configuration.cpp
@@ -881,7 +881,7 @@ Configurable *ftl::config::configure(int argc, char **argv, const std::string &r
 	// Check CUDA
 	ftl::cuda::initialise();
 
-	int pool_size = rootcfg->value("thread_pool_factor", 2.0f)*std::thread::hardware_concurrency();
+	int pool_size = int(rootcfg->value("thread_pool_factor", 2.0f)*float(std::thread::hardware_concurrency()));
 	if (pool_size != ftl::pool.size()) ftl::pool.resize(pool_size);
 
 
diff --git a/components/common/cpp/src/timer.cpp b/components/common/cpp/src/timer.cpp
index 54ab2cb642a38d308d7428d5a5326cafde88af5b..50bddb1e3eba0055710e01f767c50612de1b0a6d 100644
--- a/components/common/cpp/src/timer.cpp
+++ b/components/common/cpp/src/timer.cpp
@@ -117,7 +117,7 @@ void ftl::timer::setHighPrecision(bool hp) {
 }
 
 int ftl::timer::getInterval() {
-	return mspf;
+	return static_cast<int>(mspf);
 }
 
 void ftl::timer::setClockAdjustment(int64_t ms) {
diff --git a/components/structures/src/frameset.cpp b/components/structures/src/frameset.cpp
index 3a876c36803b895aba156747262b81d02c8a3c98..fe45a6ed34a9bbc3cf6bc10a4eed2924a1853742 100644
--- a/components/structures/src/frameset.cpp
+++ b/components/structures/src/frameset.cpp
@@ -1,6 +1,8 @@
 #include <ftl/data/new_frameset.hpp>
 #include <ftl/data/framepool.hpp>
 
+#include <loguru.hpp>
+
 using ftl::data::Frame;
 using ftl::data::FrameSet;
 
diff --git a/components/structures/test/frame_example_1.cpp b/components/structures/test/frame_example_1.cpp
index 7591a5198d9eb7589cdbd57a5de26650e96a5c60..cb4d20e45b3a61f8c059b6450ec254e3eac74a0f 100644
--- a/components/structures/test/frame_example_1.cpp
+++ b/components/structures/test/frame_example_1.cpp
@@ -5,6 +5,8 @@
 #include <ftl/data/framepool.hpp>
 #include <ftl/timer.hpp>
 
+#include <loguru.hpp>
+
 using ftl::data::Session;
 using ftl::data::Frame;
 using ftl::codecs::Channel;