fix(export): require cuda inline audio output

This commit is contained in:
wiiiii123
2026-05-14 19:04:42 +07:00
parent 12c09115b1
commit ef90dc6a5c
2 changed files with 51 additions and 0 deletions
+41
View File
@@ -1174,6 +1174,47 @@ describe("validateNvidiaCudaExportSummary", () => {
expect(issues).toEqual([]);
});
it("rejects inline-audio CUDA output when the helper does not produce audio", () => {
const issues = validateNvidiaCudaExportSummary(
{
success: true,
targetFrames: 300,
durationSec: 10,
nativeSummary: {
success: true,
frames: 300,
sourceTimestampMode: "pts",
selectionStage: "timestamp-mapped-callback",
},
outputVideo: { duration: "9.999900", nb_frames: "300" },
},
{ durationSec: 10, targetFrames: 300, requiresTimelineSync: true },
);
expect(issues).toEqual(["missing output audio stream"]);
});
it("rejects inline-audio CUDA output when the probed audio stream is empty", () => {
const issues = validateNvidiaCudaExportSummary(
{
success: true,
targetFrames: 300,
durationSec: 10,
nativeSummary: {
success: true,
frames: 300,
sourceTimestampMode: "pts",
selectionStage: "timestamp-mapped-callback",
},
outputVideo: { duration: "9.999900", nb_frames: "300" },
outputAudio: { duration: "0.000000" },
},
{ durationSec: 10, targetFrames: 300, requiresTimelineSync: true },
);
expect(issues).toEqual(["output audio duration is not positive"]);
});
it("accepts audio CUDA output when the helper reports PTS-aligned selection", () => {
const issues = validateNvidiaCudaExportSummary(
{
+10
View File
@@ -491,6 +491,15 @@ export function validateNvidiaCudaExportSummary(
if (!summary.outputVideo) {
issues.push("missing output video probe");
}
if (expected.requiresTimelineSync) {
if (!summary.outputAudio) {
issues.push("missing output audio stream");
} else if (outputAudioDurationSec === null) {
issues.push("missing output audio duration");
} else if (outputAudioDurationSec <= 0) {
issues.push("output audio duration is not positive");
}
}
if (expected.requiresTimelineSync && !isNvidiaCudaTimestampAlignedSummary(summary)) {
issues.push("CUDA timeline mode is not timestamp-aligned for audio export");
}
@@ -516,6 +525,7 @@ export function validateNvidiaCudaExportSummary(
}
if (
outputAudioDurationSec !== null &&
outputAudioDurationSec > 0 &&
Math.abs(outputAudioDurationSec - expectedDurationSec) > durationToleranceSec
) {
issues.push(