summaryrefslogtreecommitdiff
path: root/rpicam-apps-1.11.0-outputfilename.patch
diff options
context:
space:
mode:
authorIngar <ingar@telenet.be>2025-12-20 16:56:31 +0100
committerIngar <ingar@telenet.be>2025-12-20 16:56:31 +0100
commit896b1beeeefd8f8558afa453ba1c942929b05b57 (patch)
tree0c5039649a817fc8b6674ce54e34f3a453fe4c8f /rpicam-apps-1.11.0-outputfilename.patch
parent5b6afdb2cc0643592f6568fb8eec67efeb10f528 (diff)
Updated to v1.11.0.HEADmaster
Diffstat (limited to 'rpicam-apps-1.11.0-outputfilename.patch')
-rw-r--r--rpicam-apps-1.11.0-outputfilename.patch53
1 files changed, 53 insertions, 0 deletions
diff --git a/rpicam-apps-1.11.0-outputfilename.patch b/rpicam-apps-1.11.0-outputfilename.patch
new file mode 100644
index 0000000..540c6d9
--- /dev/null
+++ b/rpicam-apps-1.11.0-outputfilename.patch
@@ -0,0 +1,53 @@
+--- rpicam-apps-original-1.11.0/core/still_options.hpp 2025-12-20 16:32:28.223308449 +0100
++++ rpicam-apps-1.11.0/core/still_options.hpp 2025-12-20 16:48:50.052707336 +0100
+@@ -27,9 +27,9 @@
+ ("framestart", value<uint32_t>(&v_->framestart)->default_value(0),
+ "Initial frame counter value for timelapse captures")
+ ("datetime", value<bool>(&v_->datetime)->default_value(false)->implicit_value(true),
+- "Use date format for output file names")
++ "Replace %s with date and time in output file names")
+ ("timestamp", value<bool>(&v_->timestamp)->default_value(false)->implicit_value(true),
+- "Use system timestamps for output file names")
++ "Replace %u with timestamp in output file names")
+ ("restart", value<unsigned int>(&v_->restart)->default_value(0),
+ "Set JPEG restart interval")
+ ("keypress,k", value<bool>(&v_->keypress)->default_value(false)->implicit_value(true),
+--- rpicam-apps-original-1.11.0/apps/rpicam_still.cpp 2025-12-20 16:32:28.221836546 +0100
++++ rpicam-apps-1.11.0/apps/rpicam_still.cpp 2025-12-20 16:47:29.557173395 +0100
+@@ -37,24 +37,28 @@
+
+ static std::string generate_filename(StillOptions const *options)
+ {
+- char filename[128];
+- std::string folder = options->Get().output; // sometimes "output" is used as a folder name
+- if (!folder.empty() && folder.back() != '/')
+- folder += "/";
++ // treat the output file name as a mask
++ char filename[2048];
+ if (options->Get().datetime)
+ {
++ // expects "%s" in the filename
+ std::time_t raw_time;
+ std::time(&raw_time);
+ char time_string[32];
+ std::tm *time_info = std::localtime(&raw_time);
+- std::strftime(time_string, sizeof(time_string), "%m%d%H%M%S", time_info);
+- snprintf(filename, sizeof(filename), "%s%s.%s", folder.c_str(), time_string, options->Get().encoding.c_str());
++ std::strftime(time_string, sizeof(time_string), "%Y%m%d%H%M%S", time_info);
++ snprintf(filename, sizeof(filename), options->Get().output.c_str(), time_string);
+ }
+ else if (options->Get().timestamp)
+- snprintf(filename, sizeof(filename), "%s%u.%s", folder.c_str(), (unsigned)time(NULL),
+- options->Get().encoding.c_str());
++ {
++ // expects "%u" in the filename
++ snprintf(filename, sizeof(filename), options->Get().output.c_str(), (unsigned)time(NULL));
++ }
+ else
++ {
++ // expects "%d" in the filename
+ snprintf(filename, sizeof(filename), options->Get().output.c_str(), options->Get().framestart);
++ }
+ filename[sizeof(filename) - 1] = 0;
+ return std::string(filename);
+ }