{"push_id":717181808,"size":58,"distinct_size":3,"ref":"refs/heads/seek-after-end","head":"d56817e2e1c8c75508c28da8808249740bd25b71","before":"75cc945a13f85a210f78c2a73398d08ac6704980","commits":[{"sha":"11230c3ed7c86d8759b17050af2cd9adf6021bf7","author":{"email":"cc8b30abf0c453de98d3c2547ca785931def2d96@gmail.com","name":"David LaPalomento"},"message":"Get the switching simulator working again\nMock out metadata stream support. Comment javascript simulation parameters. Simulation results currently always buffer the first segment because of the bandwidth scaling factor applied to deal with real-world discrepancies between m3u8 download times and steady-state downloads. Behavior after the first segment still looks good.","distinct":false,"url":"https://api.github.com/repos/videojs/videojs-contrib-hls/commits/11230c3ed7c86d8759b17050af2cd9adf6021bf7"},{"sha":"d74b33c8b7664c4023436ab82972d5642fc23e0e","author":{"email":"cc8b30abf0c453de98d3c2547ca785931def2d96@gmail.com","name":"David LaPalomento"},"message":"Implement seekable\nOverride the Flash tech's seekable method to take into account live playlists.","distinct":false,"url":"https://api.github.com/repos/videojs/videojs-contrib-hls/commits/d74b33c8b7664c4023436ab82972d5642fc23e0e"},{"sha":"b27cedccb4c136559691d90ac31f5773416e31c6","author":{"email":"cc8b30abf0c453de98d3c2547ca785931def2d96@gmail.com","name":"David LaPalomento"},"message":"Report seekable relative to the earliest possible position at load start\nKeep track of the accurate durations of expired segments in the playlist loader so that it's possible to accurately calculate the start and end points of the seekable ranges relative to media timeline position zero, even if we switch variant streams or seek within a live stream. Track the media timeline position of the last discontinuity to allow for PTS-based variant stream synchronization instead of the incorrect media sequence based method we're currently using. Stop rewriting timestamps in the transmuxed FLV tags for that reason as well. Add m3u8 parser support for EXT-X-DISCONTINUITY-SEQUENCE.","distinct":false,"url":"https://api.github.com/repos/videojs/videojs-contrib-hls/commits/b27cedccb4c136559691d90ac31f5773416e31c6"},{"sha":"c4a8ac2527dfc1175f3604342c25d897fcb18ec6","author":{"email":"cc8b30abf0c453de98d3c2547ca785931def2d96@gmail.com","name":"David LaPalomento"},"message":"Merge pull request #293 from dmlap/switching-sim-updates\n\nGet the switching simulator working again","distinct":false,"url":"https://api.github.com/repos/videojs/videojs-contrib-hls/commits/c4a8ac2527dfc1175f3604342c25d897fcb18ec6"},{"sha":"237d9b4e544956d619f3e3a683592c320fc924fc","author":{"email":"cc8b30abf0c453de98d3c2547ca785931def2d96@gmail.com","name":"David LaPalomento"},"message":"Do not re-add in-band cues when seeking or changing playlists\nPreviously, in-band metadata cues were added whenever they were encountered during the segment parsing process. If you seeked in a stream, this would cause the same cues to be added multiple times when its containing segment was re-buffered. Now, cues that occur after current time are cleared on every seek which allows them to be re-added without duplication after they're re-parsed. Cues before the current time are retained because re-buffering would not cause them to be recreated. Adjust cue point creation to take live stream segment expiration into account.","distinct":false,"url":"https://api.github.com/repos/videojs/videojs-contrib-hls/commits/237d9b4e544956d619f3e3a683592c320fc924fc"},{"sha":"95aa05082e0611fbf4aa6f5692b7eaa5a2e859a3","author":{"email":"cc8b30abf0c453de98d3c2547ca785931def2d96@gmail.com","name":"David LaPalomento"},"message":"Track the media time associated with the segment parser PTS offset\nIf the segment parser timestamp offset isn't at the start of the last encountered discontinuity, it was impossible to recover the associated media time. Track the media time alongside the timestamp offset so that when a stream is first loaded and the last discontinuity segment start is unavailable, it's still possible to properly translate timestamps. Also, make sure that cue points ahead of current time are cleaned out of the in-band metadata track on seeking. We previously assumed they were ordered by start time but that doesn't seem to be the case for Chrome on OS X. Use the dev version of video.js because of Google Closure compiler gobbling some part of the requiremed machinery for removing cues.","distinct":false,"url":"https://api.github.com/repos/videojs/videojs-contrib-hls/commits/95aa05082e0611fbf4aa6f5692b7eaa5a2e859a3"},{"sha":"e1e725cdbac81e3160b31084e5699350f0f4e679","author":{"email":"cc8b30abf0c453de98d3c2547ca785931def2d96@gmail.com","name":"David LaPalomento"},"message":"TXXX value fields are null-terminated in practice\nTwo tools used to inject TXXX frames terminate the value field with a null byte. Make sure that isn't included in the parsed representation.","distinct":false,"url":"https://api.github.com/repos/videojs/videojs-contrib-hls/commits/e1e725cdbac81e3160b31084e5699350f0f4e679"},{"sha":"0cd39e1cf9ea90d76f4fce4f0cab4f60e2ab8b01","author":{"email":"cc8b30abf0c453de98d3c2547ca785931def2d96@gmail.com","name":"David LaPalomento"},"message":"@dmlap implement seekable for live streams ([view](https://github.com/videojs/videojs-contrib-hls/pull/295))","distinct":false,"url":"https://api.github.com/repos/videojs/videojs-contrib-hls/commits/0cd39e1cf9ea90d76f4fce4f0cab4f60e2ab8b01"},{"sha":"a3e64063ab20cc24b5437e2cf07284267ebfceed","author":{"email":"cc8b30abf0c453de98d3c2547ca785931def2d96@gmail.com","name":"David LaPalomento"},"message":"0.17.0","distinct":false,"url":"https://api.github.com/repos/videojs/videojs-contrib-hls/commits/a3e64063ab20cc24b5437e2cf07284267ebfceed"},{"sha":"2624c254f3d81abd397c874b3ce180c3447f86ad","author":{"email":"b9d4a29e46e3a93949839614bb40bfca9ed28316@brightcove.com","name":"jforbes"},"message":"Fix changelog","distinct":false,"url":"https://api.github.com/repos/videojs/videojs-contrib-hls/commits/2624c254f3d81abd397c874b3ce180c3447f86ad"},{"sha":"24ab14028ddf6215d57601b0d5618002093b6ff3","author":{"email":"cc8b30abf0c453de98d3c2547ca785931def2d96@gmail.com","name":"David LaPalomento"},"message":"Merge pull request #296 from forbesjo/master\n\nFix changelog for 0.17.0","distinct":false,"url":"https://api.github.com/repos/videojs/videojs-contrib-hls/commits/24ab14028ddf6215d57601b0d5618002093b6ff3"},{"sha":"f328f16d6365192e5c906a788bf530cd42e99758","author":{"email":"cc8b30abf0c453de98d3c2547ca785931def2d96@gmail.com","name":"David LaPalomento"},"message":"Don't preload live videos\nIf play() was called before the media playlist has been downloaded, when the playlist finally was received we would still update media index to the live point to start buffering. We would have skipped the code that adjusted currentTime however, so playback would seem to begin at zero instead of seekable().end(0). That would cause media-timeline relative positions to be off by the live window length and things like cue points would fire 60 seconds (for example) after they should have. Now, don't preload live video at all and just seek to live immediately on play, updating the currentTime at that point.","distinct":false,"url":"https://api.github.com/repos/videojs/videojs-contrib-hls/commits/f328f16d6365192e5c906a788bf530cd42e99758"},{"sha":"fe47dd5e6507fd9128ccc08ec7f043f455999e2b","author":{"email":"cc8b30abf0c453de98d3c2547ca785931def2d96@gmail.com","name":"David LaPalomento"},"message":"Merge pull request #299 from dmlap/autoplay-live\n\nDon't preload live videos","distinct":false,"url":"https://api.github.com/repos/videojs/videojs-contrib-hls/commits/fe47dd5e6507fd9128ccc08ec7f043f455999e2b"},{"sha":"84017e77269cfe54dd18bef43f5231d028a03610","author":{"email":"cc8b30abf0c453de98d3c2547ca785931def2d96@gmail.com","name":"David LaPalomento"},"message":"Update changelog for #299","distinct":false,"url":"https://api.github.com/repos/videojs/videojs-contrib-hls/commits/84017e77269cfe54dd18bef43f5231d028a03610"},{"sha":"2ce42f831fc6d2f68035da60141575d8a8d9e7bb","author":{"email":"cc8b30abf0c453de98d3c2547ca785931def2d96@gmail.com","name":"David LaPalomento"},"message":"0.17.1","distinct":false,"url":"https://api.github.com/repos/videojs/videojs-contrib-hls/commits/2ce42f831fc6d2f68035da60141575d8a8d9e7bb"},{"sha":"c5de61ef3adc02bb34f9008390176d76a0c3d1ca","author":{"email":"cc8b30abf0c453de98d3c2547ca785931def2d96@gmail.com","name":"David LaPalomento"},"message":"Update Getting Started\n\nInclude the video element config in the example code. Link to the demo on gh-pages.","distinct":false,"url":"https://api.github.com/repos/videojs/videojs-contrib-hls/commits/c5de61ef3adc02bb34f9008390176d76a0c3d1ca"},{"sha":"c6c973f605002571f0a369693344fd39838fa0b6","author":{"email":"cc8b30abf0c453de98d3c2547ca785931def2d96@gmail.com","name":"David LaPalomento"},"message":"Merge pull request #304 from videojs/getting-started-demo\n\nUpdate Getting Started","distinct":false,"url":"https://api.github.com/repos/videojs/videojs-contrib-hls/commits/c6c973f605002571f0a369693344fd39838fa0b6"},{"sha":"d9afdb77dd368a920dd2de7d056fd4e5471b5e61","author":{"email":"e30a6131f1f7bd568a62f091bd80bdef7d9a4201@brightcove.com","name":"Brandon Bay"},"message":"getMediaIndexByTime was returning -1 at playlist boundaries\n\nIt should correctly return the first or last segment in the playlist.","distinct":false,"url":"https://api.github.com/repos/videojs/videojs-contrib-hls/commits/d9afdb77dd368a920dd2de7d056fd4e5471b5e61"},{"sha":"72f9507d666e6132dfc80016bed5d4e217fe05b8","author":{"email":"cc8b30abf0c453de98d3c2547ca785931def2d96@gmail.com","name":"David LaPalomento"},"message":"Account for expired segments when seeking\nDeprecate getMediaIndexByTime and replace it with a PlaylistLoader.getMediaIndexForTime_ that considers expired content in live playlists. Fix an issues that would allow the return value to be less than zero or greater than the index of the last available media segment. Currently, this code does not take into account rounding of segment durations in HLS v3.","distinct":false,"url":"https://api.github.com/repos/videojs/videojs-contrib-hls/commits/72f9507d666e6132dfc80016bed5d4e217fe05b8"},{"sha":"6b05241fbd47d449b12e50c6a5d3163a11302dee","author":{"email":"cc8b30abf0c453de98d3c2547ca785931def2d96@gmail.com","name":"David LaPalomento"},"message":"Fix seek issue when first playing live streams\nWhen you first called play() on a live stream, the seek wouldn't complete because of a condition in fillBuffer() that prevented buffering until the player had started. Allow fillBuffer() to begin buffering in a live stream at a specified position, which ensures drainBuffer() will clean up the seek correctly.","distinct":false,"url":"https://api.github.com/repos/videojs/videojs-contrib-hls/commits/6b05241fbd47d449b12e50c6a5d3163a11302dee"}]}