diff --git a/change-frame-duration.yaml b/change-frame-duration.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..b73d85b9a2625067e4955a7c1a15756ee08aec32
--- /dev/null
+++ b/change-frame-duration.yaml
@@ -0,0 +1,4 @@
+frames:
+  - 50:
+      FrameDurationLimits: [66666, 66666]
+
diff --git a/src/apps/cam/camera_session.cpp b/src/apps/cam/camera_session.cpp
index 1596a25a3abed9c2d93e6657b92e35fdfd3d1a26..dde4b7b5a7bb907192e6a0d3b5fd7d097a719cb9 100644
--- a/src/apps/cam/camera_session.cpp
+++ b/src/apps/cam/camera_session.cpp
@@ -544,6 +544,27 @@ void CameraSession::processRequest(Request *request)
 	if (!requeue)
 		return;
 
+	auto camera = this->camera();
+	const auto controlInfo = camera->controls();
+	for (const auto &[id, ctrlInfo] : controlInfo) {
+		if (id->id() != libcamera::controls::EXPOSURE_TIME &&
+		    id->id() != libcamera::controls::FRAME_DURATION_LIMITS)
+			continue;
+
+		switch (id->id()) {
+		case libcamera::controls::EXPOSURE_TIME:
+			std::cout << "Exposure max: "
+				  << ctrlInfo.max().get<int32_t>() << std::endl;
+			break;
+		case libcamera::controls::FRAME_DURATION_LIMITS:
+			std::cout << "FrameDurationLimits: ["
+				  << ctrlInfo.min().get<int32_t>() << ", "
+				  << ctrlInfo.max().get<int32_t>() << "]"
+				  << std::endl;
+			break;
+		}
+	}
+
 	request->reuse(Request::ReuseBuffers);
 	queueRequest(request);
 }
