1. 07 Jan, 2014 3 commits
    • Use the calculated bandwidth after every segment download to select the appropriate bitrate playlist. Allow playlist selection logic to be configurable at runtime. Add tests to verify adaptive behavior. Currently, switching is pretty choppy but testing with a higher goalBufferLength (for instance, 30 seconds) looked pretty good.
      David LaPalomento committed
    • It's not valid according to the spec, but bipbop has whitespace after the commas in its key-value pair lists. Strip leading and trailing whitespace before splitting the key and value when parsing now. Update one of the manifests to use the bad format. Add differentiated media playlists.
      David LaPalomento committed
    • If a master playlist has been downloaded, immediately fetch the default variant playlist and start buffering it. This matches HLS network activity in Safari on OS X which also seems to lazily load the non-default variant streams. Consolidate relative URL resolution and use a solution involving the `base` element to take advantage of browser logic for URL composition. Update test cases to expect absolute URLs for XHRs after the initial manifest request.
      David LaPalomento committed
  2. 06 Jan, 2014 6 commits
  3. 03 Jan, 2014 4 commits
  4. 02 Jan, 2014 2 commits
  5. 29 Dec, 2013 4 commits
  6. 28 Dec, 2013 1 commit
  7. 27 Dec, 2013 2 commits
    • Check if there is a request in flight and don't perform buffer checks until it completes.
      David LaPalomento committed
    • On loadedmetadata and timeupdate, check the length of content from the current playhead position to the end of the buffer. If the amount of time buffered is less than a goal size of 5 seconds, download another segment of the video. For this algorithm to work, it requires an update to the video.js swf to expose the bufferLength property on the netstream directly. Added a fix so that once all segments are downloaded, the plugin does not attempt to continue downloading segments.
      David LaPalomento committed
  8. 26 Dec, 2013 1 commit
  9. 25 Dec, 2013 5 commits
  10. 22 Dec, 2013 2 commits
  11. 20 Dec, 2013 3 commits
  12. 19 Dec, 2013 1 commit
  13. 18 Dec, 2013 2 commits
    • Split parsing into tokenization and a very liberal parser. After this, an "interpreter" needs to be created to build an object representation of the manifest based on the events emitted by the parser. Higher-level manifest tests are broken until that interpreter is written.
      David LaPalomento committed
    • Add the peg parser generation step to the gruntfile. Include the generated parser in the test harness page. Update many of the m3u8 tests to work with the new parser. There are a number of tests still failing. I believe this is because parts of the grammar are not sufficiently flexible to handle some optional parameters. For instance, #EXT-X-BYTE-RANGE is being glommed incorrectly into the #EXTINF definition and that's throwing off parsing. This commit is a progress checkpoint; things are definitely not working correctly.
      David LaPalomento committed
  14. 16 Dec, 2013 2 commits
  15. 13 Dec, 2013 1 commit
  16. 12 Dec, 2013 1 commit