in src/integrationtests/java/com/aws/iot/integrationtests/edgeconnectorforkvs/videorecorder/VideoRecorderIntegrationTest.java [221:266]
public void addAppCbTest_restartRecording_invokeCallback() {
VideoRecorderBuilder builder = new VideoRecorderBuilder((rec, st, desc) -> {
});
builder.registerCamera(REC_TYPE, SRC_URL);
builder.registerAppDataCallback(ContainerType.MATROSKA, (recorder, bBuff) -> {
addAppCbTestStoreLen += bBuff.limit();
});
VideoRecorder recorder = builder.construct();
// Start recording
Thread recordThread1 = new Thread(new RunnableRecorder(recorder));
recordThread1.start();
recorder.toggleAppDataCallback(true);
try {
TimeUnit.SECONDS.sleep(RECORDING_TIME_IN_SECONDS);
} catch (InterruptedException e) {
Assertions.fail();
}
recorder.toggleAppDataCallback(false);
recorder.stopRecording();
while (recorder.getStatus() != RecorderStatus.STOPPED) {
try {
TimeUnit.SECONDS.sleep(1);
} catch (InterruptedException e) {
Assertions.fail();
}
}
// Restart recording
Thread recordThread2 = new Thread(new RunnableRecorder(recorder));
addAppCbTestStoreLen = 0;
recordThread2.start();
recorder.toggleAppDataCallback(true);
try {
TimeUnit.SECONDS.sleep(RECORDING_TIME_IN_SECONDS);
} catch (InterruptedException e) {
Assertions.fail();
}
recorder.toggleAppDataCallback(false);
recorder.stopRecording();
// Check received length
System.out.println("addAppCbTest_restartRecording_invokeCallback: " + addAppCbTestStoreLen);
Assertions.assertTrue(addAppCbTestStoreLen > 0);
}