diff options
| author | Carl Hetherington <cth@carlh.net> | 2023-07-08 01:13:04 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2024-01-28 02:01:57 +0100 |
| commit | dabc316eb22a4c84a15b266bf07f335a6cd9dca3 (patch) | |
| tree | 1986f2f32faca06ce7447ff091796e0d3d0f4295 /src | |
| parent | b054a6fe8359d91ed6afd5a250abd766cfafa196 (diff) | |
Remove default constructor from DCPVideo.
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/dcp_video.h | 1 | ||||
| -rw-r--r-- | src/lib/grok/context.h | 16 | ||||
| -rw-r--r-- | src/lib/grok/messenger.h | 26 |
3 files changed, 20 insertions, 23 deletions
diff --git a/src/lib/dcp_video.h b/src/lib/dcp_video.h index 67a2c9f44..d07c8322b 100644 --- a/src/lib/dcp_video.h +++ b/src/lib/dcp_video.h @@ -49,7 +49,6 @@ class PlayerVideo; class DCPVideo { public: - DCPVideo() : DCPVideo(nullptr, 0, 0, 0, Resolution::TWO_K) {} DCPVideo (std::shared_ptr<const PlayerVideo>, int index, int dcp_fps, int bandwidth, Resolution r); DCPVideo (std::shared_ptr<const PlayerVideo>, cxml::ConstNodePtr); diff --git a/src/lib/grok/context.h b/src/lib/grok/context.h index 7a447d35a..cb913f58d 100644 --- a/src/lib/grok/context.h +++ b/src/lib/grok/context.h @@ -68,8 +68,6 @@ struct GrokInitializer { }; struct FrameProxy { - FrameProxy(void) : FrameProxy(0,Eyes::LEFT,DCPVideo()) - {} FrameProxy(int index, Eyes eyes, DCPVideo dcpv) : index_(index), eyes_(eyes), vf(dcpv) {} int index() const { @@ -157,13 +155,13 @@ public: bool needsRecompression = compressedFrameLength < minimum_size; messenger_->processCompressed(str, processor, needsRecompression); if (needsRecompression) { - bool success = false; - auto fp = messenger_->retrieve(clientFrameId, success); - if (!success) + auto fp = messenger_->retrieve(clientFrameId); + if (!fp) { return; + } - auto encoded = std::make_shared<dcp::ArrayData>(fp.vf.encode_locally()); - dcpomaticContext_.writer_.write(encoded, fp.vf.index(), fp.vf.eyes()); + auto encoded = std::make_shared<dcp::ArrayData>(fp->vf.encode_locally()); + dcpomaticContext_.writer_.write(encoded, fp->vf.index(), fp->vf.eyes()); frame_done (); } } @@ -210,11 +208,11 @@ public: return launched_; } - bool scheduleCompress(const DCPVideo &vf){ + bool scheduleCompress(DCPVideo const& vf){ if (!messenger_) return false; - auto fp = FrameProxy(vf.index(),vf.eyes(),vf); + auto fp = FrameProxy(vf.index(), vf.eyes(), vf); auto cvt = [this, &fp](BufferSrc src){ // xyz conversion fp.vf.convert_to_xyz((uint16_t*)src.framePtr_); diff --git a/src/lib/grok/messenger.h b/src/lib/grok/messenger.h index 45ee752e5..86a50d530 100644 --- a/src/lib/grok/messenger.h +++ b/src/lib/grok/messenger.h @@ -825,22 +825,20 @@ static void processorThread(Messenger* messenger, std::function<void(std::string template<typename F> struct ScheduledFrames { - void store(F& val) + void store(F const& val) { std::unique_lock<std::mutex> lk(mapMutex_); auto it = map_.find(val.index()); if (it == map_.end()) - map_[val.index()] = val; + map_.emplace(std::make_pair(val.index(), val)); } - F retrieve(size_t index, bool &success) + boost::optional<F> retrieve(size_t index) { std::unique_lock<std::mutex> lk(mapMutex_); - success = false; auto it = map_.find(index); if(it == map_.end()) - return F(); + return {}; - success = true; F val = it->second; map_.erase(index); @@ -862,7 +860,7 @@ struct ScheduledMessenger : public Messenger ~ScheduledMessenger(void) { shutdown(); } - bool scheduleCompress(F proxy, std::function<void(BufferSrc)> converter){ + bool scheduleCompress(F const& proxy, std::function<void(BufferSrc const&)> converter){ size_t frameSize = init_.uncompressedFrameSize_; assert(frameSize >= init_.uncompressedFrameSize_); BufferSrc src; @@ -882,11 +880,11 @@ struct ScheduledMessenger : public Messenger auto compressedFrameId = msg.nextUint(); auto compressedFrameLength = msg.nextUint(); if (!needsRecompression) { - bool success = false; - auto srcFrame = scheduledFrames_.retrieve(clientFrameId,success); - if (!success) + auto src_frame = scheduledFrames_.retrieve(clientFrameId); + if (!src_frame) { return; - processor(srcFrame, getCompressedFrame(compressedFrameId),compressedFrameLength); + } + processor(*src_frame, getCompressedFrame(compressedFrameId),compressedFrameLength); } ++framesCompressed_; send(GRK_MSGR_BATCH_PROCESSSED_COMPRESSED, compressedFrameId); @@ -914,9 +912,11 @@ struct ScheduledMessenger : public Messenger } } - F retrieve(size_t index, bool &success) { - return scheduledFrames_.retrieve(index, success); + + boost::optional<F> retrieve(size_t index) { + return scheduledFrames_.retrieve(index); } + void store(F& val) { scheduledFrames_.store(val); } |
