diff --git a/src/v4l2/v4l2_camera_proxy.cpp b/src/v4l2/v4l2_camera_proxy.cpp
index 63b4124..45e4656 100644
--- a/src/v4l2/v4l2_camera_proxy.cpp
+++ b/src/v4l2/v4l2_camera_proxy.cpp
@@ -510,6 +510,13 @@ int V4L2CameraProxy::vidioc_reqbufs(int fd, struct v4l2_requestbuffers *arg)
 	memset(arg->reserved, 0, sizeof(arg->reserved));
 
 	if (arg->count == 0) {
+		if (streaming_) {
+			int argStreamoff = arg->type;
+			ret = vidioc_streamoff(fd, &argStreamoff);
+			if (ret < 0)
+				return ret;
+		}
+
 		unlock(fd);
 		return freeBuffers();
 	}
