diff --git a/components/common/cpp/include/ftl/cuda_common.hpp b/components/common/cpp/include/ftl/cuda_common.hpp
index 91d5a28c30e1fa911ff984e8a14dabf5acc0aaea..1df4b1b2fa89bb495f4e0108740774e8753a2afa 100644
--- a/components/common/cpp/include/ftl/cuda_common.hpp
+++ b/components/common/cpp/include/ftl/cuda_common.hpp
@@ -34,7 +34,7 @@ class TextureObject {
 	TextureObject(const TextureObject &t);
 	~TextureObject();
 	
-	int pitch() const { return pitch_; }
+	size_t pitch() const { return pitch_; }
 	T *devicePtr() { return ptr_; };
 	__host__ __device__ T *devicePtr(int v) { return &ptr_[v*pitch2_]; }
 	__host__ __device__ int width() const { return width_; }
@@ -148,8 +148,8 @@ TextureObject<T>::TextureObject(size_t width, size_t height) {
 	cudaTextureObject_t tex = 0;
 	cudaCreateTextureObject(&tex, &resDesc, &texDesc, NULL);
 	texobj_ = tex;
-	width_ = width;
-	height_ = height;
+	width_ = (int)width;
+	height_ = (int)height;
 	needsfree_ = true;
 	pitch2_ = pitch_ / sizeof(T);
 	//needsdestroy_ = true;
diff --git a/components/net/cpp/src/peer.cpp b/components/net/cpp/src/peer.cpp
index 55c5990d85908d8766eb1ba48e6db43d99559e80..bb29691e5e8bc2d8203277e03829fff5b76ddeb9 100644
--- a/components/net/cpp/src/peer.cpp
+++ b/components/net/cpp/src/peer.cpp
@@ -111,7 +111,7 @@ static SOCKET tcpConnect(URI &uri) {
 	
 	// TODO(Nick) - Check all returned addresses.
 	auto addr = addrs;
-	rc = ::connect(csocket, addr->ai_addr, addr->ai_addrlen);
+	rc = ::connect(csocket, addr->ai_addr, (socklen_t)addr->ai_addrlen);
 
 	if (rc < 0) {
 		if (errno == EINPROGRESS) {
diff --git a/components/rgbd-sources/src/algorithms/rtcensus.cpp b/components/rgbd-sources/src/algorithms/rtcensus.cpp
index dbafd2d3737d5dca90a85fe6b125e7579245efb9..b288045e0f24eb6a2b5b3ef4729c5853b5e17ae5 100644
--- a/components/rgbd-sources/src/algorithms/rtcensus.cpp
+++ b/components/rgbd-sources/src/algorithms/rtcensus.cpp
@@ -43,8 +43,8 @@ static vector<uint64_t> sparse_census_16x16(const Mat &arr) {
 	result.resize(arr.cols*arr.rows, 0);
 
 	/* Loops adapted to avoid edge out-of-bounds checks */
-	for (size_t v=7; v < arr.rows-7; v++) {
-	for (size_t u=7; u < arr.cols-7; u++) {
+	for (int v=7; v < arr.rows-7; v++) {
+	for (int u=7; u < arr.cols-7; u++) {
 		uint64_t r = 0;
 
 		/* 16x16 sparse kernel to 8x8 mask (64 bits) */
diff --git a/components/rgbd-sources/src/calibrate.cpp b/components/rgbd-sources/src/calibrate.cpp
index 7e94ac9efcc140c4b3e8e4c3815392eb54d53863..05364c507c8072c0c4da2f060ec7d8a992945c61 100644
--- a/components/rgbd-sources/src/calibrate.cpp
+++ b/components/rgbd-sources/src/calibrate.cpp
@@ -78,7 +78,7 @@ void Calibrate::Settings::write(FileStorage& fs) const {
 void Calibrate::Settings::read(ftl::Configurable *node) {
     boardSize.width = node->value<vector<int>>("board_size", {10,10})[0];
     boardSize.height = node->value<vector<int>>("board_size", {10,10})[1];
-    squareSize = node->value("square_size", 50);
+    squareSize = node->value("square_size", 50.0f);
     nrFrames = node->value("num_frames", 20);
     aspectRatio = node->value("fix_aspect_ratio", false);
     calibZeroTangentDist = node->value("assume_zero_tangential_distortion", false);
diff --git a/components/rgbd-sources/src/disparity.hpp b/components/rgbd-sources/src/disparity.hpp
index f5c98f399811bd50e1776f8b0f86fc851e41f9d4..c8e3636929f1aaa26c8310d0ca54b2339bc92151 100644
--- a/components/rgbd-sources/src/disparity.hpp
+++ b/components/rgbd-sources/src/disparity.hpp
@@ -53,8 +53,8 @@ class Disparity : public ftl::Configurable {
 	
 	protected:
 	//nlohmann::json &config_;
-	size_t min_disp_;
-	size_t max_disp_;
+	int min_disp_;
+	int max_disp_;
 	cv::Mat mask_l_;
 	
 	private:
diff --git a/components/rgbd-sources/src/local.cpp b/components/rgbd-sources/src/local.cpp
index e66396597ddb99e53913299e8db89ca422953513..d3d33d7353ffd070579acac71e294da26885ed51 100644
--- a/components/rgbd-sources/src/local.cpp
+++ b/components/rgbd-sources/src/local.cpp
@@ -263,9 +263,9 @@ bool LocalSource::get(cv::Mat &l, cv::Mat &r) {
 	}
 
 	if (downsize_ != 1.0f) {
-		cv::resize(l, l, cv::Size(l.cols * downsize_, l.rows * downsize_),
+		cv::resize(l, l, cv::Size((int)(l.cols * downsize_), (int)(l.rows * downsize_)),
 				0, 0, cv::INTER_LINEAR);
-		cv::resize(r, r, cv::Size(r.cols * downsize_, r.rows * downsize_),
+		cv::resize(r, r, cv::Size((int)(r.cols * downsize_), (int)(r.rows * downsize_)),
 				0, 0, cv::INTER_LINEAR);
 	}
 
diff --git a/components/rgbd-sources/src/rgbd_source.cpp b/components/rgbd-sources/src/rgbd_source.cpp
index 83ded9fcd1972ba09fe55304eb93a99561d599c5..a216529aa9f5d3d1eaa30c8bb43fde10e909a7be 100644
--- a/components/rgbd-sources/src/rgbd_source.cpp
+++ b/components/rgbd-sources/src/rgbd_source.cpp
@@ -32,8 +32,8 @@ void RGBDSource::getRGBD(cv::Mat &rgb, cv::Mat &depth) {
 
 Eigen::Vector4f RGBDSource::point(uint ux, uint uy) {
 	const auto &params = getParameters();
-	const float x = ((float)ux-params.width/2) / params.fx;
-	const float y = ((float)uy-params.height/2) / params.fy;
+	const float x = ((float)ux-params.width/2) / (float)params.fx;
+	const float y = ((float)uy-params.height/2) / (float)params.fy;
 
 	unique_lock<mutex> lk(mutex_);
 	const float depth = depth_.at<float>(uy,ux);
@@ -50,6 +50,7 @@ bool RGBDSource::snapshot(const std::string &fileprefix) {
 
 	cv::imwrite(fileprefix+"-RGB.jpg", rgb);
 	cv::imwrite(fileprefix+"-DEPTH.png",depth);
+	return true;
 }
 
 RGBDSource *RGBDSource::create(nlohmann::json &config, ftl::net::Universe *net) {
diff --git a/components/rgbd-sources/src/stereovideo_source.cpp b/components/rgbd-sources/src/stereovideo_source.cpp
index daff717e7f014066c664d0f7fcbed2f6e49cd660..1b2248679fb711989726a183f2e3fe9db0622309 100644
--- a/components/rgbd-sources/src/stereovideo_source.cpp
+++ b/components/rgbd-sources/src/stereovideo_source.cpp
@@ -103,7 +103,7 @@ static void disparityToDepth(const cv::Mat &disparity, cv::Mat &depth, const cv:
 			cv::Vec4d homg_pt = _Q*cv::Vec4d(x, y, d, 1.0);
 			//dptr[x] = Vec3d(homg_pt.val);
 			//dptr[x] /= homg_pt[3];
-			dptr[x] = (homg_pt[2] / homg_pt[3]) / 1000.0f; // Depth in meters
+			dptr[x] = (float)(homg_pt[2] / homg_pt[3]) / 1000.0f; // Depth in meters
 
 			if( fabs(d) <= FLT_EPSILON )
 				dptr[x] = 1000.0f;