Skip to content

Commit 39e55e8

Browse files
authored
Parse UInt8 payload of inband callback events to a string (Dash-Industry-Forum#4723)
1 parent 7f9916b commit 39e55e8

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

src/core/Utils.js

+5
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,11 @@ class Utils {
250250
return Utils.toDataView(bufferSource, Uint8Array)
251251
}
252252

253+
static uint8ArrayToString(uint8Array) {
254+
const decoder = new TextDecoder('utf-8');
255+
return decoder.decode(uint8Array);
256+
}
257+
253258
static bufferSourceToHex(data) {
254259
const arr = Utils.bufferSourceToInt8(data)
255260
let hex = '';

src/streaming/controllers/EventController.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ import Debug from '../../core/Debug.js';
3434
import EventBus from '../../core/EventBus.js';
3535
import MediaPlayerEvents from '../../streaming/MediaPlayerEvents.js';
3636
import XHRLoader from '../net/XHRLoader.js';
37+
import Utils from '../../core/Utils.js';
3738
import CommonMediaRequest from '../vo/CommonMediaRequest.js';
3839
import CommonMediaResponse from '../vo/CommonMediaResponse.js';
3940

@@ -489,7 +490,8 @@ function EventController() {
489490
}
490491
} else if (event.eventStream.schemeIdUri === MPD_CALLBACK_SCHEME && event.eventStream.value == MPD_CALLBACK_VALUE) {
491492
logger.debug(`Starting callback event ${eventId} at ${currentVideoTime}`);
492-
_sendCallbackRequest(event.messageData);
493+
const url = event.messageData instanceof Uint8Array ? Utils.uint8ArrayToString(event.messageData) : event.messageData;
494+
_sendCallbackRequest(url);
493495
} else {
494496
logger.debug(`Starting event ${eventId} from period ${event.eventStream.period.id} at ${currentVideoTime}`);
495497
eventBus.trigger(event.eventStream.schemeIdUri, { event: JSON.parse(JSON.stringify(event)) }, { mode });

0 commit comments

Comments
 (0)