diff --git a/receiver/JFJochReceiverRugnuxStills.cpp b/receiver/JFJochReceiverRugnuxStills.cpp index 511335781..b82734d14 100644 --- a/receiver/JFJochReceiverRugnuxStills.cpp +++ b/receiver/JFJochReceiverRugnuxStills.cpp @@ -66,6 +66,7 @@ void JFJochReceiverRugnuxStills::OnImage(uint32_t id, DataMessage &message, std: logger.Error("Dropping image {} - the collection has {} images", message.number, experiment.GetImageNum()); return; } + live_status.ImageReceived(received); CountImage(message); const size_t size = message.image.GetCompressedSize(); diff --git a/receiver/StillsGPUAnalysis.cpp b/receiver/StillsGPUAnalysis.cpp index 65721f92c..cd8e5328f 100644 --- a/receiver/StillsGPUAnalysis.cpp +++ b/receiver/StillsGPUAnalysis.cpp @@ -67,7 +67,6 @@ void StillsGPUAnalysis::Publish() { } void StillsGPUAnalysis::Hold(const std::shared_ptr &image) { - status.ImageReceived(std::chrono::steady_clock::now()); queue.PutBlocking(image); { std::unique_lock ul(prepass_mutex); diff --git a/tests/StillsGPUAnalysisTest.cpp b/tests/StillsGPUAnalysisTest.cpp index 23c44e234..bacdfa9b2 100644 --- a/tests/StillsGPUAnalysisTest.cpp +++ b/tests/StillsGPUAnalysisTest.cpp @@ -114,8 +114,10 @@ TEST_CASE("StillsGPUAnalysis_FailingFrameDoesNotStopAnalysis", "[StillsGPUAnalys }; StillsGPUAnalysis gpu(x, mask, Start(x), nullptr, 1, 100, logger, sink, status); // The frames carry no image, so their analysis fails too - they are passed on all the same. - for (int i = 0; i < 3; i++) + for (int i = 0; i < 3; i++) { + status.ImageReceived(std::chrono::steady_clock::now()); // as the receiver does before it holds a frame gpu.Hold(Frame(buffer, i)); + } REQUIRE_NOTHROW(gpu.Finish()); CHECK(sunk == 3); // The outcome waits for everything to be written, and comes after the latency.