add SharedMemoryWriter support

This commit is contained in:
Maik Jurischka
2026-01-29 09:51:45 +01:00
parent 2b769bfe5e
commit 72f6bbe8df
7 changed files with 339 additions and 1 deletions

View File

@@ -10,6 +10,7 @@
#include <vizionsdk/VizionSDK.h>
#include "vizionstreamer/GStreamerPipeline.h"
#include "vizionstreamer/SharedMemoryWriter.h"
#include <memory>
#include <thread>
#include <atomic>
@@ -29,11 +30,19 @@ public:
void setPipelineDescription(const std::string& pipeline);
// Shared memory output control
bool enableSharedMemory(const std::string& name, size_t buffer_size);
void disableSharedMemory();
[[nodiscard]] bool isSharedMemoryEnabled() const { return shmWriter_ != nullptr && shmWriter_->isCreated(); }
[[nodiscard]] std::string getSharedMemoryName() const { return shmWriter_ ? shmWriter_->getName() : ""; }
[[nodiscard]] size_t getSharedMemorySize() const { return shmWriter_ ? shmWriter_->getBufferSize() : 0; }
private:
void acquisitionLoop();
std::shared_ptr<VxCamera> camera_;
std::unique_ptr<GStreamerPipeline> gstPipeline_;
std::unique_ptr<SharedMemoryWriter> shmWriter_;
std::unique_ptr<std::thread> acquisitionThread_;
std::atomic<bool> running_;
std::mutex mutex_;