From 78444fd2e1835646f45cf0e1f4346ee30a78c914 Mon Sep 17 00:00:00 2001
From: Nicolas Pope <nwpope@utu.fi>
Date: Thu, 9 Jul 2020 09:58:16 +0300
Subject: [PATCH] Remove compiler warnings and fix compile error

---
 CMakeLists.txt                                  |  2 +-
 applications/gui2/src/modules/calibration.cpp   |  2 +-
 applications/vision/src/main.cpp                | 13 -------------
 components/audio/src/software_decoder.cpp       | 10 ++--------
 components/audio/src/software_encoder.cpp       | 10 ++--------
 components/codecs/src/depth_convert.cu          |  7 -------
 components/codecs/src/nvidia_encoder.cpp        |  3 ---
 components/codecs/test/opencv_codec_unit.cpp    |  1 -
 components/common/cpp/test/msgpack_unit.cpp     |  2 +-
 .../rgbd-sources/include/ftl/rgbd/source.hpp    | 17 +++++------------
 components/rgbd-sources/src/source.cpp          | 14 --------------
 components/streams/src/sender.cpp               | 11 ++---------
 12 files changed, 14 insertions(+), 78 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 43b81fe4a..524bf2cfe 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -394,7 +394,7 @@ if (WIN32) # TODO(nick) Should do based upon compiler (VS)
 	set(OS_LIBS "")
 else()
 	add_definitions(-DUNIX)
-	set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17 -fPIC -msse3 -Wall -Werror=unused-result")
+	set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fdiagnostics-color -std=c++17 -fPIC -msse3 -Wall -Werror=unused-result")
 	set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -D_DEBUG -pg")
 	set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3 -mfpmath=sse")
 	set(OS_LIBS "dl")
diff --git a/applications/gui2/src/modules/calibration.cpp b/applications/gui2/src/modules/calibration.cpp
index 4e6b340b2..37d643abc 100644
--- a/applications/gui2/src/modules/calibration.cpp
+++ b/applications/gui2/src/modules/calibration.cpp
@@ -245,7 +245,7 @@ void IntrinsicCalibration::onFrame(const ftl::data::FrameSetPtr& fs) {
 
 	future_ = ftl::pool.push(	[fs, id = id_, channel = channel_,
 								&calib = calib_, &running = running_, &last = last_]
-								(int id) {
+								(int thread_id) {
 
 		try {
 			auto gpu = (*fs)[id.source()].cast<ftl::rgbd::Frame>().get<cv::cuda::GpuMat>(channel);
diff --git a/applications/vision/src/main.cpp b/applications/vision/src/main.cpp
index d5233aa81..9f9b8d848 100644
--- a/applications/vision/src/main.cpp
+++ b/applications/vision/src/main.cpp
@@ -279,19 +279,6 @@ static void run(ftl::Configurable *root) {
 	delete net;
 }
 
-static void threadSetCUDADevice() {
-	// Ensure all threads have correct cuda device
-	std::atomic<int> ijobs = 0;
-	for (int i=0; i<ftl::pool.size(); ++i) {
-		ftl::pool.push([&ijobs](int id) {
-			ftl::cuda::setDevice();
-			++ijobs;
-			while (ijobs < ftl::pool.size()) std::this_thread::sleep_for(std::chrono::milliseconds(10));
-		});
-	}
-	while (ijobs < ftl::pool.size()) std::this_thread::sleep_for(std::chrono::milliseconds(10));
-}
-
 int main(int argc, char **argv) {
 #ifdef HAVE_PYLON
 	Pylon::PylonAutoInitTerm autoInitTerm;
diff --git a/components/audio/src/software_decoder.cpp b/components/audio/src/software_decoder.cpp
index 1b7b5f9a8..44d4b0ce9 100644
--- a/components/audio/src/software_decoder.cpp
+++ b/components/audio/src/software_decoder.cpp
@@ -26,9 +26,8 @@ SoftwareDecoder::~SoftwareDecoder() {
 bool SoftwareDecoder::_createOpus(const ftl::codecs::Packet &pkt) {
 	#ifdef HAVE_OPUS
 	bool stereo = pkt.flags & ftl::codecs::kFlagStereo;
-	if (pkt.definition == cur_definition_ && stereo == cur_stereo_ && opus_decoder_) return true;
+	if (stereo == cur_stereo_ && opus_decoder_) return true;
 
-	cur_definition_ = pkt.definition;
 	cur_stereo_ = stereo;
 
 	if (opus_decoder_) {
@@ -36,12 +35,7 @@ bool SoftwareDecoder::_createOpus(const ftl::codecs::Packet &pkt) {
 		opus_decoder_ = nullptr;
 	}
 
-	int sample_rate;
-	switch (pkt.definition) {
-	case ftl::codecs::definition_t::hz48000		: sample_rate = 48000; break;
-	case ftl::codecs::definition_t::hz44100		: sample_rate = 44100; break;
-	default: return false;
-	}
+	int sample_rate = 48000;  // TODO: Allow it to be different
 
 	int errcode = 0;
 	int channels = (stereo) ? 2 : 1;
diff --git a/components/audio/src/software_encoder.cpp b/components/audio/src/software_encoder.cpp
index c3a24a508..f3622c5ec 100644
--- a/components/audio/src/software_encoder.cpp
+++ b/components/audio/src/software_encoder.cpp
@@ -44,9 +44,8 @@ bool SoftwareEncoder::encode(const std::vector<short> &in, ftl::codecs::Packet &
 bool SoftwareEncoder::_createOpus(ftl::codecs::Packet &pkt) {
 	#ifdef HAVE_OPUS
 	bool stereo = pkt.flags & ftl::codecs::kFlagStereo;
-	if (pkt.definition == cur_definition_ && stereo == cur_stereo_ && opus_encoder_) return true;
+	if (stereo == cur_stereo_ && opus_encoder_) return true;
 
-	cur_definition_ = pkt.definition;
 	cur_stereo_ = stereo;
 
 	if (opus_encoder_) {
@@ -54,12 +53,7 @@ bool SoftwareEncoder::_createOpus(ftl::codecs::Packet &pkt) {
 		opus_encoder_ = nullptr;
 	}
 
-	int sample_rate;
-	switch (pkt.definition) {
-	case ftl::codecs::definition_t::hz48000		: sample_rate = 48000; break;
-	case ftl::codecs::definition_t::hz44100		: sample_rate = 44100; break;
-	default: return false;
-	}
+	int sample_rate = 48000;  // TODO: Allow it to be different
 
 	int errcode = 0;
 	int channels = (stereo) ? 2 : 1;
diff --git a/components/codecs/src/depth_convert.cu b/components/codecs/src/depth_convert.cu
index 81dc7d3bb..d69ef3348 100644
--- a/components/codecs/src/depth_convert.cu
+++ b/components/codecs/src/depth_convert.cu
@@ -301,13 +301,7 @@ void ftl::cuda::vuya_to_depth(const cv::cuda::PtrStepSz<float> &depth, const cv:
 
 	if (x >= RADIUS && y >= RADIUS && x < vuya.cols-RADIUS-1 && y < vuya.rows-RADIUS-1) {
         ushort4 in = vuya(y,x);
-        bool isdiscon = false;
-		//int minerr = 65000;
 		ushort best = in.z;
-		//ushort miny = 65000;
-
-		//float sumY = 0.0f;
-		//float weights = 0.0f;
 		float mcost = 1.e10f;
 
 		// 1) In small radius, is there a discontinuity?
@@ -323,7 +317,6 @@ void ftl::cuda::vuya_to_depth(const cv::cuda::PtrStepSz<float> &depth, const cv:
 					ushort4 inn = vuya(y+v,x+u);
 					if (inn.w == 0) {
 						float err = fabsf(float(in.z) - float(inn.z));
-						float dist = v*v + u*u;
 						float cost = err*err; //err*err*dist;
 						if (mcost > cost) {
 							mcost = cost;
diff --git a/components/codecs/src/nvidia_encoder.cpp b/components/codecs/src/nvidia_encoder.cpp
index 65fcc88cb..b3b022d2f 100644
--- a/components/codecs/src/nvidia_encoder.cpp
+++ b/components/codecs/src/nvidia_encoder.cpp
@@ -152,9 +152,6 @@ static bool validate(const cv::cuda::GpuMat &in, ftl::codecs::Packet &pkt) {
 		return false;
 	}
 
-	auto width = in.cols;
-	auto height = in.rows;
-
 	if (in.empty()) {
 		LOG(WARNING) << "No data";
 		return false;
diff --git a/components/codecs/test/opencv_codec_unit.cpp b/components/codecs/test/opencv_codec_unit.cpp
index cf03f71a2..43c94304f 100644
--- a/components/codecs/test/opencv_codec_unit.cpp
+++ b/components/codecs/test/opencv_codec_unit.cpp
@@ -90,7 +90,6 @@ TEST_CASE( "OpenCVDecoder::decode() - A colour test image no resolution change"
 
 	ftl::codecs::Packet pkt;
 	pkt.codec = codec_t::Any;
-	pkt.definition = definition_t::Any;
 	pkt.bitrate = 255;
 	pkt.flags = 0;
 	pkt.frame_count = 1;
diff --git a/components/common/cpp/test/msgpack_unit.cpp b/components/common/cpp/test/msgpack_unit.cpp
index 940706125..953bac5c9 100644
--- a/components/common/cpp/test/msgpack_unit.cpp
+++ b/components/common/cpp/test/msgpack_unit.cpp
@@ -110,7 +110,7 @@ TEST_CASE( "msgpack cv::Mat" ) {
 			REQUIRE(A.type() == B.type());
 			REQUIRE(cv::countNonZero(A != B) == 0);
 		}
-		catch (msgpack::type_error) {
+		catch (const msgpack::type_error &e) {
 			// if not supported, throws exception
 		}
 	}
diff --git a/components/rgbd-sources/include/ftl/rgbd/source.hpp b/components/rgbd-sources/include/ftl/rgbd/source.hpp
index 1a1cb2a26..2f5f9d1ca 100644
--- a/components/rgbd-sources/include/ftl/rgbd/source.hpp
+++ b/components/rgbd-sources/include/ftl/rgbd/source.hpp
@@ -65,12 +65,12 @@ class Source : public ftl::Configurable, public ftl::data::DiscreteSource {
 	/**
 	 * Change the second channel source.
 	 */
-	bool setChannel(ftl::codecs::Channel c);
+	[[deprecated]] bool setChannel(ftl::codecs::Channel c);
 
 	/**
 	 * Get the channel allocated to the second source.
 	 */
-	ftl::codecs::Channel getChannel() const { return channel_; }
+	[[deprecated]] ftl::codecs::Channel getChannel() const { return channel_; }
 
 	/**
 	 * Perform the hardware or virtual frame grab operation. This should be
@@ -107,13 +107,13 @@ class Source : public ftl::Configurable, public ftl::data::DiscreteSource {
 	/**
 	 * Get the source's camera intrinsics.
 	 */
-	const Camera &parameters() const;
+	[[deprecated]] const Camera &parameters() const;
 
 	/**
 	 * Get camera intrinsics for another channel. For example the right camera
 	 * in a stereo pair.
 	 */
-	const Camera parameters(ftl::codecs::Channel) const;
+	[[deprecated]] const Camera parameters(ftl::codecs::Channel) const;
 
 	cv::Mat cameraMatrix() const;
 
@@ -122,14 +122,7 @@ class Source : public ftl::Configurable, public ftl::data::DiscreteSource {
 	 * cameras this will move the camera, for physical cameras it is set by the
 	 * registration process as it attempts to work out a cameras relative pose.
 	 */
-	virtual void setPose(const Eigen::Matrix4d &pose);
-
-	/**
-	 * Check what features this source has available.
-	 */
-	[[deprecated]] bool hasCapabilities(capability_t);
-
-	[[deprecated]] capability_t getCapabilities() const;
+	//[[deprecated]] virtual void setPose(const Eigen::Matrix4d &pose);
 
 	/**
 	 * Force the internal implementation to be reconstructed.
diff --git a/components/rgbd-sources/src/source.cpp b/components/rgbd-sources/src/source.cpp
index 536f0f9fb..8112eccfb 100644
--- a/components/rgbd-sources/src/source.cpp
+++ b/components/rgbd-sources/src/source.cpp
@@ -150,20 +150,6 @@ static ftl::rgbd::BaseSourceImpl *createImplementation(const std::string &uristr
 	return nullptr;
 }
 
-void Source::setPose(const Eigen::Matrix4d &pose) {
-	//pose_ = pose;
-	if (impl_) impl_->setPose(pose);
-}
-
-bool Source::hasCapabilities(capability_t c) {
-	return (getCapabilities() & c) == c;
-}
-
-capability_t Source::getCapabilities() const {
-	if (impl_) return impl_->capabilities_;
-	else return kCapMovable | kCapVideo | kCapStereo;  // FIXME: Don't assume these
-}
-
 void Source::reset() {
 	UNIQUE_LOCK(mutex_,lk);
 	channel_ = Channel::None;
diff --git a/components/streams/src/sender.cpp b/components/streams/src/sender.cpp
index bb81e5ad4..cab2cb37d 100644
--- a/components/streams/src/sender.cpp
+++ b/components/streams/src/sender.cpp
@@ -84,7 +84,7 @@ static void writeValue(std::vector<unsigned char> &data, T value) {
 	data.insert(data.end(), pvalue_start, pvalue_start+sizeof(T));
 }
 
-static void mergeNALUnits(const std::list<ftl::codecs::Packet> &pkts, ftl::codecs::Packet &pkt) {
+/*static void mergeNALUnits(const std::list<ftl::codecs::Packet> &pkts, ftl::codecs::Packet &pkt) {
 	size_t size = 0;
 	for (auto i=pkts.begin(); i!=pkts.end(); ++i) size += (*i).data.size();
 
@@ -104,7 +104,7 @@ static void mergeNALUnits(const std::list<ftl::codecs::Packet> &pkts, ftl::codec
 		//LOG(INFO) << "NAL Count = " << (*i).data.size();
 		pkt.data.insert(pkt.data.end(), (*i).data.begin(), (*i).data.end());
 	}
-}
+}*/
 
 void Sender::_sendPersistent(ftl::data::Frame &frame) {
 	auto *session = frame.parent();
@@ -256,8 +256,6 @@ void Sender::post(ftl::data::FrameSet &fs, ftl::codecs::Channel c, bool noencode
 		stream_->post(spkt, pkt);
 	}
 
-	Channel sec_chan = Channel::Right;
-
 	if (needs_encoding) {
 		_encodeChannel(fs, c, do_iframe);
 	}
@@ -490,11 +488,6 @@ void Sender::_encodeAudioChannel(ftl::data::FrameSet &fs, Channel c, bool reset)
 
 		ftl::codecs::Packet pkt;
 		pkt.codec = ftl::codecs::codec_t::OPUS;
-		//pkt.definition = ftl::codecs::definition_t::Any;
-
-		// TODO: remove need for this
-		pkt.definition = ftl::codecs::definition_t::hz48000;
-
 		pkt.frame_count = 1;
 		pkt.flags = (c == Channel::AudioStereo) ? ftl::codecs::kFlagStereo : 0;
 		pkt.bitrate = 180;
-- 
GitLab