mirror of https://github.com/OpenVidu/openvidu.git
ov-components: Refactors Firefox background processor handling
Simplifies the logic for attaching and detaching the background processor in Firefox. Ensures the processor is stopped when background effects are disabled, optimizing performance.master
parent
465403f8cb
commit
6cfa44c4f1
|
|
@ -286,21 +286,37 @@ export class OpenViduService {
|
|||
*/
|
||||
async switchBackgroundMode(options: SwitchBackgroundProcessorOptions): Promise<void> {
|
||||
// For Firefox, attach processor only when an effect is activated
|
||||
if (this.platformService.isFirefox() && options.mode !== 'disabled') {
|
||||
const videoTrack = await this.getVideoTrack();
|
||||
if (videoTrack) {
|
||||
const hasProcessor = videoTrack.getProcessor();
|
||||
if (!hasProcessor) {
|
||||
this.log.d('Firefox: Attaching processor on effect activation');
|
||||
await videoTrack.setProcessor(this.backgroundProcessor);
|
||||
}
|
||||
}
|
||||
if (this.platformService.isFirefox()) {
|
||||
await this.handleFirefoxProcessor(options.mode);
|
||||
}
|
||||
|
||||
await this.backgroundProcessor.switchTo(options);
|
||||
this.log.d('Background mode switched:', options);
|
||||
}
|
||||
|
||||
/**
|
||||
* Applies the background processor handling for Firefox browser.
|
||||
* @internal
|
||||
*/
|
||||
private async handleFirefoxProcessor(mode: SwitchBackgroundProcessorOptions['mode']): Promise<void> {
|
||||
const videoTrack = await this.getVideoTrack();
|
||||
if (!videoTrack) return;
|
||||
|
||||
const hasProcessor = Boolean(videoTrack.getProcessor());
|
||||
const isDisabled = mode === 'disabled';
|
||||
|
||||
if (!isDisabled && !hasProcessor) {
|
||||
this.log.d('Firefox: Attaching processor on effect activation');
|
||||
await videoTrack.setProcessor(this.backgroundProcessor);
|
||||
return;
|
||||
}
|
||||
|
||||
if (isDisabled && hasProcessor) {
|
||||
this.log.d('Firefox: Stopping processor on effect deactivation');
|
||||
await videoTrack.stopProcessor();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @internal
|
||||
**/
|
||||
|
|
@ -377,7 +393,7 @@ export class OpenViduService {
|
|||
// For Firefox: skip processor attachment to avoid performance issues (applied only when effect is activated)
|
||||
// For other browsers: attach processor for smooth transitions
|
||||
const videoTrack = newLocalTracks.find((t) => t.kind === Track.Kind.Video) as LocalVideoTrack | undefined;
|
||||
debugger
|
||||
debugger;
|
||||
if (videoTrack && !this.platformService.isFirefox()) {
|
||||
await videoTrack.setProcessor(this.backgroundProcessor);
|
||||
this.log.d('Background processor applied to newly created video track');
|
||||
|
|
|
|||
Loading…
Reference in New Issue