From 028fd91ffd9353f9b7cd4a3bb7445801975e523a Mon Sep 17 00:00:00 2001 From: webadderall <131426131+webadderall@users.noreply.github.com> Date: Sat, 18 Apr 2026 20:43:48 +1000 Subject: [PATCH] =?UTF-8?q?fix:=20address=20CodeRabbit=20review=20?= =?UTF-8?q?=E2=80=94=20muxing=20error=20guard,=20dead=20code=20removal,=20?= =?UTF-8?q?i18n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add encoderError check after awaiting pendingMuxing to prevent finalization of corrupt exports (both exporters) - Remove unreachable synchronous fast-path in getMediaDurationSec - Set preload='metadata' before src for correct browser behavior - Localize audio processing status text with t() --- src/components/video-editor/VideoEditor.tsx | 2 +- src/lib/exporter/audioEncoder.ts | 11 +---------- src/lib/exporter/modernVideoExporter.ts | 8 +++++++- src/lib/exporter/videoExporter.ts | 10 ++++++++++ 4 files changed, 19 insertions(+), 12 deletions(-) diff --git a/src/components/video-editor/VideoEditor.tsx b/src/components/video-editor/VideoEditor.tsx index ea4ae6a7..9c99b88d 100644 --- a/src/components/video-editor/VideoEditor.tsx +++ b/src/components/video-editor/VideoEditor.tsx @@ -4454,7 +4454,7 @@ export default function VideoEditor() {
{isRenderingAudio ? (- Processing audio with speed/overlay edits + {t("editor.export.processingAudioEdits", "Processing audio with speed/overlay edits")}
) : exportRenderSpeedLabel ? (
diff --git a/src/lib/exporter/audioEncoder.ts b/src/lib/exporter/audioEncoder.ts
index 8a2eec61..154b0e4b 100644
--- a/src/lib/exporter/audioEncoder.ts
+++ b/src/lib/exporter/audioEncoder.ts
@@ -1149,17 +1149,8 @@ export class AudioProcessor {
const source = await resolveMediaElementSource(url);
try {
const media = document.createElement("video");
- media.src = source.src;
media.preload = "metadata";
-
- if (
- Number.isFinite(media.duration) &&
- media.readyState >= HTMLMediaElement.HAVE_METADATA
- ) {
- const duration = media.duration;
- media.src = "";
- return duration;
- }
+ media.src = source.src;
return await new Promise