Commit Graph

603 Commits

Author SHA1 Message Date
Henry Ruhs 8bbb6e7062 Cleanup/stream part1 (#1093)
* use find_library from cytypes, enable rtc tests again

* install libvpx and libopus for unix on CI

* bug found when sending audio first

* no need for source path guard

* add more tests for libraries

* add more tests for libraries

* fix testing

* disable tests to see what happens

* disable tests to see what happens

* debug ci

* debug ci

* debug ci

* debug ci

* debug ci

* debug ci

* debug ci

* debug ci

* debug ci

* debug ci

* debug ci

* hope to solve everything via ENV

* hope to solve everything via ENV

* hope to solve everything via ENV

* hope to solve everything via ENV

* hope to solve everything via ENV

* hope to solve everything via ENV

* hope to solve everything via ENV

* hope to solve everything via ENV

* fix testing

* fix testing

* fix testing

* fix testing

* fix testing

* fix testing

* switch to self hosted libraries

* fixes for macos

* switch to self hosted libraries

* switch to self hosted libraries

* switch to self hosted libraries

* switch to self hosted libraries

* switch to self hosted libraries

* switch to self hosted libraries

* switch to self hosted libraries

* switch to self hosted libraries
2026-05-11 16:36:23 +02:00
Henry Ruhs 76c413a2c1 Refactor/ffmpeg less stream (#1092)
* remove ffmpeg from stream to use opus and vpx, add bunch of todos

* fix testing

* improve download checkout

* fix datachannel download, fix super dirty test clients - setup logic does not belong there

* fix testing
2026-05-11 16:36:23 +02:00
Henry Ruhs 430b16ce56 introduce opus and vpx to libraries (#1091) 2026-05-11 16:36:23 +02:00
henryruhs 9a390bd5bc more uniform codebase for libraries 2026-05-11 16:36:23 +02:00
Henry Ruhs 97e0df01b1 move datachannel to libraries and follow datachannel conventions (#1090)
* move datachannel to libraries and follow new datachannel_module convention

* move datachannel to libraries and follow new datachannel_module convention
2026-05-11 16:36:23 +02:00
Henry Ruhs a8db033033 move stream mode to query parameter (#1089) 2026-05-11 16:36:23 +02:00
henryruhs fda6b7f69d fix test 2026-05-11 16:36:23 +02:00
henryruhs 4198cca18f disable broken tests 2026-05-11 16:36:23 +02:00
henryruhs 9a2d57ae54 refactor detect_websocket_stream_mode and related tests a bit, disable broken tests 2026-05-11 16:36:23 +02:00
henryruhs fe002dc821 skip potential broken tests 2026-05-11 16:36:23 +02:00
henryruhs f8f5d6197d skip potential broken tests 2026-05-11 16:36:23 +02:00
henryruhs 2290e4ea57 giving up - set driver to 0.0.0 for amd 2026-05-11 16:36:23 +02:00
henryruhs 6ec9257e92 add driver version back for amd 2026-05-11 16:36:23 +02:00
henryruhs d727558900 load rocm version for dedicated library 2026-05-11 16:36:23 +02:00
Harisreedhar 07c1c936af Refine RTC bindings: callback-based SDP negotiation, peer state tracking, and type cleanup (#1088)
* Refine RTC bindings: callback-based SDP negotiation, peer state tracking, and type cleanup

* fix lint

* restore peer_connection and rename methods

* remove flags, unused_methods and improve tests

* fix indent
2026-05-11 16:36:23 +02:00
henryruhs 7322bd5d52 fix memory for amd 2026-05-11 16:36:23 +02:00
henryruhs 7f40516f71 use define_xxx for the type() factories 2026-05-11 16:36:23 +02:00
henryruhs ef8567bd3a adjust naming and fix version lookups 2026-05-11 16:36:23 +02:00
henryruhs f8c90b4b25 simplify memory call for amd 2026-05-11 16:36:23 +02:00
henryruhs 343b7f6aad simplify memory call for amd 2026-05-11 16:36:23 +02:00
henryruhs 9b878431d3 rename video memory to memory, add amdsmi library 2026-05-11 16:36:23 +02:00
henryruhs 74a9df35a6 scope the nvidia_ml stuff into module alias 2026-05-11 16:36:23 +02:00
henryruhs 0816bea6d3 cleanup 2026-05-11 16:36:23 +02:00
harisreedhar 6c1475f720 fix lint 2026-05-11 16:36:23 +02:00
henryruhs b549a92a35 cleanup 2026-05-11 16:36:23 +02:00
Harisreedhar 949d9cd276 Move RTC init helpers to bindings layer and clean up structs (#1086)
* converted from type() factory to proper ctypes.Structure subclasses

* change class to method

* bring back rtcSetLocalDescription

* rename rtc_bindings.py to datachannel.py

* rename rtc_library to datachannel_library and rearrange methods

* cleanup
2026-05-11 16:36:23 +02:00
Harisreedhar 99fa2875a9 Fix SDP line endings and media description builder (#1085)
* SDP \r\n fix + build_media_description

* improve tests and remove default arguments

* improve tests

* Refine RTC types and tests with loopback SDP validation

* cleanup
2026-05-11 16:36:23 +02:00
henryruhs b9445fd3a4 add TODOS 2026-05-11 16:36:23 +02:00
henryruhs 66ee9144fb add TODOS 2026-05-11 16:36:23 +02:00
Harisreedhar dfaa1f9cd4 Replace aiortc with libdatachannel direct pipeline (#1083)
* fix stdin close error

* Refactor stream endpoint, fix encoder thread safety and improve tests

* fix and improve test

* remove not None

* use Enum

* use Enum and add todo

* remove poll
2026-05-11 16:36:23 +02:00
Harisreedhar a2aedc8814 Add stream helper utilities and IVF frame iterator (#1082)
* Add stream helper utilities and IVF frame iterator

* fix lint

* some cosmetics

* fix lint

* changes

* improve test

* improve types and test

* add todo for better bitrate calculation
2026-05-11 16:36:23 +02:00
Harisreedhar cc8bfc1af4 Implement RTC store (#1081)
* implement RTC store

* fix ffmpeg_builder

* add RtcSdpOffer type
2026-05-11 16:36:23 +02:00
Harisreedhar 31a16982f3 Refactor RTC library initialization and peer connection API (#1079)
* Replace the mutable RTC_LIBRARY global with @lru_cache on create_static_rtc_library. Expose all RTC_CONFIGURATION fields as parameters with defaults on create_peer_connection. Split add_media_tracks into add_video_track and add_audio_track, each with configurable
   defaults and descriptive parameter names (sync_source_id, canonical_name). Use os.linesep for SDP media descriptions. Simplify init_ctypes to return None and remove the redundant null guard.

* cleanup
2026-05-11 16:36:23 +02:00
Harisreedhar db545b8ae4 libdatachannel implementation Part 1 (#1077)
* add libdatachannel

* move some methods to rtc_helper.py

* move some methods to rtc_helper.py

* open_vp8_encoder -> spawn_stream_encoder

* update url (linux only)

* fix lint

* remove RTC_STATE and add unit tests

* remove convert_to_raw_rgb

* remove 'utf-8' from decode

* cleanup

* cleanup

* cleanup

* move rtc types to rtc_bindings.py

* remove load_library

* cleanup

* add todos and some cleanup

* fix lint
2026-05-11 16:36:23 +02:00
Harisreedhar 701a1b5f9e Remove upload queue & media chunk reader (#1076)
* remove upload queue & media chunk reader

* remove macos large

---------

Co-authored-by: henryruhs <info@henryruhs.com>
2026-05-11 16:36:23 +02:00
henryruhs 1f80aa735a remove macos large 2026-05-11 16:36:23 +02:00
Harisreedhar ccfc5f61b6 Fix symatically wrong usage in tests (#1075)
* fix symatically wrong usage in tests

* add target-240p.jpg everywhere

* combine both target
2026-05-11 16:36:23 +02:00
henryruhs 6e7bcb599a once invalid value causes other to fail too 2026-05-11 16:36:23 +02:00
Harisreedhar 47b703f4f5 Ignore set state for non api scope (#1073)
* ignore set state for non api scope

* replace 404 with 422

* remove two loops

* use HTTP_422_UNPROCESSABLE_CONTENT
2026-05-11 16:36:23 +02:00
henryruhs 7111af232c add todos 2026-05-11 16:36:23 +02:00
henryruhs 2709515c39 fix stuck ffmpeg due multi thread lock 2026-05-11 16:36:23 +02:00
henryruhs a9a4adb083 make ci great again 2026-05-11 16:36:23 +02:00
Henry Ruhs eac03796f7 Fix/ffmpeg sanitize (#1074)
* fix sanitize for videos

* fix macos

* fix macos
2026-05-11 16:36:23 +02:00
Henry Ruhs 5790e03009 Feat/ffprobe v2 (#1072)
* follow the todos

* extend to support bit_rate and more

* simplify like crazy

* simplify like crazy

* minor changes

* clean testing

* clean testing

* kill pipe resolver helpers

* kill pipe resolver helpers

* bit rate seems to be different on CI

* use .splitlines() over .split(os.linesep)

* skip test for windows

* hack testing
2026-05-11 16:36:23 +02:00
henryruhs fe7f402474 fix more todos 2026-05-11 16:36:23 +02:00
henryruhs 0fd6a403b8 stop passing format 2026-05-11 16:36:23 +02:00
Harisreedhar df38778558 fix refresh_session does not validate expiry before refreshing (#1071) 2026-05-11 16:36:23 +02:00
henryruhs e15a2dec76 add tons of todos 2026-05-11 16:36:23 +02:00
henryruhs 399e07261d add tons of todos 2026-05-11 16:36:23 +02:00
henryruhs 61c67c8637 fix macos 2026-05-11 16:36:23 +02:00