From 15fb1a809ded75a9699c460c0dc4e8e870a44fca Mon Sep 17 00:00:00 2001 From: stef <19478336+stefpi@users.noreply.github.com> Date: Mon, 15 Jun 2026 19:49:56 -0400 Subject: [PATCH] webrtc: revert prewarm and import movements (#38181) --- system/athena/athenad.py | 2 +- system/webrtc/webrtcd.py | 30 ++++-------------------------- 2 files changed, 5 insertions(+), 27 deletions(-) diff --git a/system/athena/athenad.py b/system/athena/athenad.py index a03a150330..28796adc1b 100755 --- a/system/athena/athenad.py +++ b/system/athena/athenad.py @@ -40,7 +40,6 @@ from openpilot.system.loggerd.xattr_cache import getxattr, setxattr from openpilot.common.swaglog import cloudlog from openpilot.system.version import get_build_metadata from openpilot.system.hardware.hw import Paths -from openpilot.system.webrtc.webrtcd import StreamRequestBody ATHENA_HOST = os.getenv('ATHENA_HOST', 'wss://athena.comma.ai') @@ -582,6 +581,7 @@ def getNetworks(): @dispatcher.add_method def startStream(sdp: str) -> dict: + from openpilot.system.webrtc.webrtcd import StreamRequestBody bridge_services_in = [] # get live car params to avoid stale notCar edge case diff --git a/system/webrtc/webrtcd.py b/system/webrtc/webrtcd.py index eb1c21250b..ce51ed5018 100755 --- a/system/webrtc/webrtcd.py +++ b/system/webrtc/webrtcd.py @@ -27,11 +27,6 @@ from openpilot.system.webrtc.schema import generate_field from openpilot.common.params import Params from cereal import messaging, log -from aiortc import RTCBundlePolicy, RTCConfiguration, RTCPeerConnection -from aiortc.mediastreams import VideoStreamTrack -from openpilot.system.webrtc.device.video import LiveStreamVideoStreamTrack -from teleoprtc import WebRTCAnswerBuilder - import aioice.ice @@ -237,6 +232,10 @@ class StreamSession: shared_pub_master = DynamicPubMaster([]) def __init__(self, sdp: str, init_camera: str, incoming_services: list[str], outgoing_services: list[str], debug_mode: bool = False): + from aiortc.mediastreams import VideoStreamTrack + from openpilot.system.webrtc.device.video import LiveStreamVideoStreamTrack + from teleoprtc import WebRTCAnswerBuilder + builder = WebRTCAnswerBuilder(sdp) self.video_track = LiveStreamVideoStreamTrack(init_camera) if not debug_mode else VideoStreamTrack() @@ -446,26 +445,6 @@ async def post_notify(request: 'web.Request'): return web.Response(status=200, text="OK") -async def on_startup(app: 'web.Application'): - logger = logging.getLogger("webrtcd") - start_time = time.monotonic() - pc = None - - # warmup imports for webrtc stack - try: - pc = RTCPeerConnection(RTCConfiguration(bundlePolicy=RTCBundlePolicy.MAX_BUNDLE)) - pc.addTransceiver("video", direction="recvonly") - pc.createDataChannel("data", ordered=True) - offer = await pc.createOffer() - await asyncio.wait_for(pc.setLocalDescription(offer), timeout=1.5) - logger.info("Warmed WebRTC stack in %.1f ms", (time.monotonic() - start_time) * 1000) - except Exception: - logger.exception("WebRTC stack warmup failed") - finally: - if pc is not None: - await pc.close() - - async def on_shutdown(app: 'web.Application'): for session in app['streams'].values(): await session.stop() @@ -483,7 +462,6 @@ def webrtcd_thread(host: str, port: int, debug: bool): app['streams'] = dict() app['stream_lock'] = asyncio.Lock() app['debug'] = debug - app.on_startup.append(on_startup) app.on_shutdown.append(on_shutdown) app.router.add_post("/stream", get_stream) app.router.add_post("/candidate", post_candidate)