Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add moqtransport implementation #1

Merged
merged 94 commits into from
Sep 19, 2024
Merged

add moqtransport implementation #1

merged 94 commits into from
Sep 19, 2024

Conversation

Ender-Wang
Copy link
Contributor

No description provided.

Ender-Wang and others added 30 commits July 29, 2024 22:01
- TracksAudiences: (according to MOQT Draft 5 Section 5.1) The publisher maintains a list of subscribers for each track
chore(webtransportserver.go): extract session&stream handlers to `session_manager`
- `Catalog`: hold the newest catalogJSON obj for audience session interaction
- `Track`: LocalTrack used in channel session
…annelmanager` struct

- streamer management(placeholder for now)
- remove redundant uuid in `Channels ` field and `RemoveChannel()`
- add functions: `GetChannelNames()`, `GetChannelByName()`, `ChannelUnique()`
…h on server side

- webtransportserver: remove redundant `server` struct
- webtransportserver: streamer & audience AP refinements
- webtransportserver: remove redundant catalog AP
- webtransportserver: chore on originCheck() and session.Upgrade()
- session_manager: remove pure WebTransport session methods
- session_manager: refinement on HandleAnnouncement, HandleSubscription handlers
…ransport&MOQT arch to pure MOQT arch on client side

- removed pure WebTransport session related functions, replaced with Announcement&Subscription based interaction functions
- removed test deserialization&decoding on streamer-app
…rver()`

- chore: remove unused code & comments
- chore: add err handling in two endpoint wt session upgrade
- chore: remove test endpoint matching from `https://googlechrome.github.io`
- chore: mark tlsConfig: NextProtos
* MetaTrack is used for writing meta files to client
Ender-Wang and others added 27 commits September 5, 2024 21:01
- refactor: remove deprecated triggering announce mechanism & obsolete namespace spiting
- chore: remove obsolete triggering announce & trackNamespace splitting
…jMsg @ `streamer-app`

- groupId is now track independent, each track/subscription has its own groupId starting from 0, increment every 60 objMsgs => increment every 1 min
- objId: 0 -> 60 => increment every 1 sec
… and video frames/audio chunks @ `audience-app`

- 1 sec chunk: async operation
- video frames/audio chunks: synced operation: because delta frames depends on the key frame
- fix blocking issue when calling `subscribe` twice in order, because there's only one cs in one session, which means one writer in one cs/session, so writing should be serialized
…-app`

- combined small audio chunks(~10_000 microseconds each) into a bigger one that duration is 20_000 microseconds, so 50 chunks = 1 sec, which matches the framerate (50FPS)
…sh()`; revamp frame/chunk serialization @ `app`

- Bug origin: using 5 bytes for encoding "key' result in two trailing "NUL" values, and "keyNULNUL" != "key" even tho "keyNULNUL" appears to be "key"
- use 1/0 for encoding "video"/"audio" chunk type, and also use 1/0 for encoding "key"/"delta" type (1/0 semantic meaning: true/false in comparison scenario)
- ensure canvas is set before initializing decoder
- chore: remove unnecessary "?" check on deserialization
…er-app`, `audience-app`

- video group: 60 frame objs per group => 1 sec of frames (60FPS)
- audio group: 100 chunk objs per group = 1 sec of audio chunks
…of objs

- “A group behaves as a join point for subscriptions.” Section 2.2 ⇒ Media over QUIC Transport RFC Draft 5
- save log(by appending) to file on Desktop
…-app` & chore: remove redundant `duration` field from `EncodedVideoChunk` @ `streamer-app` & `audience-app`
…ction @ `audience-app`

- track change pending
@Ender-Wang Ender-Wang merged commit a33d62e into master Sep 19, 2024
1 check passed
@Ender-Wang Ender-Wang deleted the worker branch September 19, 2024 10:28
@Ender-Wang Ender-Wang restored the worker branch September 19, 2024 10:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant