Networking/Archive/DASH/Implementation: Difference between revisions

m
Line 50: Line 50:
This adds extra components in the above high level diagram, namely DASHManager, MPDParser and the MPD classes, as well as the Adaptation Logic.  The following sections will reflect the base design used in libdash including any changes.
This adds extra components in the above high level diagram, namely DASHManager, MPDParser and the MPD classes, as well as the Adaptation Logic.  The following sections will reflect the base design used in libdash including any changes.


== MPD ==  
== DASHManager ==
Manages all DASH activity in Gecko, similar to nsHttpConnectionMgr.  MPD and MPDParser objects are obtained here.
 
== MPDParser ==
Will use nsDOMParser to read XML from the nsHTTPChannel and populate the MPD classes.
 
'''Diagram needed'''
'''Diagram needed'''


'''Description needed'''
'''Detailed Description needed'''
 
== MPD Classes and Objects ==
As per libdash


=== MPD Classes and Objects ===
'''Diagram needed'''
'''Diagram needed'''


'''Description needed'''
'''Description needed'''


=== MPD Parsing and Behavior ===
== Plan ==
A staged approach will be taken for implementation, with early stages as follows:
* Parse an MPD file off the network and choose a single stream for media playback. No adaptation for this first phase.
* Add a basic adaptation logic.
* (Long term) Expose JS APIs as follows:
*# Buffering/request handling
*# MPD handling
*# Adaptation logic
*# Logging, monitoring.
 
Please note that (4) would correspond to the DASH metrics defined in the Annex of the DASH specification. It would allow application developers to generate reports back to the content provider in order to improve Quality of Service/Experience.
Also note that JS APIs may be exposed earlier; the primary goal, however, is to get adaptive video working in Gecko, and JS APIs (while very desirable) should not be blocking work in these first stages.
 
'''Diagram needed'''
'''Diagram needed'''


'''Description needed'''
'''Description needed'''
''''Question: What XML parsing capabilities do we have in Gecko?''''


== Capability/Load Monitoring ==
== Capability/Load Monitoring ==
88

edits