webrtc: remove av (#38369)

This commit is contained in:
Adeeb Shihadeh
2026-07-18 08:52:02 -07:00
committed by GitHub
parent c21b0821da
commit 3f93b00120
2 changed files with 13 additions and 9 deletions
+11 -6
View File
@@ -1,8 +1,8 @@
import asyncio
from dataclasses import dataclass
import struct
import time
import av
from teleoprtc.tracks import TiciVideoStreamTrack
from openpilot.cereal import messaging
@@ -21,6 +21,15 @@ TIMING_SEI_UUID = bytes([
_SEI_PREFIX = b'\x00\x00\x00\x01\x06\x05\x30' + TIMING_SEI_UUID
@dataclass(frozen=True)
class EncodedVideoFrame:
data: bytes
pts: int
def __bytes__(self) -> bytes:
return self.data
class LiveStreamVideoStreamTrack(TiciVideoStreamTrack):
camera_to_sock_mapping = {
"driver": "livestreamDriverEncodeData",
@@ -86,11 +95,7 @@ class LiveStreamVideoStreamTrack(TiciVideoStreamTrack):
break
await asyncio.sleep(0.005)
packet = av.Packet(self._build_frame_data(msg))
packet.time_base = self._time_base
self._pts = ((time.monotonic_ns() - self._t0_ns) * self._clock_rate) // 1_000_000_000
packet.pts = self._pts
self.log_debug("track sending frame %d", self._pts)
return packet
return EncodedVideoFrame(self._build_frame_data(msg), self._pts)
@@ -4,7 +4,7 @@ import time
import capnp
from openpilot.cereal import messaging, log
from teleoprtc.tracks import VIDEO_CLOCK_RATE, VIDEO_TIME_BASE
from teleoprtc.tracks import VIDEO_CLOCK_RATE
from openpilot.system.webrtc.webrtcd import CerealOutgoingMessageProxy, CerealIncomingMessageProxy
from openpilot.system.webrtc.device.video import LiveStreamVideoStreamTrack
@@ -72,9 +72,8 @@ class TestStreamSession:
for i in range(5):
packet = self.loop.run_until_complete(track.recv())
assert packet.time_base == VIDEO_TIME_BASE
if i == 0:
start_ns = time.monotonic_ns()
start_pts = packet.pts
assert abs(i + packet.pts - (start_pts + (((time.monotonic_ns() - start_ns) * VIDEO_CLOCK_RATE) // 1_000_000_000))) < 450 #5ms
assert packet.size == 0
assert bytes(packet) == b""