Skip to content

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/

Clone this wiki locally