diff --git a/src/apps/lc-compliance/capture_test.cpp b/src/apps/lc-compliance/capture_test.cpp
index 1dcfcf92..923395cf 100644
--- a/src/apps/lc-compliance/capture_test.cpp
+++ b/src/apps/lc-compliance/capture_test.cpp
@@ -87,6 +87,8 @@ TEST_P(SingleStream, Capture)
 
 	capture.configure(role);
 
+	capture.allocateBuffers();
+
 	capture.capture(numRequests);
 }
 
@@ -106,8 +108,10 @@ TEST_P(SingleStream, CaptureStartStop)
 
 	capture.configure(role);
 
-	for (unsigned int starts = 0; starts < numRepeats; starts++)
+	for (unsigned int starts = 0; starts < numRepeats; starts++) {
+		capture.allocateBuffers();
 		capture.capture(numRequests);
+	}
 }
 
 /*
@@ -125,6 +129,8 @@ TEST_P(SingleStream, UnbalancedStop)
 
 	capture.configure(role);
 
+	capture.allocateBuffers();
+
 	capture.capture(numRequests);
 }
 
diff --git a/src/apps/lc-compliance/simple_capture.cpp b/src/apps/lc-compliance/simple_capture.cpp
index be495986..1e3e816a 100644
--- a/src/apps/lc-compliance/simple_capture.cpp
+++ b/src/apps/lc-compliance/simple_capture.cpp
@@ -44,16 +44,20 @@ void SimpleCapture::configure(StreamRole role)
 	}
 }
 
-void SimpleCapture::start()
+void SimpleCapture::allocateBuffers(unsigned int count)
 {
-	unsigned int bufferCount =
-		camera_->properties().get(properties::MinimumRequests).value();
+	if (!count)
+		count = camera_->properties().get(properties::MinimumRequests).value();
+
 	Stream *stream = config_->at(0).stream();
-	int count = allocator_->allocate(stream, bufferCount);
+	int allocatedCount = allocator_->allocate(stream, count);
 
-	ASSERT_GE(count, 0) << "Failed to allocate buffers";
-	EXPECT_EQ(count, bufferCount) << "Allocated less buffers than expected";
+	ASSERT_GE(allocatedCount, 0) << "Failed to allocate buffers";
+	EXPECT_EQ(allocatedCount, count) << "Allocated less buffers than expected";
+}
 
+void SimpleCapture::start()
+{
 	camera_->requestCompleted.connect(this, &SimpleCapture::requestComplete);
 
 	ASSERT_EQ(camera_->start(), 0) << "Failed to start camera";
diff --git a/src/apps/lc-compliance/simple_capture.h b/src/apps/lc-compliance/simple_capture.h
index 2911d601..b3091547 100644
--- a/src/apps/lc-compliance/simple_capture.h
+++ b/src/apps/lc-compliance/simple_capture.h
@@ -17,6 +17,7 @@ class SimpleCapture
 {
 public:
 	void configure(libcamera::StreamRole role);
+	void allocateBuffers(unsigned int count = 0);
 
 protected:
 	SimpleCapture(std::shared_ptr<libcamera::Camera> camera);
