Move camera stream types out of msgq (#38591)

This commit is contained in:
Adeeb Shihadeh
2026-08-08 09:32:47 -07:00
committed by GitHub
parent df0bd5e6e3
commit 9738db0e39
26 changed files with 58 additions and 22 deletions
+8
View File
@@ -0,0 +1,8 @@
from enum import IntEnum
class VisionStreamType(IntEnum):
VISION_STREAM_ROAD = 0
VISION_STREAM_DRIVER = 1
VISION_STREAM_WIDE_ROAD = 2
VISION_STREAM_MAP = 3
+10
View File
@@ -0,0 +1,10 @@
#pragma once
#include "msgq/visionipc/visionbuf.h"
enum VisionStreamValues : VisionStreamType {
VISION_STREAM_ROAD = 0,
VISION_STREAM_DRIVER = 1,
VISION_STREAM_WIDE_ROAD = 2,
VISION_STREAM_MAP = 3,
};
@@ -8,7 +8,8 @@ import numpy as np
from openpilot.cereal import messaging
from openpilot.cereal.messaging import PubMaster, SubMaster
from msgq.visionipc import VisionIpcClient, VisionStreamType, VisionBuf
from openpilot.cereal.visionipc import VisionStreamType
from msgq.visionipc import VisionIpcClient, VisionBuf
from openpilot.common.swaglog import cloudlog
from openpilot.common.realtime import config_realtime_process
from openpilot.common.transformations.model import dmonitoringmodel_intrinsics
+2 -1
View File
@@ -13,7 +13,8 @@ from openpilot.cereal import log
from opendbc.car.structs import car
from openpilot.cereal.messaging import PubMaster, SubMaster
from openpilot.cereal.services import SERVICE_LIST
from msgq.visionipc import VisionIpcClient, VisionStreamType, VisionBuf
from openpilot.cereal.visionipc import VisionStreamType
from msgq.visionipc import VisionIpcClient, VisionBuf
from opendbc.car.car_helpers import get_demo_car_params
from openpilot.common.swaglog import cloudlog
from openpilot.common.params import Params
+2 -1
View File
@@ -7,7 +7,8 @@ import openpilot.cereal.messaging as messaging
from openpilot.cereal import log
from opendbc.car.structs import car
from msgq.visionipc import VisionIpcClient, VisionStreamType
from openpilot.cereal.visionipc import VisionStreamType
from msgq.visionipc import VisionIpcClient
from openpilot.common.params import Params
@@ -1,5 +1,5 @@
from collections import namedtuple
from msgq.visionipc import VisionStreamType
from openpilot.cereal.visionipc import VisionStreamType
from openpilot.common.realtime import DT_MDL, DT_DMON
from openpilot.common.transformations.camera import DEVICE_CAMERAS
@@ -2,7 +2,7 @@ import numpy as np
import pyray as rl
from openpilot.cereal import log
from opendbc.car.structs import car
from msgq.visionipc import VisionStreamType
from openpilot.cereal.visionipc import VisionStreamType
from openpilot.selfdrive.ui.ui_state import ui_state, UIStatus
from openpilot.selfdrive.ui.mici.onroad import SIDE_PANEL_WIDTH
from openpilot.selfdrive.ui.mici.onroad.alert_renderer import AlertRenderer
@@ -2,7 +2,8 @@ import platform
import numpy as np
import pyray as rl
from msgq.visionipc import VisionIpcClient, VisionStreamType, VisionBuf
from openpilot.cereal.visionipc import VisionStreamType
from msgq.visionipc import VisionIpcClient, VisionBuf
from openpilot.common.swaglog import cloudlog
from openpilot.common.hardware import COMMA_HARDWARE
from openpilot.system.ui.lib.application import gui_app
@@ -110,7 +111,7 @@ class CameraView(Widget):
self._name = name
# Primary stream
self.client = VisionIpcClient(name, stream_type, conflate=True)
self._stream_type = stream_type
self._stream_type: VisionStreamType = stream_type
self.available_streams: list[VisionStreamType] = []
# Target stream for switching
@@ -370,6 +371,7 @@ class CameraView(Widget):
del self.client
# Switch to target
assert self._target_client is not None and self._target_stream_type is not None
self.client = self._target_client
self._stream_type = self._target_stream_type
self._texture_needs_update = True
@@ -1,6 +1,6 @@
import pyray as rl
from openpilot.cereal import log, messaging
from msgq.visionipc import VisionStreamType
from openpilot.cereal.visionipc import VisionStreamType
from openpilot.selfdrive.ui.mici.onroad.cameraview import CameraView
from openpilot.selfdrive.ui.mici.onroad.driver_state import DriverStateRenderer
from openpilot.selfdrive.ui.ui_state import ui_state, device
@@ -1,7 +1,7 @@
import numpy as np
import pyray as rl
from openpilot.cereal import log
from msgq.visionipc import VisionStreamType
from openpilot.cereal.visionipc import VisionStreamType
from openpilot.selfdrive.ui import UI_BORDER_SIZE
from openpilot.selfdrive.ui.ui_state import ui_state, UIStatus
from openpilot.selfdrive.ui.onroad.alert_renderer import AlertRenderer
+4 -2
View File
@@ -2,7 +2,8 @@ import platform
import numpy as np
import pyray as rl
from msgq.visionipc import VisionIpcClient, VisionStreamType, VisionBuf
from openpilot.cereal.visionipc import VisionStreamType
from msgq.visionipc import VisionIpcClient, VisionBuf
from openpilot.common.swaglog import cloudlog
from openpilot.common.hardware import COMMA_HARDWARE
from openpilot.system.ui.lib.application import gui_app
@@ -71,7 +72,7 @@ class CameraView(Widget):
self._name = name
# Primary stream
self.client = VisionIpcClient(name, stream_type, conflate=True)
self._stream_type = stream_type
self._stream_type: VisionStreamType = stream_type
self.available_streams: list[VisionStreamType] = []
# Target stream for switching
@@ -323,6 +324,7 @@ class CameraView(Widget):
del self.client
# Switch to target
assert self._target_client is not None and self._target_stream_type is not None
self.client = self._target_client
self._stream_type = self._target_stream_type
self._texture_needs_update = True
@@ -1,6 +1,6 @@
import numpy as np
import pyray as rl
from msgq.visionipc import VisionStreamType
from openpilot.cereal.visionipc import VisionStreamType
from openpilot.selfdrive.ui.onroad.cameraview import CameraView
from openpilot.selfdrive.ui.onroad.driver_state import DriverStateRenderer
from openpilot.selfdrive.ui.ui_state import ui_state, device
@@ -5,7 +5,8 @@ import cProfile
import pyray as rl
import numpy as np
from msgq.visionipc import VisionIpcServer, VisionStreamType
from openpilot.cereal.visionipc import VisionStreamType
from msgq.visionipc import VisionIpcServer
from openpilot.selfdrive.ui.ui_state import ui_state
from openpilot.selfdrive.ui.mici.layouts.main import MiciMainLayout
from openpilot.system.ui.lib.application import gui_app
+1 -1
View File
@@ -1,7 +1,7 @@
#!/usr/bin/env python3
import pyray as rl
from msgq.visionipc import VisionStreamType
from openpilot.cereal.visionipc import VisionStreamType
from openpilot.system.ui.lib.application import gui_app
from openpilot.selfdrive.ui.onroad.cameraview import CameraView
+1
View File
@@ -2,6 +2,7 @@
#include "common/util.h"
#include "openpilot/cereal/gen/cpp/log.capnp.h"
#include "openpilot/cereal/visionstream.h"
#include "msgq/visionipc/visionipc_server.h"
#include "media/cam_isp_ife.h"
+2 -1
View File
@@ -3,7 +3,8 @@
import numpy as np
import openpilot.cereal.messaging as messaging
from msgq.visionipc import VisionIpcClient, VisionStreamType
from openpilot.cereal.visionipc import VisionStreamType
from msgq.visionipc import VisionIpcClient
from openpilot.common.realtime import DT_MDL
+2 -1
View File
@@ -4,7 +4,8 @@ import os
import platform
from collections import namedtuple
from msgq.visionipc import VisionIpcServer, VisionStreamType
from openpilot.cereal.visionipc import VisionStreamType
from msgq.visionipc import VisionIpcServer
from openpilot.cereal import messaging
from openpilot.system.camerad.webcam.camera import Camera
+1
View File
@@ -5,6 +5,7 @@
#include "openpilot/cereal/messaging/messaging.h"
#include "openpilot/cereal/services.h"
#include "openpilot/cereal/visionstream.h"
#include "msgq/visionipc/visionipc_client.h"
#include "common/hardware/hw.h"
#include "common/params.h"
@@ -25,7 +25,8 @@ from openpilot.system.manager.process_config import managed_processes
from openpilot.common.version import get_version
from openpilot.tools.lib.helpers import RE
from openpilot.tools.lib.logreader import LogReader
from msgq.visionipc import VisionIpcServer, VisionStreamType
from openpilot.cereal.visionipc import VisionStreamType
from msgq.visionipc import VisionIpcServer
SentinelType = log.Sentinel.SentinelType
+1
View File
@@ -10,6 +10,7 @@
#include <QImage>
#include <QWidget>
#include "openpilot/cereal/visionstream.h"
#include "msgq/visionipc/visionipc_client.h"
class CameraWidget : public QWidget {
@@ -8,7 +8,8 @@ from collections import deque
import openpilot.cereal.messaging as messaging
from msgq.visionipc import VisionIpcServer, VisionStreamType
from openpilot.cereal.visionipc import VisionStreamType
from msgq.visionipc import VisionIpcServer
from openpilot.tools.camerastream.ffmpeg_decoder import Decoder, FFmpegError
V4L2_BUF_FLAG_KEYFRAME = 8
+2 -1
View File
@@ -22,7 +22,8 @@ from openpilot.tools.lib.framereader import FrameReader, ffprobe
from openpilot.selfdrive.test.process_replay.migration import migrate_all
from openpilot.common.prefix import OpenpilotPrefix
from openpilot.common.utils import Timer
from msgq.visionipc import VisionIpcServer, VisionStreamType
from openpilot.cereal.visionipc import VisionStreamType
from msgq.visionipc import VisionIpcServer
FRAMERATE = 20
DEMO_ROUTE, DEMO_START, DEMO_END = '5beb9b58bd12b691/0000010a--a51155e496', 90, 105
+1
View File
@@ -5,6 +5,7 @@
#include <tuple>
#include <utility>
#include "openpilot/cereal/visionstream.h"
#include "msgq/visionipc/visionipc_server.h"
#include "common/queue.h"
#include "tools/replay/framereader.h"
+1 -1
View File
@@ -21,7 +21,7 @@ from openpilot.tools.replay.lib.ui_helpers import (
plot_lead,
plot_model,
)
from msgq.visionipc import VisionStreamType
from openpilot.cereal.visionipc import VisionStreamType
from openpilot.selfdrive.ui.mici.onroad.cameraview import CameraView
os.environ['BASEDIR'] = BASEDIR
+2 -1
View File
@@ -1,6 +1,7 @@
import numpy as np
from msgq.visionipc import VisionIpcServer, VisionStreamType
from openpilot.cereal.visionipc import VisionStreamType
from msgq.visionipc import VisionIpcServer
from openpilot.cereal import messaging
from openpilot.tools.sim.lib.common import W, H