From 896b1beeeefd8f8558afa453ba1c942929b05b57 Mon Sep 17 00:00:00 2001 From: Ingar Date: Sat, 20 Dec 2025 16:56:31 +0100 Subject: Updated to v1.11.0. --- rpicam-apps-1.11.0-outputfilename.patch | 53 +++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 rpicam-apps-1.11.0-outputfilename.patch (limited to 'rpicam-apps-1.11.0-outputfilename.patch') 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(&v_->framestart)->default_value(0), + "Initial frame counter value for timelapse captures") + ("datetime", value(&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(&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(&v_->restart)->default_value(0), + "Set JPEG restart interval") + ("keypress,k", value(&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); + } -- cgit v1.2.3