Commit Graph

86 Commits

Author SHA1 Message Date
kixelated c88f0b045a
Migrate to quinn and async Rust (#21)
I miss quiche, but it was a pain to do anything asynchronous. MoQ is a
pub/sub protocol so it's very important to support subscribers
joining/leaving/stalling. The API is also just significantly better
since quinn doesn't restrict itself to C bindings, which I'm sure will
come back to haunt me when we want OBS support.
2023-06-08 00:01:34 -07:00
Luke Curley 7cfa5faca2 Correct default media path. 2023-05-30 13:27:16 -07:00
Luke Curley a501f91dae Panic if we can't open the media file. 2023-05-26 14:59:12 -07:00
Luke Curley c09306fd8c Rename the quiche fork. 2023-05-26 14:59:00 -07:00
kixelated 1febcb2e4a
Serve the certificate fingerprint over HTTP (#20)
It's a bloated solution, but it's required for local development until
Chrome supports self-signed WebTransport CAs.
2023-05-24 17:20:44 -07:00
Luke Curley ea918a6327 Oops duplicated web requirements. 2023-05-24 14:29:34 -07:00
Luke Curley 38ea8983d4 Split the web player into it's own repo.
https://github.com/kixelated/moq-js
2023-05-24 13:29:18 -07:00
kixelated fc958e11ae
Split audio into 1s streams (#19) 2023-05-24 12:55:36 -07:00
Luke Curley 05fccc2ae8 Fix decoding. 2023-05-23 15:15:53 -07:00
kixelated f4c8c6cf89
Tabs not spaces u nerds. (#18) 2023-05-23 12:04:27 -07:00
kixelated dfe5cc1771
Merge pull request #17 from kixelated/more-lint
More linting.
2023-05-22 22:11:45 -07:00
Luke Curley d3d1c17520 Use the simple CLI command. 2023-05-22 22:08:34 -07:00
Luke Curley 7b13dfe989 Use a different Github action. 2023-05-22 22:05:07 -07:00
Luke Curley e3ca13dd50 default working-directory 2023-05-22 21:58:05 -07:00
Luke Curley bec525e042 Add working directory. 2023-05-22 21:56:16 -07:00
Luke Curley 7843f8b0e4 Using spaces is WAY better for your career.
This is because in JavaScript, there is a HEAVY perception bias against tab users.

Most ES6 developers look down on anyone who uses tabs.
This could easily mean the difference between getting a job offer and being rejected.
It could mean tens of thousands of dollars of salary potential.

https://medium.com/mintbean-io/tabs-or-spaces-for-practical-javascript-developers-the-answer-is-clear-f66c0458aa1e
2023-05-22 21:49:59 -07:00
Luke Curley cc8792da09 More linting. 2023-05-22 21:43:48 -07:00
kixelated f05bd5a0ac
Merge pull request #16 from kixelated/lint
Lint typescript code
2023-05-22 20:31:09 -07:00
Luke Curley 062cda0b12 Rename some of the events. 2023-05-22 20:23:06 -07:00
Luke Curley 2b943aee8a Generate a cert to fix the issue. 2023-05-22 20:19:07 -07:00
Luke Curley 77be6fa12d Add a GH workflow. 2023-05-22 20:12:14 -07:00
Luke Curley 226f4680a3 Merge remote-tracking branch 'origin/main' into lint 2023-05-22 20:08:48 -07:00
kixelated a1daa3687e
Add a Github action to compile the server 2023-05-22 16:01:40 -07:00
Luke Curley a2371dada6 Add a typescript linter. 2023-05-22 15:54:30 -07:00
kixelated 5410a3767f
Merge pull request #15 from kixelated/quiche
Switch from Go to Rust
2023-05-22 15:25:06 -07:00
Luke Curley 4585a0c04e Merge remote-tracking branch 'origin/main' into quiche 2023-05-22 15:24:43 -07:00
Luke Curley 1137f3024c Add qlog support and update dependencies. 2023-05-22 15:23:15 -07:00
Luke Curley e15812ebed Fix some crashes with the server. 2023-05-22 15:22:52 -07:00
Luke Curley 58a1aa85ac Fix audio crashing after some time. 2023-05-22 14:09:11 -07:00
Luke Curley 4132d8db4d Fix audio crashing after some time. 2023-05-22 13:49:02 -07:00
Luke Curley 3f6ea42380 Fixed audio. 2023-05-22 13:30:46 -07:00
Luke Curley a9fd9186d2 Add the fingerprint symlink back. 2023-05-18 12:09:31 -07:00
Luke Curley 16abb2d6dc Fix docker-compose so it uses the right cert hex. 2023-05-18 12:05:38 -07:00
Luke Curley 4675c27179 Make a docker-compose ez mode. 2023-05-16 10:23:50 -07:00
kixelated 7bb6068951
Merge pull request #13 from wanjohiryan/patch-1
Fix for audio breaking after a certain time into the stream
2023-05-15 19:44:14 -07:00
Wanjohi 14bb3e80b1
Fix for endIndex == 0 breaking audio
The audio seems to break whenever endIndex goes to O, making "second" variable a 
``bash
Float32Array [buffer: SharedArrayBuffer(17640), byteLength: 0, byteOffset: 0, length: 0, Symbol(Symbol.toStringTag): 'Float32Array']
buffer:SharedArrayBuffer(17640)
byteLength:0
byteOffset:0
length: 0
Symbol(Symbol.toStringTag): "Float32Array"
[[Prototype]]:TypedArray
``
2023-05-15 23:50:17 +03:00
Luke Curley 0f4d823d39 cargo fmt 2023-05-09 14:27:11 -06:00
Luke Curley 28f5b97308 Implement prioritization.
Not tested.
2023-05-09 10:29:39 -06:00
Luke Curley 29921ba46d Rename player folder and initial broadcaster code. 2023-05-09 09:07:41 -06:00
Luke Curley 9f0c24b552 Refactor the TS code a bit. 2023-05-09 09:05:08 -06:00
Luke Curley e6791b872d Finish merging audio with video. 2023-05-08 09:20:51 -06:00
Luke Curley d7237c4926 Send INIT as a single message.
Much simpler on both the client and server side.
2023-05-04 19:43:43 -07:00
Luke Curley e9663accc6 cargo clippy 2023-05-02 11:09:36 -07:00
Luke Curley b5b7ffedfa cargo fmt 2023-05-02 11:05:21 -07:00
Luke Curley e578b757e5 wip 2023-05-02 11:05:05 -07:00
Wanjohi 43af19ba94
Fix for audio breaking after a certain time into the stream
After some time into the audio stream, the audio breaks and an error message is displayed in the console stating that the frame offset exceeds the total frames. 
``
caught RangeError: Failed to execute 'copyTo' on 'AudioData': Frame offset exceeds total frames (1024 >= 1024).
``
This is my proposed solution to the issue.  I have tested and verified that my fix works and the audio now runs smoothly without any break.

Hope it helps :)
2023-05-02 15:57:58 +03:00
Luke Curley 2b1a3adecc Video woooorks. 2023-04-27 13:27:24 -07:00
Luke Curley 15c3352d80 Pretty gud. 2023-04-24 13:07:06 -07:00
Luke Curley c3dd45b7a7 Proggers. 2023-04-24 11:45:46 -07:00
Luke Curley bb0437a3bb More refactoring ofc. 2023-04-24 10:18:55 -07:00