{"action":"created","issue":{"url":"https://api.github.com/repos/dailymotion/hls.js/issues/86","labels_url":"https://api.github.com/repos/dailymotion/hls.js/issues/86/labels{/name}","comments_url":"https://api.github.com/repos/dailymotion/hls.js/issues/86/comments","events_url":"https://api.github.com/repos/dailymotion/hls.js/issues/86/events","html_url":"https://github.com/dailymotion/hls.js/pull/86","id":118277499,"number":86,"title":"Decouple streaming state machine vs actual buffer management","user":{"login":"tchakabam","id":1480052,"avatar_url":"https://avatars.githubusercontent.com/u/1480052?v=3","gravatar_id":"","url":"https://api.github.com/users/tchakabam","html_url":"https://github.com/tchakabam","followers_url":"https://api.github.com/users/tchakabam/followers","following_url":"https://api.github.com/users/tchakabam/following{/other_user}","gists_url":"https://api.github.com/users/tchakabam/gists{/gist_id}","starred_url":"https://api.github.com/users/tchakabam/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tchakabam/subscriptions","organizations_url":"https://api.github.com/users/tchakabam/orgs","repos_url":"https://api.github.com/users/tchakabam/repos","events_url":"https://api.github.com/users/tchakabam/events{/privacy}","received_events_url":"https://api.github.com/users/tchakabam/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/dailymotion/hls.js/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":20,"created_at":"2015-11-22T17:55:38Z","updated_at":"2016-01-18T11:57:31Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/dailymotion/hls.js/pulls/86","html_url":"https://github.com/dailymotion/hls.js/pull/86","diff_url":"https://github.com/dailymotion/hls.js/pull/86.diff","patch_url":"https://github.com/dailymotion/hls.js/pull/86.patch"},"body":"Goal here is to separate the concerns of various streaming task scheduling (loading data, flushing/seeking, and demuxing) vs the concerns of appending the data to the actual media buffer or simply said: ***providing the right data in time is another concern than decoding the data and playing it***.\r\n\r\n* Added respective `BUFFER_...` events to pass around data necessary to the `BufferController` to feed the media with data\r\n\r\n* Everything `MediaSource` (and around it) is in a specific implementation `MSEBufferController`.\r\n\r\n* No more polling is used around the MSE API, we are relying on a internal queue upfront the SourceBuffers and attempt dequeuing as much as possible on update-end and on initial state / events.\r\n\r\n* Other `BufferController` implementations could be added that use the streaming data in either way around some kind of `Media`.\r\n\r\n* Use string values instead of numbers for `States` enum"},"comment":{"url":"https://api.github.com/repos/dailymotion/hls.js/issues/comments/172508987","html_url":"https://github.com/dailymotion/hls.js/pull/86#issuecomment-172508987","issue_url":"https://api.github.com/repos/dailymotion/hls.js/issues/86","id":172508987,"user":{"login":"whatvn","id":846452,"avatar_url":"https://avatars.githubusercontent.com/u/846452?v=3","gravatar_id":"","url":"https://api.github.com/users/whatvn","html_url":"https://github.com/whatvn","followers_url":"https://api.github.com/users/whatvn/followers","following_url":"https://api.github.com/users/whatvn/following{/other_user}","gists_url":"https://api.github.com/users/whatvn/gists{/gist_id}","starred_url":"https://api.github.com/users/whatvn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/whatvn/subscriptions","organizations_url":"https://api.github.com/users/whatvn/orgs","repos_url":"https://api.github.com/users/whatvn/repos","events_url":"https://api.github.com/users/whatvn/events{/privacy}","received_events_url":"https://api.github.com/users/whatvn/received_events","type":"User","site_admin":false},"created_at":"2016-01-18T11:57:31Z","updated_at":"2016-01-18T11:57:31Z","body":"awesome :+1: "}}