{"action":"created","issue":{"url":"https://api.github.com/repos/videogular/videogular/issues/306","labels_url":"https://api.github.com/repos/videogular/videogular/issues/306/labels{/name}","comments_url":"https://api.github.com/repos/videogular/videogular/issues/306/comments","events_url":"https://api.github.com/repos/videogular/videogular/issues/306/events","html_url":"https://github.com/videogular/videogular/pull/306","id":120830179,"number":306,"title":"Playback plugin support improvements","user":{"login":"kfeinUI","id":5054750,"avatar_url":"https://avatars.githubusercontent.com/u/5054750?v=3","gravatar_id":"","url":"https://api.github.com/users/kfeinUI","html_url":"https://github.com/kfeinUI","followers_url":"https://api.github.com/users/kfeinUI/followers","following_url":"https://api.github.com/users/kfeinUI/following{/other_user}","gists_url":"https://api.github.com/users/kfeinUI/gists{/gist_id}","starred_url":"https://api.github.com/users/kfeinUI/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kfeinUI/subscriptions","organizations_url":"https://api.github.com/users/kfeinUI/orgs","repos_url":"https://api.github.com/users/kfeinUI/repos","events_url":"https://api.github.com/users/kfeinUI/events{/privacy}","received_events_url":"https://api.github.com/users/kfeinUI/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-12-07T17:49:27Z","updated_at":"2015-12-08T08:46:57Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/videogular/videogular/pulls/306","html_url":"https://github.com/videogular/videogular/pull/306","diff_url":"https://github.com/videogular/videogular/pull/306.diff","patch_url":"https://github.com/videogular/videogular/pull/306.patch"},"body":"Enhanced the core to better facilitate playback plugins to fix #302. Now they are part of the playback flow rather than having to compete with the vg core. Supports multiple playback plugins and allows for you to bounce between media types with ease.\r\n* Native style src fall-through behavior. vg-media can play loop now attempts to play the given src using the available plugins.\r\n* The basic structure for a playback plugin is to implement a loading function which accepts a src and type. If testing of the input reveals media it is capable of playing, it will be loaded up. An unloading function is then returned. You then simply register the plugin through API.registerPlaybackPlugin(loadingFunc). This is demonstrated in vg-dash. As you can see, it's pretty simple. The unloading function gets executed prior to applying a new src.\r\n* Shouldn't break existing plugins.\r\n\r\n<b>Other changes in here:</b>\r\n1) Tracking of the actively used playback source, now available through API.activeSource.\r\n2) A manual specification / override of isLive by including an isLive flag on your src object. Depending on the media type, this may not be possible to pull from the media or player. Fixes #303.\r\n3) Safe apply throughout vg-controller using $applyAsync().\r\n4) Found that multiple source changes were being picked up by vg-media, so took a stab at enhancing its checks in order to prevent the same source from being applied more than once.\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/videogular/videogular/issues/comments/162815595","html_url":"https://github.com/videogular/videogular/pull/306#issuecomment-162815595","issue_url":"https://api.github.com/repos/videogular/videogular/issues/306","id":162815595,"user":{"login":"Elecash","id":790704,"avatar_url":"https://avatars.githubusercontent.com/u/790704?v=3","gravatar_id":"","url":"https://api.github.com/users/Elecash","html_url":"https://github.com/Elecash","followers_url":"https://api.github.com/users/Elecash/followers","following_url":"https://api.github.com/users/Elecash/following{/other_user}","gists_url":"https://api.github.com/users/Elecash/gists{/gist_id}","starred_url":"https://api.github.com/users/Elecash/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Elecash/subscriptions","organizations_url":"https://api.github.com/users/Elecash/orgs","repos_url":"https://api.github.com/users/Elecash/repos","events_url":"https://api.github.com/users/Elecash/events{/privacy}","received_events_url":"https://api.github.com/users/Elecash/received_events","type":"User","site_admin":false},"created_at":"2015-12-08T08:46:56Z","updated_at":"2015-12-08T08:46:56Z","body":"Thank you!\r\n\r\nI want to test it in a separate branch to be sure that is 100% backward compatible. If it's not backward compatible, probably I will made another breaking change that I have in mind to release a v2.0.0.\r\n\r\nIt will take a few days tho, so please, be patient, this PR could take a bit to be merged."}}