diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp
index 4f8f3e5790ca..adaec54dbfdb 100644
--- a/src/android/camera_device.cpp
+++ b/src/android/camera_device.cpp
@@ -1206,9 +1206,8 @@ int CameraDevice::configureStreams(camera3_stream_configuration_t *stream_list)
 		streamConfiguration.pixelFormat = format;
 
 		config_->addConfiguration(streamConfiguration);
-		unsigned int index = config_->size() - 1;
-		streams_.emplace_back(this, stream, streamConfiguration,
-				      CameraStream::Type::Direct, index);
+		streams_.emplace_back(this, CameraStream::Type::Direct,
+				      stream, config_->size() - 1);
 		stream->priv = static_cast<void *>(&streams_.back());
 	}
 
@@ -1262,8 +1261,7 @@ int CameraDevice::configureStreams(camera3_stream_configuration_t *stream_list)
 			index = config_->size() - 1;
 		}
 
-		StreamConfiguration &cfg = config_->at(index);
-		streams_.emplace_back(this, jpegStream, cfg, type, index);
+		streams_.emplace_back(this, type, jpegStream, index);
 		jpegStream->priv = static_cast<void *>(&streams_.back());
 	}
 
diff --git a/src/android/camera_stream.cpp b/src/android/camera_stream.cpp
index 250f0ab0a3b4..6e7419ae31b8 100644
--- a/src/android/camera_stream.cpp
+++ b/src/android/camera_stream.cpp
@@ -16,18 +16,13 @@ using namespace libcamera;
 
 LOG_DECLARE_CATEGORY(HAL);
 
-CameraStream::CameraStream(CameraDevice *cameraDev,
-			   camera3_stream_t *androidStream,
-			   const libcamera::StreamConfiguration &cfg,
-			   Type type, unsigned int index)
-	: cameraDevice_(cameraDev), androidStream_(androidStream), type_(type),
+CameraStream::CameraStream(CameraDevice *cameraDev, Type type,
+			   camera3_stream_t *androidStream, unsigned int index)
+	: cameraDevice_(cameraDev), type_(type), androidStream_(androidStream),
 	  index_(index), encoder_(nullptr)
 {
 	config_ = cameraDevice_->cameraConfiguration();
 
-	format_ = cfg.pixelFormat;
-	size_ = cfg.size;
-
 	if (type_ == Type::Internal || type_ == Type::Mapped)
 		encoder_.reset(new EncoderLibJpeg);
 }
@@ -42,6 +37,16 @@ Stream *CameraStream::stream() const
 	return streamConfiguration().stream();
 }
 
+const PixelFormat &CameraStream::format() const
+{
+	return streamConfiguration().pixelFormat;
+}
+
+const Size &CameraStream::size() const
+{
+	return streamConfiguration().size;
+}
+
 int CameraStream::configure(const libcamera::StreamConfiguration &cfg)
 {
 	if (encoder_)
@@ -62,7 +67,7 @@ int CameraStream::process(libcamera::FrameBuffer *source, MappedCamera3Buffer *d
 	exif.setMake("libcamera");
 	exif.setModel("cameraModel");
 	exif.setOrientation(cameraDevice_->orientation());
-	exif.setSize(size_);
+	exif.setSize(size());
 	/*
 	 * We set the frame's EXIF timestamp as the time of encode.
 	 * Since the precision we need for EXIF timestamp is only one
diff --git a/src/android/camera_stream.h b/src/android/camera_stream.h
index fa295a69404f..b67b4c0ca0b3 100644
--- a/src/android/camera_stream.h
+++ b/src/android/camera_stream.h
@@ -107,18 +107,16 @@ public:
 		Internal,
 		Mapped,
 	};
-	CameraStream(CameraDevice *cameraDev,
-		     camera3_stream_t *androidStream,
-		     const libcamera::StreamConfiguration &cfg,
-		     Type type, unsigned int index);
+	CameraStream(CameraDevice *cameraDev, Type type,
+		     camera3_stream_t *androidStream, unsigned int index);
 
 	int outputFormat() const { return androidStream_->format; }
-	const libcamera::PixelFormat &format() const { return format_; }
-	const libcamera::Size &size() const { return size_; }
 	Type type() const { return type_; }
 
 	const libcamera::StreamConfiguration &streamConfiguration() const;
 	libcamera::Stream *stream() const;
+	const libcamera::PixelFormat &format() const;
+	const libcamera::Size &size() const;
 
 	int configure(const libcamera::StreamConfiguration &cfg);
 	int process(libcamera::FrameBuffer *source,
@@ -127,13 +125,8 @@ public:
 
 private:
 	CameraDevice *cameraDevice_;
-	libcamera::CameraConfiguration *config_;
-	camera3_stream_t *androidStream_;
 	Type type_;
-
-	/* Libcamera facing format and sizes. */
-	libcamera::PixelFormat format_;
-	libcamera::Size size_;
+	camera3_stream_t *androidStream_;
 
 	/*
 	 * The index of the libcamera StreamConfiguration as added during
@@ -141,6 +134,7 @@ private:
 	 * one or more streams to the Android framework.
 	 */
 	unsigned int index_;
+	libcamera::CameraConfiguration *config_;
 	std::unique_ptr<Encoder> encoder_;
 };
 
