@@ -1078,6 +1078,47 @@ describe("validateNvidiaCudaExportSummary", () => {
10781078 expect ( issues ) . toEqual ( [ ] ) ;
10791079 } ) ;
10801080
1081+ it ( "rejects inline-audio CUDA output when the helper does not produce audio" , ( ) => {
1082+ const issues = validateNvidiaCudaExportSummary (
1083+ {
1084+ success : true ,
1085+ targetFrames : 300 ,
1086+ durationSec : 10 ,
1087+ nativeSummary : {
1088+ success : true ,
1089+ frames : 300 ,
1090+ sourceTimestampMode : "pts" ,
1091+ selectionStage : "timestamp-mapped-callback" ,
1092+ } ,
1093+ outputVideo : { duration : "9.999900" , nb_frames : "300" } ,
1094+ } ,
1095+ { durationSec : 10 , targetFrames : 300 , requiresTimelineSync : true } ,
1096+ ) ;
1097+
1098+ expect ( issues ) . toEqual ( [ "missing output audio stream" ] ) ;
1099+ } ) ;
1100+
1101+ it ( "rejects inline-audio CUDA output when the probed audio stream is empty" , ( ) => {
1102+ const issues = validateNvidiaCudaExportSummary (
1103+ {
1104+ success : true ,
1105+ targetFrames : 300 ,
1106+ durationSec : 10 ,
1107+ nativeSummary : {
1108+ success : true ,
1109+ frames : 300 ,
1110+ sourceTimestampMode : "pts" ,
1111+ selectionStage : "timestamp-mapped-callback" ,
1112+ } ,
1113+ outputVideo : { duration : "9.999900" , nb_frames : "300" } ,
1114+ outputAudio : { duration : "0.000000" } ,
1115+ } ,
1116+ { durationSec : 10 , targetFrames : 300 , requiresTimelineSync : true } ,
1117+ ) ;
1118+
1119+ expect ( issues ) . toEqual ( [ "output audio duration is not positive" ] ) ;
1120+ } ) ;
1121+
10811122 it ( "accepts audio CUDA output when the helper reports PTS-aligned selection" , ( ) => {
10821123 const issues = validateNvidiaCudaExportSummary (
10831124 {
0 commit comments