diff --git a/.changeset/curly-hornets-give.md b/.changeset/curly-hornets-give.md new file mode 100644 index 0000000000..da423a3e93 --- /dev/null +++ b/.changeset/curly-hornets-give.md @@ -0,0 +1,5 @@ +--- +"livekit-client": patch +--- + +Pass optional LocalTrack reference to processors diff --git a/src/room/track/LocalAudioTrack.ts b/src/room/track/LocalAudioTrack.ts index 26eb7093be..29356a3072 100644 --- a/src/room/track/LocalAudioTrack.ts +++ b/src/room/track/LocalAudioTrack.ts @@ -185,6 +185,7 @@ export default class LocalAudioTrack extends LocalTrack { track: this._mediaStreamTrack, // RN won't have or use AudioContext audioContext: this.audioContext as AudioContext, + localTrack: this, }; this.log.debug(`setting up audio processor ${processor.name}`, this.logContext); diff --git a/src/room/track/LocalTrack.ts b/src/room/track/LocalTrack.ts index c69dfa09a5..275e9ea3d4 100644 --- a/src/room/track/LocalTrack.ts +++ b/src/room/track/LocalTrack.ts @@ -194,6 +194,7 @@ export default abstract class LocalTrack< track: newTrack, kind: this.kind, element: this.processorElement, + localTrack: this, }); processedTrack = this.processor.processedTrack; } @@ -555,6 +556,7 @@ export default abstract class LocalTrack< track: this._mediaStreamTrack, element: processorElement, audioContext: this.audioContext, + localTrack: this, }; await processor.init(processorOptions); this.log.debug('processor initialized', this.logContext); diff --git a/src/room/track/processor/types.ts b/src/room/track/processor/types.ts index 1f0b277e20..304f538e10 100644 --- a/src/room/track/processor/types.ts +++ b/src/room/track/processor/types.ts @@ -1,4 +1,5 @@ import type Room from '../../Room'; +import type LocalTrack from '../LocalTrack'; import type { Track } from '../Track'; /** @@ -9,6 +10,7 @@ export type ProcessorOptions = { track: MediaStreamTrack; element?: HTMLMediaElement; audioContext?: AudioContext; + localTrack?: LocalTrack; }; export interface AudioProcessorOptions extends ProcessorOptions {