* WebRTCClient and WebRTCServer abstractions
* webrtc client implementation
* Interactive test scripts
* Send localDescriptions as offer/asnwer, as they are different
* Tracks need to be added after setting remote description for multi-cam streaming to work
* Remove WebRTCStreamingMetadata
* Wait for tracks
* Move stuff to separate files, rename some things
* Refactor everything, create WebRTCStreamBuilder for both offer and answers
* ta flight done time to grind
* wait for incoming tracks and channels
* Dummy track and frame reader track. Fix timing.
* dt based on camera type
* first trial of the new api
* Fix audio track
* methods for checking for incoming tracks
* Web migration part 2
* Fixes for stream api
* use rtc description for web.py
* experimental cereal proxy
* remove old code from bodyav
* fix is_started
* serialize session description
* fix audio
* messaging channel wrapper
* fix audiotrack
* h264 codec preference
* Add codec preference to tracks
* override sdp codecs
* add logging
* Move cli stuff to separate file
* slight cleanup
* Fix audio track
* create codec_mime inside force_codec function
* fix incoming media estimation
* move builders to __init__
* stream updates following builders
* Update example script
* web.py support for new builder
* web speaker fixes
* StreamingMediaInfo API
* Move things around
* should_add_data_channel rename
* is_connected_and_ready
* fix linter errors
* make cli executable
* remove dumb comments
* logging support
* fix parse_info_from_offer
* improve type annotations
* satisfy linters
* Support for waiting for disconnection
* Split device tracks into video/audio files. Move audio speaker to audio.py
* default dt for dummy video track
* Fix cli
* new speaker fixes
* Remove almost all functionality from web.py
* webrtcd
* continue refactoring web.py
* after handling joystick reset in controlsd with #30409, controls are not necessary anymore
* ping endpoint
* Update js files to at least support what worked previously
* Fixes after some tests on the body
* Streaming fixes
* Remove the use of WebRTCStreamBuilder. Subclass use is now required
* Add todo
* delete all streams on shutdown
* Replace lastPing with lastChannelMessageTime
* Update ping text only if rtc is still on
* That should affect the chart too
* Fix paths in web
* use protocol in SSLContext
* remove warnings since aiortc is not used directly anymore
* check if task is done in stop
* remove channel handler wrapper, since theres only one channel
* Move things around
* Moved webrtc abstractions to separate repository
* Moved webrtcd to tools/webrtc
* Update imports
* Add bodyrtc as dependency
* Add webrtcd to process_config
* Remove usage of DummyVideoStreamTrack
* Add main to webrtcd
* Move webrtcd to system
* Fix imports
* Move cereal proxy logic outside of runner
* Incoming proxy abstractions
* Add some tests
* Make it executable
* Fix process config
* Fix imports
* Additional tests. Add tests to pyproject.toml
* Update poetry lock
* New line
* Bump aiortc to 1.6.0
* Added teleoprtc_repo as submodule, and linked its source dir
* Add init file to webrtc module
* Handle aiortc warnings
* Ignore deprecation warnings
* Ignore resource warning too
* Ignore the warnings
* find free port for test_webrtcd
* Start process inside the test case
* random sleep test
* test 2
* Test endpoint function instead
* Update comment
* Add system/webrtc to release
* default arguments for body fields
* Add teleoprtc to release
* Bump teleoprtc
* Exclude teleoprtc from static analysis
* Use separate event loop for stream session tests
old-commit-hash: f058b5d64e
* Remove laika submodule
* Remove laika check for minimal builds
* Fix minimal build check
* Bring back exclude for opendbc in codespell
* Fix typo
* Copy GNSS indices from laika
* Delete laika dependencies
old-commit-hash: 2de13bea91
* WIP try modeld all in python
* fix plan
* add lane lines stds
* fix lane lines prob
* add lead prob
* add meta
* simplify plan parsing
* add hard brake pred
* add confidence
* fix desire state and desire pred
* check this file for now
* rm prints
* rm debug
* add todos
* add plan_t_idxs
* same as cpp
* removed cython
* add wfd width - rm cpp code
* add new files rm old files
* get metadata at compile time
* forgot this file
* now uses more CPU
* not used
* update readme
* lint
* copy this too
* simplify disengage probs
* update model replay ref commit
* update again
* confidence: remove if statemens
* use publish_state.enqueue
* Revert "use publish_state.enqueue"
This reverts commit d8807c8348.
* confidence: better shape defs
* use ModelConstants class
* fix confidence
* Parser
* slightly more power too
* no inline ifs :(
* confidence: just use if statements
old-commit-hash: cad17b1255
* bump tinygrad to master
* ops_cpu is required now
* and that one too
* tinygrad is getting out of hand with all the files
* bump tinygrad
* update ref commit
* tinygrad master
* Revert "update ref commit"
This reverts commit e728415289.
* bump tinygrad repo
* bump master
* update ref commit
old-commit-hash: 50d720fc2e
* Added navmodeld.py
* Deleted navmodeld.cc
* Write SConscript config flags to config.py
* Remove deleted files from release/files_common
* Some more bug fixes
* Added config.py to gitignore
* Get rid of config.py
* Use set_realtime_priority
* A tiny bit more cleanup
* set realtime priority 1
* Use ModelRunner helper class from runners/__init__.py
* Formatting fixes
* mama mia that's a SPICY memory leak
old-commit-hash: 0c0af682a1
* use OP prefix for logmessage
* cleanup paths too
* cleanup the paths too
* add hw.py to release
* fix those issues
* fix unittests
* fix unittests
* fix unittests
* do swaglog_ipc properly across all the files
* fix that
* fix swaglog in c++
* review suggestions
old-commit-hash: bfe990b112
* Added modeld.py (WIP)
* No more VisionIpcBufExtra
* Started work on cython bindings for runmodel
* Got ONNXModel cython bindings mostly working, added ModelFrame bindings
* Got modeld main loop running without model eval
* Move everything into ModelState
* Doesn't crash!
* Moved ModelState into modeld.py
* Added driving_pyx
* Added cython bindings for message generation
* Moved CLContext definition to visionipc.pxd
* *facepalm*
* Move cl_pyx into commonmodel_pyx
* Split out ONNXModel into a subclass of RunModel
* Added snpemodel/thneedmodel bindings
* Removed modeld.cc
* Fixed scons for macOS
* Fixed sconscript
* Added flag for thneedmodel
* paths are now relative to openpilot root dir
* Set cl kernel paths in SConscript
* Set LD_PRELOAD=libthneed.so to fix ioctl interception
* Run from root dir
* A few more fixes
* A few more minor fixes
* Use C update_calibration for now to exactly match refs
* Add nav_instructions input
* Link driving_pyx.pyx with transformations
* Checked python FirstOrderFilter against C++ FirstOrderFilter
* Set process name to fix test_onroad
* Revert changes to onnxmodel.cc
* Fixed bad onnx_runner.py path in onnxmodel.cc
* Import all constants from driving.h
* logging -> cloudlog
* pylint import-error suppressions no longer needed?
* Loop in SConscript
* Added parens
* Bump modeld cpu usage in test_onroad
* Get rid of use_nav
* use config_realtime_process
* error message from ioctl sniffer was messing up pyenv
* cast distance_idx to int
* Removed cloudlog.infos in model.run
* Fixed rebase conflicts
* Clean up driving.pxd/pyx
* Fixed linter error
old-commit-hash: 72a3c987c0
* Added cython bindings for model runners and commonmodel
* Removed cython language_level=3
* loop to set CXXFLAGS for both envs
old-commit-hash: e2e39d100b
* Subaru: Crosstrek Hybrid support
* hybrid cars in dashcam only
* revert that
* just dashcam
* tah should be abs
* remove unused import
* use the old dbc for now
* hybrid car exceptions in carstate
* need dashstatus until we get a proper cruiseactivated bit
* missing CP
* merge conflicts
* lets be consistent about extend
* cleanup
* fix and comments
* preglobal fix
* and the rest
* and this
* added hybrid to release
---------
Co-authored-by: Justin Newberry <justin@comma.ai>
old-commit-hash: 973d90be77
* Uncomment build_mac job
* Add PYCURL_CURL_CONFIG
* Acados universal binary
* Remove x86 macos references from sconscript
* Add missing include in cabana
* Update cereal
* Update workflow
* Remove unnecessary libpaths for darwin
* Add missing path to cached dirs
* Fix path in cache preparation step
* Add poetry caches to CI cache
* Compile acados with lower deployment target for CI
* Update cereal
* Pass -rpath in linker flags as scons doed not support RPATH on macos
* Use scons api instead of os
* @rpath in install name of acados dylibs
* SConstruct cleanup
* fix liblocationd tests by adding lib suffix based on platform
* Update cereal
* Update opendbc
* Update opendbc
* Add acados gitignore to release files
* Update cereal
* Update cereal
* Add scons_cache to build cache
* Add Caskroom to cache
* Fix typo
* Link all packages at once, instead of one by one
* Run cleanup stage using poetry
* Remove casks from cache
* Move scons cache to separate cache step
* Save scons cache only on master
* Remove restore-keys from save-scons-cache step
* Uncomment if conditions for scons save
* Add gcc-arm-embedded cask cache to cache
* Custom handling of gcc-arm-embedded toolchain cache
* Rename dep cache key
* Exclude .fseventsd from cache
* Fix glob pattern
* Remove .feventsd before caching
* Run mac_setup only if dependency cache-hit != true
* Update cereal to master
* Add overwrite flag to brew link
* Remove manual casadi build from mac_setup
* Remove restore-keys from dependency cache
* Remove linux requirement for casadi
* Restore restore-keys to dependency cache
old-commit-hash: 45a6834a74
* random car control
* format
* struct generation
* math
* staying real
* really staying real
* move
* split this
* format
* Revert "format"
This reverts commit a70a73952e.
* Revert "split this"
This reverts commit ae96be63cb.
* space
old-commit-hash: 3fc104fb6d
* replay_process_with_fake_sockets implementation
* add missing polled_pubs to configs
* drained_pubs field
* updated cereal
* Remove python/native variations of process replay. Replace with universal one using cereal fake sockets
* Replace old py FakeSocket with DummySocket
* Invalidate and deregister fake sockets after replay is done
* Remove unused import
* Set up new prefix for each replay
* Fixes for radard
* Refactor ReplayContext and ProcessConfig
* Minor fixes
* Reimplement controlsd fingerprinting callback
* time.sleep for sockets to safely reconnect
* Fix fingerprinting for controlsd
* Fixes for regen to work
* Fix replay loop to respect submaster frames
* Fix profiler to use new ProcessConfig fields
* Remove tqdm
* Refactor tests to use new ProcessConfig
* Add FrequencyBasedRcvCallback
* Make tolerance None by default
* Update cereal
* Add get_process_config utility func
* Update cereal. Simplify sync procedure
* Chain context managers
* New sub-socket reconnection procedure
* Fix linter issues
* Revert chaining of context managers
* Init controlsState only when replaying controlsd. Update cereal
* Update cereal
* Update process_replay to use new cereal API
* Update cereal
* Update cereal
* Update cereal
* Simplify radard recv callback
* Update release/files_common
old-commit-hash: e6ac6320ac
* time to onroad test
* run few times
* test on stripped builds
* manager
* cleanup
* split those out
* run first
---------
Co-authored-by: Comma Device <device@comma.ai>
old-commit-hash: 39c5d492bf