mirror of
https://github.com/MoreTore/openpilot.git
synced 2026-08-03 08:41:47 +08:00
7671d18467
* fix camera config
* typos
* oops
* more typo
* lambless
* forget to send
* visualize hist
* more typo
* 0xC000
* simple
* data loss prevention, clean up later
* loggerd
* back up code
* backup
* fixed memory leak
* fix vsync
* upload ecam
* WB
* 3stream
* fix OMX crash on loggerd rotation
* rewritten debayer kernel
* update viewer
* improved AE
* no artifact lines/grids
* standard trigger
* cleanups
* CCM
* cleanups
* slight tweak
* upd push sock
* build all these
* update tele fl
* update cereal
* upd viewer
* DualCameraState -> MultiCameraState
* cameras_open
* disable frame zmq push by default
* more cleanup
* no apks
* fix submodule error
* wat
* clean up trash
* remove junk
* only build on qcom2
* no need to check these
* update cereal
* some more minor cleanup
* bump panda
* add todo
* minor typo
* Revert "minor typo"
This reverts commit 9233a1df7cac214fae6827cdae3a10cb3bd060d9.
* not care
* use consistent hdr
* some cleanup
* Update selfdrive/camerad/main.cc
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* more cleanups
* remove irrelevant stuff
* this too
* cleanup
* rerun ci
Co-authored-by: ZwX1616 <zwx1616@gmail.com>
Co-authored-by: Tici <robbe@comma.ai>
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
old-commit-hash: 37d6472bfa
120 lines
2.4 KiB
C
120 lines
2.4 KiB
C
#ifndef VISIONIPC_H
|
|
#define VISIONIPC_H
|
|
|
|
#include <stddef.h>
|
|
#include <stdint.h>
|
|
#include <stdbool.h>
|
|
|
|
#define VIPC_SOCKET_PATH "/tmp/vision_socket"
|
|
#define VIPC_MAX_FDS 64
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
typedef enum VisionIPCPacketType {
|
|
VIPC_INVALID = 0,
|
|
VIPC_STREAM_SUBSCRIBE,
|
|
VIPC_STREAM_BUFS,
|
|
VIPC_STREAM_ACQUIRE,
|
|
VIPC_STREAM_RELEASE,
|
|
} VisionIPCPacketType;
|
|
|
|
typedef enum VisionStreamType {
|
|
VISION_STREAM_RGB_BACK,
|
|
VISION_STREAM_RGB_FRONT,
|
|
VISION_STREAM_RGB_WIDE,
|
|
VISION_STREAM_YUV,
|
|
VISION_STREAM_YUV_FRONT,
|
|
VISION_STREAM_YUV_WIDE,
|
|
VISION_STREAM_MAX,
|
|
} VisionStreamType;
|
|
|
|
typedef struct VisionUIInfo {
|
|
int big_box_x, big_box_y;
|
|
int big_box_width, big_box_height;
|
|
int transformed_width, transformed_height;
|
|
|
|
int front_box_x, front_box_y;
|
|
int front_box_width, front_box_height;
|
|
|
|
int wide_box_x, wide_box_y;
|
|
int wide_box_width, wide_box_height;
|
|
|
|
} VisionUIInfo;
|
|
|
|
typedef struct VisionStreamBufs {
|
|
VisionStreamType type;
|
|
|
|
int width, height, stride;
|
|
size_t buf_len;
|
|
|
|
union {
|
|
VisionUIInfo ui_info;
|
|
} buf_info;
|
|
} VisionStreamBufs;
|
|
|
|
typedef struct VIPCBufExtra {
|
|
// only for yuv
|
|
uint32_t frame_id;
|
|
uint64_t timestamp_eof;
|
|
} VIPCBufExtra;
|
|
|
|
typedef union VisionPacketData {
|
|
struct {
|
|
VisionStreamType type;
|
|
bool tbuffer;
|
|
} stream_sub;
|
|
VisionStreamBufs stream_bufs;
|
|
struct {
|
|
VisionStreamType type;
|
|
int idx;
|
|
VIPCBufExtra extra;
|
|
} stream_acq;
|
|
struct {
|
|
VisionStreamType type;
|
|
int idx;
|
|
} stream_rel;
|
|
} VisionPacketData;
|
|
|
|
typedef struct VisionPacket {
|
|
int type;
|
|
VisionPacketData d;
|
|
int num_fds;
|
|
int fds[VIPC_MAX_FDS];
|
|
} VisionPacket;
|
|
|
|
int vipc_connect(void);
|
|
int vipc_recv(int fd, VisionPacket *out_p);
|
|
int vipc_send(int fd, const VisionPacket *p);
|
|
|
|
typedef struct VIPCBuf {
|
|
int fd;
|
|
size_t len;
|
|
void* addr;
|
|
} VIPCBuf;
|
|
void vipc_bufs_load(VIPCBuf *bufs, const VisionStreamBufs *stream_bufs,
|
|
int num_fds, const int* fds);
|
|
|
|
|
|
|
|
typedef struct VisionStream {
|
|
int ipc_fd;
|
|
int last_idx;
|
|
int last_type;
|
|
int num_bufs;
|
|
VisionStreamBufs bufs_info;
|
|
VIPCBuf *bufs;
|
|
} VisionStream;
|
|
|
|
int visionstream_init(VisionStream *s, VisionStreamType type, bool tbuffer, VisionStreamBufs *out_bufs_info);
|
|
void visionstream_release(VisionStream *s);
|
|
VIPCBuf* visionstream_get(VisionStream *s, VIPCBufExtra *out_extra);
|
|
void visionstream_destroy(VisionStream *s);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|