add GStreamer

This commit is contained in:
Maik Jurischka
2025-12-12 11:43:15 +01:00
parent fe0af4dc64
commit 212a9ec64c
9 changed files with 606 additions and 26 deletions

35
StreamingEngine.h Normal file
View File

@@ -0,0 +1,35 @@
#pragma once
#include <vizionsdk/VizionSDK.h>
#include "GStreamerPipeline.h"
#include <memory>
#include <thread>
#include <atomic>
#include <mutex>
class StreamingEngine {
public:
explicit StreamingEngine(std::shared_ptr<VxCamera> camera);
~StreamingEngine();
bool start(const std::string& gstPipeline);
void stop();
bool isRunning() const { return running_; }
void setFormat(const VxFormat& format);
VxFormat getCurrentFormat() const { return currentFormat_; }
void setPipelineDescription(const std::string& pipeline);
private:
void acquisitionLoop();
std::shared_ptr<VxCamera> camera_;
std::unique_ptr<GStreamerPipeline> gstPipeline_;
std::unique_ptr<std::thread> acquisitionThread_;
std::atomic<bool> running_;
std::mutex mutex_;
VxFormat currentFormat_;
std::unique_ptr<uint8_t[]> buffer_;
size_t bufferSize_;
};