Player fails to make DRM license requests
Created by: grabofus
Environment
-
The MPD passes the DASH-IF Conformance Tool on https://conformance.dashif.org/ -
The stream has correct Access-Control-Allow-Origin headers (CORS) -
There are no network errors such as 404s in the browser console when trying to play the stream -
The issue observed is not mentioned on https://github.com/Dash-Industry-Forum/dash.js/wiki/FAQ -
The issue occurs in the latest reference client on http://reference.dashif.org/dash.js/ and not just on my page
- Link to playable MPD file: https://media.axprod.net/TestVectors/v7-MultiDRM-SingleKey/Manifest_1080p.mpd
- Dash.js version: 3.2.1 (works on 3.2.0)
- Browser name/version: Chrome 89
- OS name/version: MacOS Catalina
Steps to reproduce
- Play a DRM stream.
- Call
player.getProtectionController()
prior to loading the video.
Reproduction example: https://test-9zhh43hw.s3-eu-west-1.amazonaws.com/bug_report_20210318/index.html
Observed behavior
Player fails to request the license to play back the stream.
The ProtectionController is created prior to the initialization of cmcdModel
, and holds a reference to it's undefined
value throughout the lifetime of the player.
Error is raised here: https://github.com/fraunhoferfokus/dash.js/blob/9fe35511a220d7848b680369013f913df3df4e9a/src/streaming/protection/controllers/ProtectionController.js#L792
Console output
dash.all.debug.js:48667 Uncaught (in promise) TypeError: Cannot read property 'getQueryParameter' of undefined
at doLicenseRequest (dash.all.debug.js:48667)
at dash.all.debug.js:48659
Expected behavior
Stream should play