diff --git a/selfdrive/loggerd/loggerd.cc b/selfdrive/loggerd/loggerd.cc index 648b2137de..57f6ab381b 100644 --- a/selfdrive/loggerd/loggerd.cc +++ b/selfdrive/loggerd/loggerd.cc @@ -39,6 +39,8 @@ #define Encoder RawLogger #endif +namespace { + constexpr int MAIN_BITRATE = 5000000; constexpr int MAIN_FPS = 20; #ifndef QCOM2 @@ -51,6 +53,10 @@ constexpr int DCAM_BITRATE = MAIN_BITRATE; #define NO_CAMERA_PATIENCE 500 // fall back to time-based rotation if all cameras are dead +const int SEGMENT_LENGTH = getenv("LOGGERD_TEST") ? atoi(getenv("LOGGERD_SEGMENT_LENGTH")) : 60; + +ExitHandler do_exit; + LogCameraInfo cameras_logged[LOG_CAMERA_ID_MAX] = { [LOG_CAMERA_ID_FCAMERA] = { .stream_type = VISION_STREAM_YUV_BACK, @@ -96,13 +102,6 @@ LogCameraInfo cameras_logged[LOG_CAMERA_ID_MAX] = { }, }; - -namespace { - -constexpr int SEGMENT_LENGTH = 60; - -ExitHandler do_exit; - class RotateState { public: SubSocket* fpkt_sock; @@ -311,9 +310,7 @@ void encoder_thread(int cam_idx) { } } -} - -static int clear_locks_fn(const char* fpath, const struct stat *sb, int tyupeflag) { +int clear_locks_fn(const char* fpath, const struct stat *sb, int tyupeflag) { const char* dot = strrchr(fpath, '.'); if (dot && strcmp(dot, ".lock") == 0) { unlink(fpath); @@ -321,19 +318,16 @@ static int clear_locks_fn(const char* fpath, const struct stat *sb, int tyupefla return 0; } -static void clear_locks() { +void clear_locks() { ftw(LOG_ROOT.c_str(), clear_locks_fn, 16); } +} // namespace + int main(int argc, char** argv) { setpriority(PRIO_PROCESS, 0, -12); - int segment_length = SEGMENT_LENGTH; - if (getenv("LOGGERD_TEST")) { - segment_length = atoi(getenv("LOGGERD_SEGMENT_LENGTH")); - } - clear_locks(); // setup messaging @@ -464,7 +458,7 @@ int main(int argc, char** argv) { new_segment = true; for (auto &r : s.rotate_state) { // this *should* be redundant on tici since all camera frames are synced - new_segment &= (((r.stream_frame_id >= r.last_rotate_frame_id + segment_length * MAIN_FPS) && + new_segment &= (((r.stream_frame_id >= r.last_rotate_frame_id + SEGMENT_LENGTH * MAIN_FPS) && (!r.should_rotate) && (r.initialized)) || (!r.enabled)); #ifndef QCOM2 @@ -472,7 +466,7 @@ int main(int argc, char** argv) { #endif } } else { - if (tms - last_rotate_tms > segment_length * 1000) { + if (tms - last_rotate_tms > SEGMENT_LENGTH * 1000) { new_segment = true; LOGW("no camera packet seen. auto rotated"); }