Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ClearKey protection data object getting filtered out #2769

Closed
4 tasks done
JohnIball opened this issue Sep 18, 2018 · 6 comments
Closed
4 tasks done

ClearKey protection data object getting filtered out #2769

JohnIball opened this issue Sep 18, 2018 · 6 comments

Comments

@JohnIball
Copy link

Environment
  • MPD file: mpd.txt

  • Dash.js version: 2.6.8 and 2.6.9

  • Browser name/version: Chrome 68, Firefox

  • OS name/version: MacOS 10.12.6

Steps to reproduce

We see this attempting to play VOD using our player (I'd have to provide more details of stream/license privately).

Observed behaviour

This works for us up to 2.6.7 but fails in later versions.

Note that our content pipeline produces MPDs that include protection data info for Widevine, PlayReady and ClearKey. This is because we have different platforms that use different Key Systems.

From 2.6.8 the clearKey key isn't used and WideVine is selected instead, so video doesn't play as the content is clearKey encrypted.

Previously (from #2318) there was a check in ProtectionKeyController.getSupportedKeySystemsFromContentProtection to see if the initData for a key system existed or not. This was removed in 2.6.8 as a result of PR #2451 (this diff). Putting the check back in fixes the problem for us.

Does anyone know why this bit of code was removed? It doesn’t seem directly related to the work in the PR.

Console output
[47][MediaPlayer] [dash.js 2.9.0] MediaPlayer has been initialized 
dashjs.js:14648 [64][Protection] EME detected on this user agent! (ProtectionModel_21Jan2015) 
dashjs.js:14648 [84][MediaPlayer] Streaming Initialized 
dashjs.js:14648 [127][MediaPlayer] Playback Initialized 
dashjs.js:14648 [420][DashParser] Parsing complete: ( xml2json: 59.1ms, objectiron: 1.30ms, total: 0.0604s) 
dashjs.js:14648 [507][ManifestUpdater] Manifest has been refreshed at Tue Sep 18 2018 10:08:13 GMT+0100 (British Summer Time)[1537261693.642]  
dashjs.js:14648 [689][AbrController] AbrController (video) switch from 0 to 2/4 (buffer: 0) . 
dashjs.js:14648 [744][Stream] No text data. 
dashjs.js:14648 [745][Stream] No fragmentedText data. 
dashjs.js:14648 [747][Stream] No embeddedText data. 
dashjs.js:14648 [748][Stream] No muxed data. 
dashjs.js:14648 [760][Stream] No image data. 
dashjs.js:14648 [816][ProtectionController] DRM: KeySystem Access Granted (com.widevine.alpha)!  Selecting key system... 
dashjs.js:14648 [979][BufferController][video] Init fragment finished loading saving to video's init cache 
dashjs.js:14648 [1010][ScheduleController][video] OnFragmentLoadingCompleted - Url: https://itvpnpdotcom-a.akamaihd.net/1-0694-9561-001/18/1/VAR011/1-0694-9561-001_18_1_VAR011.ism/dash/1-0694-9561-001_18_1_VAR011-video=866017.dash 
dashjs.js:14648 [1041][BufferController][audio] Init fragment finished loading saving to audio's init cache 
dashjs.js:14648 [1060][ScheduleController][audio] OnFragmentLoadingCompleted - Url: https://itvpnpdotcom-a.akamaihd.net/1-0694-9561-001/18/1/VAR011/1-0694-9561-001_18_1_VAR011.ism/dash/1-0694-9561-001_18_1_VAR011-audio=128000.dash 
dashjs.js:14648 [1129][ScheduleController][video] Top quality video index has changed from undefined to 4 
dashjs.js:14648 [1242][PlaybackController] Native video element event: loadedmetadata 
dashjs.js:14648 [1244][ScheduleController][audio] Top quality audio index has changed from undefined to 0 
dashjs.js:14648 [1575][ScheduleController][audio] OnFragmentLoadingCompleted - Url: https://itvpnpdotcom-a.akamaihd.net/1-0694-9561-001/18/1/VAR011/1-0694-9561-001_18_1_VAR011.ism/dash/1-0694-9561-001_18_1_VAR011-audio=128000-0.dash 
dashjs.js:14648 [1628][AbrController] AbrController (audio) switching from throughput to buffer occupancy ABR rule (buffer: 12.011). 
dashjs.js:14648 [1795][ScheduleController][video] OnFragmentLoadingCompleted - Url: https://itvpnpdotcom-a.akamaihd.net/1-0694-9561-001/18/1/VAR011/1-0694-9561-001_18_1_VAR011.ism/dash/1-0694-9561-001_18_1_VAR011-video=866017-0.dash 
@bbert
Copy link
Contributor

bbert commented Sep 18, 2018

Hi, indeed this code has been removed by mistake. Maybe a rebase issue, don't remember.
I will create a new PR to revert this change.
Thanks for pointed out.

@bbert
Copy link
Contributor

bbert commented Sep 18, 2018

See PR #2770

@JohnIball
Copy link
Author

Thanks for looking at this so quickly!

@epiclabsDASH
Copy link
Contributor

@JohnIball, please, whenever you have time for testing, may you confirm #PR2770 solves your problem?

Thanks!

@JohnIball
Copy link
Author

@epiclabsDASH yes, I tested the change and it's working fine now.

@epiclabsDASH
Copy link
Contributor

Great, many thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants