Preserve onboard preview recordings across backpressure and share the complete spatial scene
This commit is contained in:
@@ -78,3 +78,16 @@ test('onboard camera admits immediate sourceopen and ignores callbacks after clo
|
||||
assert.equal(ready,1);assert.equal(failed,0);
|
||||
}finally{globalThis.MediaSource=saved.media;URL.createObjectURL=saved.create;URL.revokeObjectURL=saved.revoke;}
|
||||
});
|
||||
|
||||
test('a recovered media peer resumes a recording without reinserting old RRD batches',async()=>{
|
||||
const {previewRecording}=await server.ssrLoadModule('@xgrids-k1/frontend/sensors/previewFrames.ts');
|
||||
const sent=[];const cursor=previewRecording(value=>sent.push(value));
|
||||
const payload=new Uint8Array(12);payload.set([82,82,70,50]);
|
||||
assert.equal(cursor.accept(1,payload),true);
|
||||
// The ACK was lost, so the new peer resends the exact complete batch.
|
||||
assert.equal(cursor.accept(1,payload),false);
|
||||
assert.equal(cursor.after,1);
|
||||
assert.throws(()=>cursor.accept(3,payload),/cursor gap/);
|
||||
assert.equal(cursor.accept(2,payload),true);
|
||||
assert.equal(sent.length,2);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user