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 rate adaptation on the server and client side & testbed for evaluation #7

Merged
merged 83 commits into from
Jan 2, 2025

Conversation

Ender-Wang
Copy link
Contributor

No description provided.

Ender-Wang and others added 30 commits October 13, 2024 23:27
…erver network

- add burst by calculation (burst = sum(rtt) * min(rate)
- add tbf latency to be sum(rtt)
… `iperf3 for Bandwidth Test`, `ping for Latency Test`
- unsubscribe from previous track, only subscribe to target track after getting `SubscribeDone` msg from previous track
- moqtransport: comment out local_track.go/loop()#L131(panic(err))
…ns for better cross platform compatibility
…n()` & add error checking when `AddAudienceToTrack()`
…ing a new video frame every three audio chunk playback ends @ `audience-app`

- App.tsx:
- revamp handleSubscription() to only handle subId = 0 or 1 as meta objects, later changes on video tracks' subscriptions are handled in default case
- render new frame every three audio chunks playback (now, playback is independent from network condition)

- Video/AudioDecoderWorker:
- hold on other rate adaptation or syncing logic
- separate insert and extract actions to fit the new relative constant playback speed
…g from main thread to video decoder thread @ `audience-app`
- main thread sends the first video frame' and audio chunk's timestamp to VideoDecoderWorker
- `retrieveFrame` is called every three audio chunk playback (1s = 100 audio chunks = 30 frames)
- VideoDecoderWorker controls frame post via `renderFrame` or frame delay at micro-seconds level / frame level
…audience-app`

- now the timestamp ref is not only limited to the first chunk of its kind, but if any chunk that has a smaller timestamp (arrived late), timestamp ref will be updated
…er, early drop, drop rate, stale time @ `audience-app`
…ver side

- collected metrics: drop rate, retransmission rate, rtt fluctuation, cwnd fluctuation
- three methods on calculating rtt &/| cwnd fluctuations
- Post conclusion: about methods on calculating rtt/cwnd fluctuation, Method 1 is unusable, Method 2 is better than Method 3
- time of calculation will increase overtime, put it in go routine to avoid interfering with main thread
- now the same method of generating and installing certificate in root CA should work on both macOS and Ubuntu
- now the same method of generating and installing certificate in root CA should work on both macOS and Ubuntu
- Proposal: MOQT should remove the LocalTrack from its Session obj when handling an unsubscribe msg
- Bug triggering scenario: audience subscribed to hd, then unsub from hd and sub to md, then unsub from md, sub back to hd, error occurs
Ender-Wang and others added 29 commits December 16, 2024 14:16
app: remove log file prefix
…ate and retransmissionRate & ra triggering test
@Ender-Wang Ender-Wang merged commit 6123dda into master Jan 2, 2025
1 check passed
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