Commit Graph

238 Commits

Author SHA1 Message Date
henryruhs dc74e1c783 event driven test_stream_video 2026-05-14 22:21:36 +02:00
henryruhs a097034889 skip test for macos 2026-05-14 19:32:14 +02:00
henryruhs d8d9d5a280 fix test for macos 2026-05-14 18:44:02 +02:00
henryruhs eeb342ce36 fix macos for aom encode 2026-05-14 17:20:18 +02:00
henryruhs b8d00d6389 get rid of aom obus stuff again 2026-05-14 16:44:09 +02:00
Henry Ruhs 18a487347a av1 support integrated (#1112) 2026-05-14 16:11:23 +02:00
Henry Ruhs b607e4a99e AV1 codec support (#1111)
* restructure xxx_encoders, introduce av1 codec

* get rid of strip_temporal_delimiters

* improve testing

* fix test for macos

* improve testing
2026-05-14 13:30:18 +02:00
Henry Ruhs b1bc0ea43c aom library for av1 support (#1110) 2026-05-14 11:41:28 +02:00
Henry Ruhs 832d954df6 use bytes over pointer for opus encoder (#1109)
* use bytes over pointer for opus encoder

* use bytes over pointer for opus encoder
2026-05-13 14:41:26 +02:00
Henry Ruhs 9e1c068938 improve naming, remove flags as not needed (#1108)
* improve naming, remove flags as not needed

* fix lint
2026-05-13 13:34:37 +02:00
Harisreedhar bff222a12f try to unify structure of encode_opus_buffer and encode_vpx_buffer (#1107) 2026-05-13 16:26:30 +05:30
Henry Ruhs 9453a042a1 hash based test for test_stream_image (#1104)
* hash based test for test_stream_image

* new todo for test_video_stream

* new todo for test_video_stream
2026-05-12 19:51:19 +05:30
Harisreedhar 5e39c60b5c Improve encoder tests with hash assertion (#1103)
* improve test_encode_opus_buffer

* try different hash per os

* fix lint

* add windows check

* update windows hash

* fix test and lint

* update windows hash

* update CI for test_video_encoder.py

* update hash for macos

* update method to use single cpu

* update mac hash

* update windows hash

* cleanup

* restore ci.yml

* remove argument defaults

* selected CI tests

* selected CI tests

* restore ci.yml

---------

Co-authored-by: henryruhs <info@henryruhs.com>
2026-05-12 16:36:06 +05:30
Harisreedhar 8690ccf49e rename methods (#1102) 2026-05-12 13:22:33 +05:30
Henry Ruhs e53cb63577 QA - Encoder Testing (#1101)
* testing for audio and video encoders, minor cleanups

* fix lint

* finish create_vpx_encoder, adjust unrelated order of width vs height args
2026-05-12 08:23:27 +02:00
henryruhs 717ff0aa33 restore todos 2026-05-11 21:23:50 +02:00
henryruhs fdf1b841b2 setup_platform is no longer needed, bring back conda.py 2026-05-11 17:42:51 +02:00
Harisreedhar 92296fc5a5 move run_video_encode_loop (#1100) 2026-05-11 21:04:56 +05:30
Harisreedhar ab7110eb92 Add audio encoder (#1096)
* add audio encoder

* add todos

* add todos

* cleannup and add todos

* fix lint

---------

Co-authored-by: henryruhs <info@henryruhs.com>
2026-05-11 16:36:23 +02:00
Henry Ruhs 20b392f760 ship libssl and libcrypto in linux (#1095) 2026-05-11 16:36:23 +02:00
Harisreedhar bb1b8ccf13 Add video_encoder.py (#1094)
* add video_encoder.py

* rename pts to presentation_timestamp

* improve test

* improve test

* cleanup

* cleanup

* fix lint
2026-05-11 16:36:23 +02:00
henryruhs 6fe735618e cleanup 2026-05-11 16:36:23 +02:00
henryruhs 527bb0ff45 cleanup 2026-05-11 16:36:23 +02:00
henryruhs e05d13c47e cleanup 2026-05-11 16:36:23 +02:00
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 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
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 9b878431d3 rename video memory to memory, add amdsmi library 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 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 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
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