* move to push based receive
* move to push based receive, fix mocks
* fix tests
* add todos
* remove asyncio
* remove asyncio
* resolve todos
* move to queue without events
* prevent debug spam
* concurrent stream inference
stream_video.py: pipeline face-swap inference across execution_thread_count workers (ThreadPoolExecutor + bounded in-flight deque, ordered encode) to keep the GPU busy during encode
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* add todos
* add todos
* add missing state
---------
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
* fix tests part1
* improve testing
* use real audio
* more renaming
* switch to hash assertions
* switch to hash assertions
* switch to hash assertions
* switch to hash assertions
* skip on macos
* extract numpy.empty(0) into an empty_vision_frame variable so the sentinel intent is clear
* bring back todos
* bring back todos
* rename opus_buffer to audio
* move reshape and cvtColor into decoder modules
* add audio_codec check
* add audio_codec check
* rename audio video buffer
* simplify receive methods and cleanup test
* todo
* revert decode methods to return pointer
* remove duplicate test_stream_helper — tests live in test_api_stream_helper
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* clean testing suite
* clean testing suite part2
* clean testing suite part3
* add todos
* extend testing suite and kill some mutants
* fix hashes
* fix lint
* fix test
* fix test
* implement tier 1
* fix lint
* cleanup
* cleanup
* fix lint
* use clear_remb method
* use single callback
* improve test
* improve test
* improve test
* improve test
* improve test
* migrate to whip part1
* migrate to whip part2
* migrate to whip part3
* migrate to whip part4
* migrate to whip/whep with bidirectional
* migrate to whip/whep with bidirectional
* use next library
* add _next to lid datachannel files
* cleanup and add todos
* use internal helper rtcGetPayloadTypesForCodec
* fix lint
* refactor decode()
* move logic to codecs
* move logic to codecs
* break encoders and decoders into multiple files
* break encoders and decoders into multiple files
* cleanup more
* drop action for stream endpoints, keep type for self documentation
* restore the v4 store
* fix: align frame_width and frame_height to even in both collect() and read_resolution() in both decoders.
---------
Co-authored-by: harisreedhar <h4harisreedhar.s.s@gmail.com>
* combine run_aom_encode_loop and run_vpx_encode_loop to encode_video_loop
* run_opus_encode_loop -> encode_audio_loop
* use else instead of continue
* rename to video_codec
* tweak rtc store and make the decision to ban trivial testing
* clear todos for rtc_test, remove redundant tests
* clear todos for rtc_test, remove redundant tests
* break negotiation out of rtc flow, introduce create_sdp_answer and set_remote_description
* add todo
* move timeline control to the stream helper, clean send_audio|video_to_peers
* rename some methods
* fix test
* introduce detect_sdp_media
* introduce detect_sdp_media
* reduce create_peer_connection like crazy
* turns out that we dont event and callback/while+sleep magic for create_sdp_offer and negotiate_sdp_answer
* test for audio/video to peers
* flag rtc methods to be revised
* fix lint
* refactor rtc part1
* skip for macos
* merge create spd and create sdp offer
* fix lint
* add test for create_sdp_offer
* better naming for negotiate method as we get an answer
* extend tests based on mutations
* remove dead code
* rename rtc store and related methods
* clean store, move sender logic to stream helper under apis
* generate tests for rtc store