mirror of
https://github.com/shaka-project/shaka-player.git
synced 2026-06-26 17:46:26 +03:00
76d655bed6
More types of messages are now supported than before. SubscribeError handling has been improved. A new error has been added when no catalog. Existing messages have been reviewed to eliminate inconsistencies in the migration from draft-11 to draft-14 support. Fix log levels
50 lines
1.2 KiB
JavaScript
50 lines
1.2 KiB
JavaScript
/*! @license
|
|
* Shaka Player
|
|
* Copyright 2025 Google LLC
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
goog.provide('shaka.msf.Sender');
|
|
|
|
goog.require('shaka.log');
|
|
goog.require('shaka.msf.BufferControlWriter');
|
|
|
|
goog.requireType('shaka.msf.Utils');
|
|
goog.requireType('shaka.msf.Writer');
|
|
|
|
shaka.msf.Sender = class {
|
|
/**
|
|
* @param {!shaka.msf.Writer} writer
|
|
*/
|
|
constructor(writer) {
|
|
/** @private {!shaka.msf.Writer} */
|
|
this.writer_ = writer;
|
|
}
|
|
|
|
/**
|
|
* @param {shaka.msf.Utils.ClientSetup} client
|
|
* @return {!Promise}
|
|
*/
|
|
async client(client) {
|
|
shaka.log.debug('Encoding client setup message:', client);
|
|
|
|
// Create a BufferControlWriter instance
|
|
const writer = new shaka.msf.BufferControlWriter();
|
|
|
|
// Marshal the client setup message
|
|
writer.marshalClientSetup({
|
|
versions: client.versions,
|
|
params: client.params,
|
|
});
|
|
|
|
// Get the bytes from the writer
|
|
const bytes = writer.getBytes();
|
|
shaka.log.v1(`Client setup message created: ${bytes.length} bytes`);
|
|
|
|
// Write the entire message in a single operation
|
|
await this.writer_.write(bytes);
|
|
|
|
shaka.log.v1('Client setup message sent successfully');
|
|
}
|
|
};
|