Skip to content

Commit 20b431c

Browse files
Merge pull request #8 from bbc/dvb-reporting-override
Add DVB Reporting URL override
2 parents 04d53f3 + e0d4c77 commit 20b431c

File tree

5 files changed

+26
-6
lines changed

5 files changed

+26
-6
lines changed

dash.d.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1157,6 +1157,9 @@ declare namespace dashjs {
11571157
mode?: 'query' | 'header',
11581158
enabledKeys?: Array<string>
11591159
},
1160+
dvbReporting?: {
1161+
reportingUrl?: string | null,
1162+
}
11601163
cmsd?: {
11611164
enabled?: boolean,
11621165
abr?: {

index.d.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1157,6 +1157,9 @@ declare namespace dashjs {
11571157
mode?: 'query' | 'header',
11581158
enabledKeys?: Array<string>
11591159
},
1160+
dvbReporting?: {
1161+
reportingUrl?: string | null,
1162+
}
11601163
cmsd?: {
11611164
enabled?: boolean,
11621165
abr?: {

src/core/Settings.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -247,6 +247,9 @@ import Events from './events/Events';
247247
* mode: Constants.CMCD_MODE_QUERY,
248248
* enabledKeys: ['br', 'd', 'ot', 'tb' , 'bl', 'dl', 'mtp', 'nor', 'nrr', 'su' , 'bs', 'rtp' , 'cid', 'pr', 'sf', 'sid', 'st', 'v']
249249
* },
250+
* dvbReporting: {
251+
* reportingUrl: null,
252+
* },
250253
* cmsd: {
251254
* enabled: false,
252255
* abr: {
@@ -783,6 +786,12 @@ import Events from './events/Events';
783786
* This value is used to specify the desired CMCD parameters. Parameters not included in this list are not reported.
784787
*/
785788

789+
/**
790+
* @typedef {Object} module:Settings~DvbReportingSettings
791+
* @property {string} [reportingUrl]
792+
* Overide DVB reporting url.
793+
*/
794+
786795
/**
787796
* @typedef {Object} module:Settings~CmsdSettings
788797
* @property {boolean} [enabled=false]
@@ -914,6 +923,8 @@ import Events from './events/Events';
914923
* Adaptive Bitrate algorithm related settings.
915924
* @property {module:Settings~CmcdSettings} cmcd
916925
* Settings related to Common Media Client Data reporting.
926+
* @property {module:Settings~DvbReportingSettings} dvbReporting
927+
* Settings related to Common Media Client Data reporting.
917928
* @property {module:Settings~CmsdSettings} cmsd
918929
* Settings related to Common Media Server Data parsing.
919930
*/
@@ -1179,6 +1190,9 @@ function Settings() {
11791190
mode: Constants.CMCD_MODE_QUERY,
11801191
enabledKeys: ['br', 'd', 'ot', 'tb', 'bl', 'dl', 'mtp', 'nor', 'nrr', 'su', 'bs', 'rtp', 'cid', 'pr', 'sf', 'sid', 'st', 'v']
11811192
},
1193+
dvbReporting: {
1194+
reportingUrl: null,
1195+
},
11821196
cmsd: {
11831197
enabled: false,
11841198
abr: {

src/streaming/metrics/controllers/MetricsController.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,7 @@ function MetricsController(config) {
5353

5454
reportingController = ReportingController(context).create({
5555
debug: config.debug,
56-
metricsConstants: config.metricsConstants,
57-
mediaPlayerModel: config.mediaPlayerModel
56+
metricsConstants: config.metricsConstants
5857
});
5958

6059
reportingController.initialize(metricsEntry.Reporting, rangeController);

src/streaming/metrics/reporting/reporters/DVBReporting.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
import MetricSerialiser from '../../utils/MetricSerialiser';
3333
import RNG from '../../utils/RNG';
3434
import CustomParametersModel from '../../../models/CustomParametersModel';
35-
35+
import Settings from '../../../../core/Settings';
3636
function DVBReporting(config) {
3737
config = config || {};
3838
let instance;
@@ -44,7 +44,8 @@ function DVBReporting(config) {
4444
reportingPlayerStatusDecided,
4545
isReportingPlayer,
4646
reportingUrl,
47-
rangeController;
47+
rangeController,
48+
settings = Settings(context).getInstance();
4849

4950
let USE_DRAFT_DVB_SPEC = true;
5051
let allowPendingRequestsToCompleteOnReset = true;
@@ -141,13 +142,13 @@ function DVBReporting(config) {
141142

142143
rangeController = rc;
143144

144-
reportingUrl = entry.dvb_reportingUrl;
145+
reportingUrl = settings.get().streaming.dvbReporting.reportingUrl || entry.dvb_reportingUrl;
145146

146147
// If a required attribute is missing, the Reporting descriptor may
147148
// be ignored by the Player
148149
if (!reportingUrl) {
149150
throw new Error(
150-
'required parameter missing (dvb:reportingUrl)'
151+
'MPD parameter missing "dvb:reportingUrl" or URL not given in settings'
151152
);
152153
}
153154

0 commit comments

Comments
 (0)