mirror of
https://github.com/webadderallorg/Recordly.git
synced 2026-09-25 15:25:44 +00:00
fix(export): require cuda inline audio output
This commit is contained in:
@@ -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(
|
||||
{
|
||||
|
||||
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user