@eluvio/elv-client-js 4.2.10 → 4.2.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ElvClient-min.js +1 -1
- package/dist/ElvClient-node-min.js +1 -1
- package/dist/ElvFrameClient-min.js +1 -1
- package/dist/ElvPermissionsClient-min.js +1 -1
- package/dist/ElvWalletClient-min.js +1 -1
- package/dist/ElvWalletClient-node-min.js +1 -1
- package/dist/src/AuthorizationClient.js +723 -710
- package/dist/src/ContentObjectAudit.js +56 -56
- package/dist/src/ContentObjectVerification.js +281 -0
- package/dist/src/Crypto.js +85 -85
- package/dist/src/ElvClient.js +500 -530
- package/dist/src/ElvWallet.js +28 -30
- package/dist/src/EthClient.js +311 -311
- package/dist/src/FrameClient.js +64 -63
- package/dist/src/HttpClient.js +60 -60
- package/dist/src/Id.js +2 -1
- package/dist/src/PermissionsClient.js +487 -499
- package/dist/src/RemoteSigner.js +163 -114
- package/dist/src/UserProfileClient.js +374 -392
- package/dist/src/Utils.js +66 -69
- package/dist/src/Validation.js +10 -10
- package/dist/src/client/ABRPublishing.js +238 -238
- package/dist/src/client/AccessGroups.js +474 -477
- package/dist/src/client/ContentAccess.js +1709 -1705
- package/dist/src/client/ContentManagement.js +871 -871
- package/dist/src/client/Contracts.js +578 -575
- package/dist/src/client/Files.js +684 -700
- package/dist/src/client/LiveConf.js +6 -1
- package/dist/src/client/LiveStream.js +686 -722
- package/dist/src/client/NFT.js +14 -14
- package/dist/src/client/NTP.js +84 -84
- package/dist/src/client/Shares.js +60 -53
- package/dist/src/walletClient/ClientMethods.js +951 -977
- package/dist/src/walletClient/Notifications.js +14 -14
- package/dist/src/walletClient/Profile.js +66 -66
- package/dist/src/walletClient/Utils.js +15 -15
- package/dist/src/walletClient/index.js +581 -579
- package/package.json +1 -1
- package/src/client/LiveConf.js +5 -1
- package/src/client/LiveStream.js +9 -38
package/package.json
CHANGED
package/src/client/LiveConf.js
CHANGED
|
@@ -508,7 +508,7 @@ class LiveConf {
|
|
|
508
508
|
let globalAudioBitrate = 0;
|
|
509
509
|
let nAudio = 0;
|
|
510
510
|
|
|
511
|
-
for(let i = 0; i < Object.keys(audioStreams).length; i
|
|
511
|
+
for(let i = 0; i < Object.keys(audioStreams).length; i++) {
|
|
512
512
|
let audioLadderSpec = {};
|
|
513
513
|
const audioIndex = Object.keys(audioStreams)[i];
|
|
514
514
|
const audio = audioStreams[audioIndex];
|
|
@@ -533,6 +533,10 @@ class LiveConf {
|
|
|
533
533
|
audioLadderSpec.stream_label = audio.playoutLabel ? audio.playoutLabel : null;
|
|
534
534
|
audioLadderSpec.media_type = 2;
|
|
535
535
|
|
|
536
|
+
if(Object.keys(audioStreams).length === 1) {
|
|
537
|
+
audioLadderSpec.default = true;
|
|
538
|
+
}
|
|
539
|
+
|
|
536
540
|
conf.live_recording.recording_config.recording_params.ladder_specs.push(audioLadderSpec);
|
|
537
541
|
if(audio.recordingBitrate > globalAudioBitrate) {
|
|
538
542
|
globalAudioBitrate = audio.recordingBitrate;
|
package/src/client/LiveStream.js
CHANGED
|
@@ -346,7 +346,6 @@ const StreamGenerateOffering = async({
|
|
|
346
346
|
* @methodGroup Live Stream
|
|
347
347
|
* @namedParams
|
|
348
348
|
* @param {string} name - Object ID or name of the live stream object
|
|
349
|
-
* @param {boolean=} stopLro - If specified, will stop LRO
|
|
350
349
|
* @param {boolean=} showParams - If specified, will return recording_params with status
|
|
351
350
|
* States:
|
|
352
351
|
* unconfigured - no live_recording_config
|
|
@@ -359,7 +358,7 @@ const StreamGenerateOffering = async({
|
|
|
359
358
|
*
|
|
360
359
|
* @return {Promise<Object>} - The status response for the object, as well as logs, warnings and errors from the master initialization
|
|
361
360
|
*/
|
|
362
|
-
exports.StreamStatus = async function({name,
|
|
361
|
+
exports.StreamStatus = async function({name, showParams=false}) {
|
|
363
362
|
let objectId = name;
|
|
364
363
|
let status = {name: name};
|
|
365
364
|
|
|
@@ -418,13 +417,11 @@ exports.StreamStatus = async function({name, stopLro=false, showParams=false}) {
|
|
|
418
417
|
status.stream_id = edgeWriteToken; // By convention the stream ID is its write token
|
|
419
418
|
let edgeMeta;
|
|
420
419
|
try {
|
|
421
|
-
edgeMeta = await this.
|
|
420
|
+
edgeMeta = await this.CallBitcodeMethod({
|
|
422
421
|
libraryId: libraryId,
|
|
423
422
|
objectId: objectId,
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
"live_recording"
|
|
427
|
-
]
|
|
423
|
+
method: "/live/meta",
|
|
424
|
+
constant: true
|
|
428
425
|
});
|
|
429
426
|
} catch(error) {
|
|
430
427
|
if(error.message && error.message.includes("ERR_TOO_MANY_REDIRECTS")) {
|
|
@@ -444,6 +441,7 @@ exports.StreamStatus = async function({name, stopLro=false, showParams=false}) {
|
|
|
444
441
|
if(edgeMeta.live_recording === undefined ||
|
|
445
442
|
edgeMeta.live_recording.recordings === undefined ||
|
|
446
443
|
edgeMeta.live_recording.recordings.recording_sequence === undefined) {
|
|
444
|
+
// StreamStartOrStopOrReset relies on the state being 'stopped' before launching the LRO - and so this state cannot be changed to 'inactive'
|
|
447
445
|
status.state = "stopped";
|
|
448
446
|
return status;
|
|
449
447
|
}
|
|
@@ -482,7 +480,7 @@ exports.StreamStatus = async function({name, stopLro=false, showParams=false}) {
|
|
|
482
480
|
libraryId: libraryId,
|
|
483
481
|
objectId: objectId,
|
|
484
482
|
writeToken: edgeWriteToken,
|
|
485
|
-
call: "live/status
|
|
483
|
+
call: "live/status"
|
|
486
484
|
});
|
|
487
485
|
|
|
488
486
|
status.insertions = [];
|
|
@@ -522,45 +520,18 @@ exports.StreamStatus = async function({name, stopLro=false, showParams=false}) {
|
|
|
522
520
|
return status;
|
|
523
521
|
}
|
|
524
522
|
|
|
525
|
-
const segDurationMeta = edgeMeta.live_recording.recording_config.recording_params.xc_params.seg_duration;
|
|
526
|
-
|
|
527
523
|
// Convert LRO 'state' to desired 'state'
|
|
528
524
|
if(state === "running" && videoLastFinalizationTimeEpochSec <= 0) {
|
|
529
|
-
state = "starting";
|
|
530
|
-
} else if(state === "running" && segDurationMeta !== undefined && sinceLastFinalize > (parseInt(segDurationMeta) + 5)) {
|
|
531
|
-
state = "stalled";
|
|
525
|
+
state = "starting"; // The LRO returns 'running' even if the source hasn't connected
|
|
532
526
|
} else if(state == "terminated") {
|
|
533
|
-
state = "stopped";
|
|
527
|
+
state = "stopped"; // The LRO reports 'terminated' which for the recording means 'stopped'
|
|
534
528
|
}
|
|
535
529
|
status.state = state;
|
|
536
530
|
|
|
537
|
-
if((state === "running" || state === "stalled" || state === "starting") && stopLro) {
|
|
538
|
-
lroStopUrl = await this.FabricUrl({
|
|
539
|
-
libraryId,
|
|
540
|
-
objectId,
|
|
541
|
-
writeToken: edgeWriteToken,
|
|
542
|
-
call: "live/stop/" + tlro
|
|
543
|
-
});
|
|
544
|
-
|
|
545
|
-
try {
|
|
546
|
-
await this.utils.ResponseToJson(
|
|
547
|
-
await HttpClient.Fetch(lroStopUrl)
|
|
548
|
-
);
|
|
549
|
-
|
|
550
|
-
console.log("LRO Stop: ", lroStatus.body);
|
|
551
|
-
} catch(error) {
|
|
552
|
-
console.log("LRO Stop (failed): ", error.response.statusCode);
|
|
553
|
-
}
|
|
554
|
-
|
|
555
|
-
state = "stopped";
|
|
556
|
-
status.state = state;
|
|
557
|
-
}
|
|
558
|
-
|
|
559
531
|
if(state === "running") {
|
|
560
532
|
let playout_urls = {};
|
|
561
533
|
let playout_options = await this.PlayoutOptions({
|
|
562
|
-
objectId
|
|
563
|
-
linkPath: "public/asset_metadata/sources/default"
|
|
534
|
+
objectId
|
|
564
535
|
});
|
|
565
536
|
|
|
566
537
|
let hls_clear_enabled = (
|