diff options
-rw-r--r-- | src/cam/camera_session.cpp | 5 | ||||
-rw-r--r-- | src/cam/file_sink.cpp | 11 | ||||
-rw-r--r-- | src/cam/file_sink.h | 3 |
3 files changed, 8 insertions, 11 deletions
diff --git a/src/cam/camera_session.cpp b/src/cam/camera_session.cpp index 5a25baab..60501827 100644 --- a/src/cam/camera_session.cpp +++ b/src/cam/camera_session.cpp @@ -193,9 +193,10 @@ int CameraSession::start() if (options_.isSet(OptFile)) { if (!options_[OptFile].toString().empty()) - sink_ = std::make_unique<FileSink>(options_[OptFile]); + sink_ = std::make_unique<FileSink>(streamNames_, + options_[OptFile]); else - sink_ = std::make_unique<FileSink>(); + sink_ = std::make_unique<FileSink>(streamNames_); } if (sink_) { diff --git a/src/cam/file_sink.cpp b/src/cam/file_sink.cpp index 3c2e565b..45213d4a 100644 --- a/src/cam/file_sink.cpp +++ b/src/cam/file_sink.cpp @@ -20,8 +20,9 @@ using namespace libcamera; -FileSink::FileSink(const std::string &pattern) - : pattern_(pattern) +FileSink::FileSink(const std::map<const libcamera::Stream *, std::string> &streamNames, + const std::string &pattern) + : streamNames_(streamNames), pattern_(pattern) { } @@ -35,12 +36,6 @@ int FileSink::configure(const libcamera::CameraConfiguration &config) if (ret < 0) return ret; - streamNames_.clear(); - for (unsigned int index = 0; index < config.size(); ++index) { - const StreamConfiguration &cfg = config.at(index); - streamNames_[cfg.stream()] = "stream" + std::to_string(index); - } - return 0; } diff --git a/src/cam/file_sink.h b/src/cam/file_sink.h index 335be93b..8de93a01 100644 --- a/src/cam/file_sink.h +++ b/src/cam/file_sink.h @@ -20,7 +20,8 @@ class Image; class FileSink : public FrameSink { public: - FileSink(const std::string &pattern = ""); + FileSink(const std::map<const libcamera::Stream *, std::string> &streamNames, + const std::string &pattern = ""); ~FileSink(); int configure(const libcamera::CameraConfiguration &config) override; |