Add notes on live stream implementations
Start a doc to track some popular HLS live streams and the manifest features they utilize. Fill out info for Unicorn Media streams.
Add function to merge an update to a media playlist
When an ENDLIST tag is not present, media playlists should be continually re-requested to check for updates. The updated versions of the playlist must be reconciled with the client's metadata to continue playback. Added a single function to manage this process for media playlists with and without media sequence information, using URIs and byterange information to match segments.
Removed parser code that defaulted the playlist type to VOD if no type was specified. The spec allows live streams to omit the playlist type if the server intends to remove segments from the playlist. None of the runtime code actually referenced playlist type so it may have been a bit premature to parse it at all.
Reload playlists when EXT-X-ENDLIST isn't present
Modify the parser to include an attribute when the endlist tag shows up in a media playlist. Update test playlist parses to add the attribute where appropriate. Trigger a playlist reload and merge if endlist isn't present in the parse. Clean up some formatting.
Track the media playlist URI when inferring a master playlist
When a media playlist was loaded directly, the URI wasn't being set on the implicit master playlist created by the plugin. That meant that playlist reloads weren't being correctly associated with the old playlist version and merges weren't happening. Now, live media playlists loaded directly should be updated properly after being refreshed and segment URLs are resolved directly against the media playlists when the master playlist is only inferred.
Duration should be infinity for live playlists
Unless an explicit total duration tag is present in the playlist, set the duration to Infinity for live HLS. Document iOS behavior for live streams.
Compare the old playlist to the update to determine the new media index
When refreshing a playlist, determine the new media index by comparing segment URIs. Consolidate playlist update logic. "Sliding window" live streams are now working.
Fix variant switching media index test
The original test was invoking the playlist reload callback which tested whether the media index was updating correctly after a refresh. Now, the test correctly triggers the a variant switch after downloading a segment. Consolidated media index update code and ensured state is properly updated after a switch.
Pull out XHR helper
Create a helper method for creating XMLHttpRequests and migrate downloadPlaylist to using it.
Pull out code to manage different playlist download callbacks.
`downloadPlaylist` was quite complicated so try to tease apart some of the cases that were being managed there. Stopped playlists from refreshing when they're not currently active.
Merge branch 'master' into feature/live-um
Merge pull request #34 from videojs/feature/live-um

Experimental Live HLS support