mirror of
https://github.com/webadderallorg/Recordly.git
synced 2026-09-27 16:25:35 +00:00
fix(export): address remaining PR #295 review threads
- Include `resolvedWebcamVideoUrl` in the dependency arrays for `captureProjectThumbnail` and `handleExport` so thumbnail capture and export settings stay in sync when the webcam URL refreshes. - Clear `VideoMuxer.streamSink` before awaiting `closeIpcExportStream` in `finalize()` to close the race where a concurrent `destroy()` → `abortStream()` could try to close the same stream ID a second time.
This commit is contained in:
@@ -946,6 +946,7 @@ export default function VideoEditor() {
|
||||
cursorTelemetry,
|
||||
clipRegions,
|
||||
padding,
|
||||
resolvedWebcamVideoUrl,
|
||||
shadowIntensity,
|
||||
showCursor,
|
||||
speedRegions,
|
||||
@@ -4356,6 +4357,7 @@ export default function VideoEditor() {
|
||||
padding,
|
||||
cropRegion,
|
||||
webcam,
|
||||
resolvedWebcamVideoUrl,
|
||||
annotationRegions,
|
||||
autoCaptions,
|
||||
autoCaptionSettings,
|
||||
|
||||
@@ -172,8 +172,11 @@ export class VideoMuxer {
|
||||
if (!sink) {
|
||||
throw new Error("Stream target closed before finalization");
|
||||
}
|
||||
const closeResult = await closeIpcExportStream(sink.streamId);
|
||||
// Clear streamSink before awaiting close so a concurrent destroy()→
|
||||
// abortStream() short-circuits on `!this.streamSink` instead of racing
|
||||
// us for the same streamId.
|
||||
this.streamSink = null;
|
||||
const closeResult = await closeIpcExportStream(sink.streamId);
|
||||
return {
|
||||
mode: "stream",
|
||||
tempFilePath: closeResult.tempPath,
|
||||
|
||||
Reference in New Issue
Block a user