{"action":"created","issue":{"url":"https://api.github.com/repos/Dash-Industry-Forum/dash.js/issues/1595","repository_url":"https://api.github.com/repos/Dash-Industry-Forum/dash.js","labels_url":"https://api.github.com/repos/Dash-Industry-Forum/dash.js/issues/1595/labels{/name}","comments_url":"https://api.github.com/repos/Dash-Industry-Forum/dash.js/issues/1595/comments","events_url":"https://api.github.com/repos/Dash-Industry-Forum/dash.js/issues/1595/events","html_url":"https://github.com/Dash-Industry-Forum/dash.js/issues/1595","id":177152367,"number":1595,"title":"Playback of multi-key video only acquires license for a single key","user":{"login":"sandersaares","id":9914262,"avatar_url":"https://avatars.githubusercontent.com/u/9914262?v=3","gravatar_id":"","url":"https://api.github.com/users/sandersaares","html_url":"https://github.com/sandersaares","followers_url":"https://api.github.com/users/sandersaares/followers","following_url":"https://api.github.com/users/sandersaares/following{/other_user}","gists_url":"https://api.github.com/users/sandersaares/gists{/gist_id}","starred_url":"https://api.github.com/users/sandersaares/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sandersaares/subscriptions","organizations_url":"https://api.github.com/users/sandersaares/orgs","repos_url":"https://api.github.com/users/sandersaares/repos","events_url":"https://api.github.com/users/sandersaares/events{/privacy}","received_events_url":"https://api.github.com/users/sandersaares/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2016-09-15T11:29:47Z","updated_at":"2016-10-01T06:33:11Z","closed_at":null,"body":"Video: *v7 encrypted multi-key (1080p)* and *v7 encrypted multi-key multi-period (1080p)* from the Axinom test content menu of the reference player.\r\n\r\nThe videos are encrypted using different keys for different tracks (or groups of tracks). See https://github.com/Axinom/dash-test-vectors for more info.\r\n\r\nBrowser: Chrome 53\r\n\r\nEdge and Firefox have known browser defects that prevent playback of this video. IE was not tested.\r\n\r\nPlayer version: nightly\r\n\r\nBrowser log: [mediapm.edgesuite.net-1473939345152.log.zip](https://github.com/Dash-Industry-Forum/dash.js/files/474490/mediapm.edgesuite.net-1473939345152.log.zip)\r\n\r\nScreenshot: ![multikey](https://cloud.githubusercontent.com/assets/9914262/18548511/c1033d9e-7b51-11e6-8e7e-08a26d81fd53.png)\r\n\r\n**Actual behavior**\r\n\r\nThe first video frame is displayed. The buffer appears to fill. Nothing else happens. No actual playback occurs. \r\n\r\nNetwork traffic inspection indicates that a single license request is sent by the player. Inspection of the license request indicates that only a single key is requested.\r\n\r\nNetwork traffic log via Fiddler: [MultiKey-NetworkLogs.zip](https://github.com/Dash-Industry-Forum/dash.js/files/474483/MultiKey-NetworkLogs.zip)\r\n\r\n**Expected behavior**\r\n\r\nPlayback starts successfully and all required keys are acquired.\r\n\r\nThe license request should either contain the PSSHs of all the tracks to decrypt or there should be multiple license requests. Regardless of the mechanism, more than one key is needed to play this video.\r\n\r\nIn case of the multi-period video, the expectation is that new license requests are made when the 2nd period starts, as appropriate, to obtain the new keys that are used for the 2nd period.\r\n\r\nPossibly relevant: https://github.com/Dash-Industry-Forum/dash.js/issues/1367"},"comment":{"url":"https://api.github.com/repos/Dash-Industry-Forum/dash.js/issues/comments/250895924","html_url":"https://github.com/Dash-Industry-Forum/dash.js/issues/1595#issuecomment-250895924","issue_url":"https://api.github.com/repos/Dash-Industry-Forum/dash.js/issues/1595","id":250895924,"user":{"login":"bwidtmann","id":5071747,"avatar_url":"https://avatars.githubusercontent.com/u/5071747?v=3","gravatar_id":"","url":"https://api.github.com/users/bwidtmann","html_url":"https://github.com/bwidtmann","followers_url":"https://api.github.com/users/bwidtmann/followers","following_url":"https://api.github.com/users/bwidtmann/following{/other_user}","gists_url":"https://api.github.com/users/bwidtmann/gists{/gist_id}","starred_url":"https://api.github.com/users/bwidtmann/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bwidtmann/subscriptions","organizations_url":"https://api.github.com/users/bwidtmann/orgs","repos_url":"https://api.github.com/users/bwidtmann/repos","events_url":"https://api.github.com/users/bwidtmann/events{/privacy}","received_events_url":"https://api.github.com/users/bwidtmann/received_events","type":"User","site_admin":false},"created_at":"2016-10-01T06:33:11Z","updated_at":"2016-10-01T06:33:11Z","body":"If the init data of both tracks are the same, then further requests are blocked. You could skip those lines in ProtectionController.js https://github.com/Dash-Industry-Forum/dash.js/blob/development/src/streaming/protection/controllers/ProtectionController.js#L148"}}
{"actor":{"display_login":"bwidtmann"}}