* athenad and webrtcd updates
* remove feature stream services from webrtcd split
* stream encoder thread
* reduce diff
* wire webrtc to livestream camera encoder
* request livestream camera switch service
* add frame timing headers
* rfctr
* diff
* clean
* remove camera list in favour of init camera field
* remove cors
* clean
* remove unused
* remove extra try except
* remove video_tracks unused
* add back exception trace
* add stream road camera info to stream cameras
* fix
* add back assert
* clean diff
* clean diff
* add testJoystick only on body
* fix camera list
* remove reference to future service
* video_tracks list add back
* encode all cameras and swap in video track in webrtc
* clean
* explicitly gate bridge send
* clean leftover
* rearrange video.py
* fix lint
* athenad and webrtcd updates
* remove feature stream services from webrtcd split
* stream encoder thread
* reduce diff
* wire webrtc to livestream camera encoder
* request livestream camera switch service
* remove camera list in favour of init camera field
* remove cors
* clean
* remove unused
* remove extra try except
* add back exception trace
* add stream road camera info to stream cameras
* fix
* clean diff
* clean diff
* add testJoystick only on body
* fix camera list
* remove reference to future service
* encode all cameras and swap in video track in webrtc
* clean
* explicitly gate bridge send
* clean leftover
* make local bodyteleop work still
* athenad and webrtcd updates
* remove feature stream services from webrtcd split
* remove cors
* clean
* remove unused
* remove extra try except
* add back exception trace
* clean diff
* clean diff
* add testJoystick only on body
* fix camera list
* remove reference to future service
* speedup slowest
* less setup
* rm som reset logging
* simpliy a lil more
* lil more
* down to 36s
* sleeeeeeep
* finishing touches
* oopsie
* ty fix
---------
Co-authored-by: Comma Device <device@comma.ai>
* snap logic in scroll panel
* match previous snap speed
* velocity lookahead makes scrolling on main layout super easy
* turn off
* remove velocity lookahead
* cmts
* remove handle out of bounds
* cmts
* old style
* back
* clean up
* re-use
* revert
* finish snap when settings is clicked while moving
* rm cmt
* log raylib fps
* log fps from frame time
* whitespace
* or just log frame time?
* init pubmaster in init window
* yield timings
* bump ordinal
* dont log on screen off
* UInt
* lint
* /0
* oops
* oops2
* more precise raylib frame time, can get fps with 1/ft
* don't crash on screen off
* NL
* no _
---------
Co-authored-by: Shane Smiskol <shane@smiskol.com>
modem.py: retry identity read until valid; stay in INIT on partial reads
Under rapid SIM hot-swap stress, AT identity reads (CGSN/QCCID/CIMI/GMR) can return
empty values or echo the command itself. Validate each field before accepting it,
retry the whole sequence in a loop, and stay in INITIALIZING (rather than progressing
to SEARCHING) until imei and iccid are populated. Prevents stale/empty identity from
being published to /dev/shm/modem after a glitchy reinit.
* update blob
* fixed
* didnt catch this
* add back
* needs BLC built in
* for real
* attempt2
* clean up override
* this should keep ox as was
* disable for OX
* update descs
---------
Co-authored-by: Comma Device <device@comma.ai>