mirror of https://github.com/OpenVidu/openvidu.git
openvidu-browser: fix removeFilter error when no filter available
parent
354a26c6d0
commit
8550b77d17
|
@ -540,50 +540,60 @@ export class Stream {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!!this.filter && this.filter?.type.startsWith('VB:')) {
|
if (!!this.filter) {
|
||||||
|
|
||||||
|
// There is a filter applied
|
||||||
|
|
||||||
// Client filters
|
if (this.filter?.type.startsWith('VB:')) {
|
||||||
|
|
||||||
try {
|
// Client filters
|
||||||
|
|
||||||
const mediaStreamClone = this.virtualBackgroundSourceElements!.mediaStreamClone;
|
try {
|
||||||
if (!isDisposing) {
|
|
||||||
if (this.streamManager.remote) {
|
const mediaStreamClone = this.virtualBackgroundSourceElements!.mediaStreamClone;
|
||||||
await this.streamManager.replaceTrackInMediaStream(mediaStreamClone.getVideoTracks()[0]);
|
if (!isDisposing) {
|
||||||
|
if (this.streamManager.remote) {
|
||||||
|
await this.streamManager.replaceTrackInMediaStream(mediaStreamClone.getVideoTracks()[0]);
|
||||||
|
} else {
|
||||||
|
await (this.streamManager as Publisher).replaceTrack(mediaStreamClone.getVideoTracks()[0]);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
await (this.streamManager as Publisher).replaceTrack(mediaStreamClone.getVideoTracks()[0]);
|
mediaStreamClone.getTracks().forEach((track) => track.stop());
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
mediaStreamClone.getTracks().forEach((track) => track.stop());
|
this.virtualBackgroundSinkElements!.VB.cleanUp();
|
||||||
|
|
||||||
|
delete this.virtualBackgroundSinkElements;
|
||||||
|
delete this.virtualBackgroundSourceElements;
|
||||||
|
|
||||||
|
return resolveRemoveFilter(undefined, false);
|
||||||
|
|
||||||
|
} catch (error) {
|
||||||
|
return resolveRemoveFilter(error, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.virtualBackgroundSinkElements!.VB.cleanUp();
|
} else {
|
||||||
|
|
||||||
delete this.virtualBackgroundSinkElements;
|
// Server filters
|
||||||
delete this.virtualBackgroundSourceElements;
|
|
||||||
|
|
||||||
return resolveRemoveFilter(undefined, false);
|
if (!this.session.sessionConnected()) {
|
||||||
|
return reject(this.session.notConnectedError());
|
||||||
|
}
|
||||||
|
|
||||||
|
logger.info('Removing filter of stream ' + this.streamId);
|
||||||
|
this.session.openvidu.sendRequest(
|
||||||
|
'removeFilter',
|
||||||
|
{ streamId: this.streamId },
|
||||||
|
(error, response) => {
|
||||||
|
return resolveRemoveFilter(error, true);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
} catch (error) {
|
|
||||||
return resolveRemoveFilter(error, false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
// Server filters
|
// There is no filter applied
|
||||||
|
return reject(new OpenViduError(OpenViduErrorName.GENERIC_ERROR, "Stream " + this.streamId + " has no filter applied"));
|
||||||
if (!this.session.sessionConnected()) {
|
|
||||||
return reject(this.session.notConnectedError());
|
|
||||||
}
|
|
||||||
|
|
||||||
logger.info('Removing filter of stream ' + this.streamId);
|
|
||||||
this.session.openvidu.sendRequest(
|
|
||||||
'removeFilter',
|
|
||||||
{ streamId: this.streamId },
|
|
||||||
(error, response) => {
|
|
||||||
return resolveRemoveFilter(error, true);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue