summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2023-07-08 01:13:04 +0200
committerCarl Hetherington <cth@carlh.net>2024-01-28 02:01:57 +0100
commitdabc316eb22a4c84a15b266bf07f335a6cd9dca3 (patch)
tree1986f2f32faca06ce7447ff091796e0d3d0f4295 /src
parentb054a6fe8359d91ed6afd5a250abd766cfafa196 (diff)
Remove default constructor from DCPVideo.
Diffstat (limited to 'src')
-rw-r--r--src/lib/dcp_video.h1
-rw-r--r--src/lib/grok/context.h16
-rw-r--r--src/lib/grok/messenger.h26
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);
}