diff --git a/.changeset/selfish-moons-tie.md b/.changeset/selfish-moons-tie.md new file mode 100644 index 00000000..c2dcc811 --- /dev/null +++ b/.changeset/selfish-moons-tie.md @@ -0,0 +1,6 @@ +--- +"example-publish-wav": patch +"@livekit/rtc-node": patch +--- + +Fix memory leak of AudioSource diff --git a/examples/publish-wav/index.ts b/examples/publish-wav/index.ts index 8c57dc5a..c41a685d 100644 --- a/examples/publish-wav/index.ts +++ b/examples/publish-wav/index.ts @@ -64,6 +64,7 @@ while (written < dataSize) { } await source.waitForPlayout(); // release resources allocated for audio publishing +await track.close(); await source.close(); await room.disconnect(); diff --git a/packages/livekit-rtc/src/track.ts b/packages/livekit-rtc/src/track.ts index 74bc437f..722e15a2 100644 --- a/packages/livekit-rtc/src/track.ts +++ b/packages/livekit-rtc/src/track.ts @@ -45,6 +45,10 @@ export abstract class Track { get muted(): boolean | undefined { return this.info?.muted; } + + async close() { + this.ffi_handle.dispose(); + } } export class LocalAudioTrack extends Track {