-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Agenda for the 2019 Berlin face to face meeting May 20th
Jesús Oliva edited this page May 20, 2019
·
21 revisions
09:00 – 9:30: Welcome
- Registration, welcome coffee.
09:30 – 12:30: Morning session
- Introductions (10 min)
- Dash.js project. Status & some numbers (Jesús, 10 min)
- Version 3. Architectural review. Demos. Release schedule (Jesús, 30 min)
- Version 3. Moving from version 2 to version 3. Documentation requirements. (Jeff, 15 min)
- Add a reference to samples page in dash.js reference player, readme and wiki
- Version 3. New settings module. Any phase of retro-compatibility / deprecation before v3? (15 min)
- You are calling a deprecated API. Remove methods from the documentation. Every deprecated method pointing to the same method that just raise an exception indicating the method was deprecated.
- Document the possible exception so people is aware.
- Low Latency - Switch-down logic. How it works today, anticipated problems, how can we solve? (Will, 20 min)
- Optimization - Video adaptation switch to be similar to how it works for multiperiod
- Makes sense to keep a buffer for fetch requests so they don't push anything in the buffer until a level of seconds is reached
- Possible solutions - Prepare a special adaptation to allow switch emergencies
- Error checking/reporting with regards to gaps in the media stream, where currently the player will just stall go into an infinite download loop until the user seeks again. (Dave/Howard, 15 min)
- Enable jumpGaps by default
- Raise an event when a gap longer than small gap is detected. Report next buffer position in the buffer so user can do a seek if he decides to continue the playback
- Build system changes. Migration to webpack (10 min)
- Migration document when switching from grunt to webpack
- Add all commands to npm instead of using grunt commands directly
- Providing ES6 compatible output in the building process
- CTA WAVE Device Playback specification tests - what is missing? (Thomas, 10 min)
- Building a set of tests for devices and players to verify how well they work at specific circunstances (playing two segments in a row, switching bitrate)
- Asking for people that are having problems with specific devices
- CTA Wave has a github to which new issues can be reported (Url to be added)
- Jesús to concentrate issues that make sense for CTA Wave and report them
- Low-Latency DASH updates to guidelines - player recommendations and requirements (Thomas, 10 min)
- Idea to decouple Media time from availabilityStartTime
- Timing information in the MPD and embedded in the segments
- TargetLatency and max playback rate to be defined in the service description (MPD)
- minLatency (don't configure the client to fall below this), maxLatency (if go beyond it, stop the service) targetLatency
- In low latency, don't wait 100ms in the scheduler before requesting the next segment. We should request the next segment just after the current one has been received.
- DASHIF LL CR to be available after DASH-IF meeting this week
12:30 – 13:30: Lunch, Networking
13:30 – 17:00: Afternoon session
- Offline playback support. Status & Demo (Bertrand, 20 min)
- Multi period status. Dynamic Ads Insertion demo (MediaTailor + MediaPackage + dash.js) (Jesús, 30 min)
- Add a new method to the controlbar that easily allows to activate/deactivate seeking. Take into account the possibility of deactivating seeking for specific time positions (or after specific time positions)
- Review UI of live mode for controlbar
- Show time as a range in localtime format 01:00:00 AM ------------------------ 03:00:00AM
- Show time label when moving over the seeking bar
- Document stylesheets of controlbar so it can be easily customized (colors of components, what elements to show, etc)
- Low-Latency - Join time - how to minimize (Will, 15 min)
- Review startup time process and minimize the time it takes to start playback. Find measures to reduce join time for low latency streams
- Bandwidth estimation for Low Latency (Ali)
- Ali's to share source code with the implementation so we can start integrating it into dash.js v3
- Player APIs - do we need something consistent? (Thomas, 10 min)
- Makes sense standarized api offered by Media Players?
- Fast start optimizations (preloading manifests, downloading init segs and media segments in parallel, loading first A/V segments and then pausing or holding in memory, API to adjust starting buffer before playback begins). (Will, 20 min)
- Request init segment and first segments in parallel
- Supports init segments defined in the MPD
- Introduce the concept of mode for prefetch:
- Download just the manifest
- Downloads manifest + init segments
- Download manifest + init segments + content segments (what we have today)
- Whenever we are ok with the buffer and we know we have enough bw, download init segments of all renditions so they are ready whenever they are needed
- When selecting startup bitrate, try to use manifest download throughput to take a decision
- Check what happens when someone sets a time server that is not responding
- Better type management. Use of Flow.js. Types would allow for errors to be caught on compile (Dave/Howard, 20 min)
- Look to move to Typescript (Dash.js v4)
- In the middle, use Flow.js
- Better organization of documentation. Getting started guides (Jesús, 10 min)
- Show just modules
- Do not include modules that do not provide functionality to users
- API reference for developers, API reference for users
- Whats the next? DASH-IF version 5. Roadmap (15 min)
- Events
- Multiperiod
- Low Latency
- Initialization sets
- Pre-rolls for live streaming
- Mixture of live content and vod content
- Ideas to promote dash.js (Jesús, 15 min)
- Keep track of companies using dash.js. Email the group to get consent
- IBC innovation board (Jesús)
- Event Processing Model - how to get this into dash.js? (Thomas, 10 min)
- Make APIS for events not depend on if we are using events in mpd or inband events
- Possibility of subscribe to events and get info about them before timestamp of the event has reached
- Possibility of subscribe to a events with a specific schema and value
- Mechanism to avoid dispatching equivalent events
- Use the same interface for timed metadata
- Pass more information in the event (timestamp, duration, etc). Whatever info is part of the event should be communicated to the app level
- Thomas will collect all the spec docs and will share
- New W3C Media Capabilities API (Bertrand, 10 min)
- Start exploring Media Capabilities API integration (Firefox & Chrome)
- Method for checking if browser would be able to play the content of a given manifest
- Dash.js extension capabilities. Network request filters (15 min)
- Axel to participate in the definition of this
- Team Photo!
18:00 – 21:00: Group Dinner at "Schnitzelei“, https://schnitzelei.de/charlottenburg/en/