remove raw logger (#2719)

* remove raw logger

* no raw_clips

* only remove raw clips

* cleanup
pull/2722/head
Adeeb Shihadeh 5 years ago committed by GitHub
parent b1a4ec8135
commit 56146d84ce
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 11
      selfdrive/loggerd/SConscript
  2. 66
      selfdrive/loggerd/loggerd.cc

@ -5,12 +5,13 @@ libs = ['zmq', 'capnp', 'kj', 'z',
'avformat', 'avcodec', 'swscale', 'avutil', 'avformat', 'avcodec', 'swscale', 'avutil',
'yuv', 'bz2', common, cereal, messaging, visionipc] 'yuv', 'bz2', common, cereal, messaging, visionipc]
if arch in ["aarch64", "larch64"]:
src += ['encoder.c']
libs += ['OmxVenc', 'OmxCore']
if arch == "aarch64": if arch == "aarch64":
src += ['encoder.c', 'raw_logger.cc'] libs += ['cutils']
libs += ['OmxVenc', 'OmxCore', 'cutils'] else:
elif arch == "larch64": libs += ['pthread']
src += ['encoder.c', 'raw_logger.cc']
libs += ['OmxVenc', 'OmxCore', 'pthread']
else: else:
libs += ['pthread'] libs += ['pthread']

@ -47,7 +47,6 @@
#ifndef DISABLE_ENCODER #ifndef DISABLE_ENCODER
#include "encoder.h" #include "encoder.h"
#include "raw_logger.h"
#endif #endif
#define MAIN_BITRATE 5000000 #define MAIN_BITRATE 5000000
@ -111,8 +110,6 @@ LogCameraInfo cameras_logged[LOG_CAMERA_ID_MAX] = {
#define LOG_ROOT "/data/media/0/realdata" #define LOG_ROOT "/data/media/0/realdata"
#define RAW_CLIP_LENGTH 100 // 5 seconds at 20fps
#define RAW_CLIP_FREQUENCY (randrange(61, 8*60)) // once every ~4 minutes
namespace { namespace {
@ -202,7 +199,7 @@ struct LoggerdState {
LoggerdState s; LoggerdState s;
#ifndef DISABLE_ENCODER #ifndef DISABLE_ENCODER
void encoder_thread(RotateState *rotate_state, bool raw_clips, int cam_idx) { void encoder_thread(RotateState *rotate_state, int cam_idx) {
switch (cam_idx) { switch (cam_idx) {
case LOG_CAMERA_ID_DCAMERA: { case LOG_CAMERA_ID_DCAMERA: {
@ -272,15 +269,6 @@ void encoder_thread(RotateState *rotate_state, bool raw_clips, int cam_idx) {
encoder_inited = true; encoder_inited = true;
} }
// dont log a raw clip in the first minute
double rawlogger_start_time = seconds_since_boot()+RAW_CLIP_FREQUENCY;
int rawlogger_clip_cnt = 0;
RawLogger *rawlogger = NULL;
if (raw_clips) {
rawlogger = new RawLogger("prcamera", buf_info.width, buf_info.height, MAIN_FPS);
}
while (!do_exit) { while (!do_exit) {
VIPCBufExtra extra; VIPCBufExtra extra;
VIPCBuf* buf = visionstream_get(&stream, &extra); VIPCBuf* buf = visionstream_get(&stream, &extra);
@ -317,9 +305,6 @@ void encoder_thread(RotateState *rotate_state, bool raw_clips, int cam_idx) {
if (has_encoder_alt) { if (has_encoder_alt) {
encoder_rotate(&encoder_alt, s.segment_path, s.rotate_segment); encoder_rotate(&encoder_alt, s.segment_path, s.rotate_segment);
} }
if (raw_clips) {
rawlogger->Rotate(s.segment_path, s.rotate_segment);
}
encoder_segment = s.rotate_segment; encoder_segment = s.rotate_segment;
if (lh) { if (lh) {
lh_close(lh); lh_close(lh);
@ -399,44 +384,6 @@ void encoder_thread(RotateState *rotate_state, bool raw_clips, int cam_idx) {
} }
} }
if (raw_clips) {
double ts = seconds_since_boot();
if (ts > rawlogger_start_time) {
// encode raw if in clip
int out_segment = -1;
int out_id = rawlogger->LogFrame(cnt, y, u, v, &out_segment);
if (rawlogger_clip_cnt == 0) {
LOG("starting raw clip in seg %d", out_segment);
}
// publish encode index
MessageBuilder msg;
auto eidx = msg.initEvent().initEncodeIdx();
eidx.setFrameId(extra.frame_id);
eidx.setType(cereal::EncodeIndex::Type::FULL_LOSSLESS_CLIP);
eidx.setEncodeId(cnt);
eidx.setSegmentNum(out_segment);
eidx.setSegmentId(out_id);
auto bytes = msg.toBytes();
if (lh) {
lh_log(lh, bytes.begin(), bytes.size(), false);
}
// close rawlogger if clip ended
rawlogger_clip_cnt++;
if (rawlogger_clip_cnt >= RAW_CLIP_LENGTH) {
rawlogger->Close();
rawlogger_clip_cnt = 0;
rawlogger_start_time = ts+RAW_CLIP_FREQUENCY;
LOG("ending raw clip in seg %d, next in %.1f sec", out_segment, rawlogger_start_time-ts);
}
}
}
cnt++; cnt++;
} }
@ -445,11 +392,6 @@ void encoder_thread(RotateState *rotate_state, bool raw_clips, int cam_idx) {
lh = NULL; lh = NULL;
} }
if (raw_clips) {
rawlogger->Close();
delete rawlogger;
}
visionstream_destroy(&stream); visionstream_destroy(&stream);
} }
@ -675,17 +617,17 @@ int main(int argc, char** argv) {
pthread_mutex_init(&s.rotate_lock, NULL); pthread_mutex_init(&s.rotate_lock, NULL);
#ifndef DISABLE_ENCODER #ifndef DISABLE_ENCODER
// rear camera // rear camera
std::thread encoder_thread_handle(encoder_thread, &s.rotate_state[LOG_CAMERA_ID_FCAMERA], false, LOG_CAMERA_ID_FCAMERA); std::thread encoder_thread_handle(encoder_thread, &s.rotate_state[LOG_CAMERA_ID_FCAMERA], LOG_CAMERA_ID_FCAMERA);
s.rotate_state[LOG_CAMERA_ID_FCAMERA].enabled = true; s.rotate_state[LOG_CAMERA_ID_FCAMERA].enabled = true;
// front camera // front camera
std::thread front_encoder_thread_handle; std::thread front_encoder_thread_handle;
if (record_front) { if (record_front) {
front_encoder_thread_handle = std::thread(encoder_thread, &s.rotate_state[LOG_CAMERA_ID_DCAMERA], false, LOG_CAMERA_ID_DCAMERA); front_encoder_thread_handle = std::thread(encoder_thread, &s.rotate_state[LOG_CAMERA_ID_DCAMERA], LOG_CAMERA_ID_DCAMERA);
s.rotate_state[LOG_CAMERA_ID_DCAMERA].enabled = true; s.rotate_state[LOG_CAMERA_ID_DCAMERA].enabled = true;
} }
#ifdef QCOM2 #ifdef QCOM2
// wide camera // wide camera
std::thread wide_encoder_thread_handle(encoder_thread, &s.rotate_state[LOG_CAMERA_ID_ECAMERA], false, LOG_CAMERA_ID_ECAMERA); std::thread wide_encoder_thread_handle(encoder_thread, &s.rotate_state[LOG_CAMERA_ID_ECAMERA], LOG_CAMERA_ID_ECAMERA);
s.rotate_state[LOG_CAMERA_ID_ECAMERA].enabled = true; s.rotate_state[LOG_CAMERA_ID_ECAMERA].enabled = true;
#endif #endif
#endif #endif

Loading…
Cancel
Save