@@ -126,6 +126,7 @@ void OutputHoloFile::export_compute_settings(int input_fps, size_t contiguous)
126126 {" ExposureTime" , exposure_time}};
127127 }
128128
129+ // Get current date and time for the record timestamp
129130 auto now = std::chrono::system_clock::now ();
130131 std::time_t now_c = std::chrono::system_clock::to_time_t (now);
131132 std::tm local_tm = *std::localtime (&now_c);
@@ -134,22 +135,32 @@ void OutputHoloFile::export_compute_settings(int input_fps, size_t contiguous)
134135 ss << std::put_time (&local_tm, " %Y-%m-%d %H:%M:%S" );
135136 std::string record_timestamp = ss.str ();
136137
138+ // Precise timestamps (us)
137139 uint64_t first_ts_us = has_session_ts_ ? session_first_ts_us_ : 0 ;
138140 uint64_t last_ts_us = has_session_ts_ ? session_last_ts_us_ : 0 ;
139141 uint64_t duration_us = (has_session_ts_ && last_ts_us >= first_ts_us) ? (last_ts_us - first_ts_us) : 0 ;
142+ uint64_t first_camera_ts_us = has_session_ts_ ? session_first_camera_ts_us_ : 0 ;
143+ uint64_t last_camera_ts_us = has_session_ts_ ? session_last_camera_ts_us_ : 0 ;
144+ uint64_t offset_us = has_session_ts_ ? session_offset_us_ : 0 ;
140145
141146 // Build the info JSON without top-level camera_fps
142- auto j_fi = nlohmann::json{
143- {" pixel_pitch" , {{" x" , api.input .get_pixel_size ()}, {" y" , api.input .get_pixel_size ()}}},
144- {" input_fps" , api.input .can_get_camera_fps () ? camera_fps : input_fps},
145- {" camera_fps" , camera_fps}, // camera frames per second
146- {" eye_type" , api.record .get_recorded_eye ()},
147- {" contiguous" , contiguous},
148- {" holovibes_version" , __HOLOVIBES_VERSION__},
149- {" camera" , camera_info},
150- {" file_create_timestamp" , file_creation_timestamp_},
151- {" file_record_timestamp" , record_timestamp},
152- {" timestamps_us" , {{" first" , first_ts_us}, {" last" , last_ts_us}, {" duration" , duration_us}}}};
147+ auto j_fi =
148+ nlohmann::json{{" pixel_pitch" , {{" x" , api.input .get_pixel_size ()}, {" y" , api.input .get_pixel_size ()}}},
149+ {" input_fps" , api.input .can_get_camera_fps () ? camera_fps : input_fps},
150+ {" camera_fps" , camera_fps}, // camera frames per second
151+ {" eye_type" , api.record .get_recorded_eye ()},
152+ {" contiguous" , contiguous},
153+ {" holovibes_version" , __HOLOVIBES_VERSION__},
154+ {" camera" , camera_info},
155+ {" file_create_timestamp" , file_creation_timestamp_},
156+ {" file_record_timestamp" , record_timestamp},
157+ {" timestamps_us" ,
158+ {{" first" , first_ts_us},
159+ {" last" , last_ts_us},
160+ {" duration" , duration_us},
161+ {" camera_first" , first_camera_ts_us},
162+ {" camera_last" , last_camera_ts_us},
163+ {" offset" , offset_us}}}};
153164
154165 meta_data_ = nlohmann::json{{" compute_settings" , api.settings .compute_settings_to_json ()}, {" info" , j_fi}};
155166 }
0 commit comments