-
Notifications
You must be signed in to change notification settings - Fork 0
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
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- 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
…ss Diagram` and `State Machine Diagram`
… and refinements
…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
…ackAlias` handling @ `streamer-app`
…ce session initial announcement msg
… into standard functions in moqjs lib
…ed @ `audience-app`
- 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
…objMsg @ `audience-app`
… 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)
- should be 100 chunks, 0.01s each
…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
…` class @ `audience-app`
… workers @ `audience-app`
- 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.