summaryrefslogtreecommitdiff
path: root/src/cam
diff options
context:
space:
mode:
Diffstat (limited to 'src/cam')
-rw-r--r--src/cam/camera_session.cpp5
-rw-r--r--src/cam/file_sink.cpp11
-rw-r--r--src/cam/file_sink.h3
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;