Add support for Exif and JPEG thumbnails
Also:
* This fixes a bug with jpeg compression when the color plane stride
doesn't match image width
* This fixes missing marker at the end of BLOB buffer.
Bug: 324383963
Test: atest virtual_camera_tests
Test: atest VirtualCameraTest
Test: camera cts
Test: Manually examining captured image with exiftool
Change-Id: I4db804b264a98b8873b5465d4d8d0b8477e9d9a5
diff --git a/services/camera/virtualcamera/VirtualCameraDevice.h b/services/camera/virtualcamera/VirtualCameraDevice.h
index 720f02e..c274dc9 100644
--- a/services/camera/virtualcamera/VirtualCameraDevice.h
+++ b/services/camera/virtualcamera/VirtualCameraDevice.h
@@ -103,20 +103,23 @@
Resolution getMaxInputResolution() const;
// Maximal number of RAW streams - virtual camera doesn't support RAW streams.
- static const int32_t kMaxNumberOfRawStreams = 0;
+ static constexpr int32_t kMaxNumberOfRawStreams = 0;
// Maximal number of non-jpeg streams configured concurrently in single
// session. This should be at least 3 and can be increased at the potential
// cost of more CPU/GPU load if there are many concurrent streams.
- static const int32_t kMaxNumberOfProcessedStreams = 3;
+ static constexpr int32_t kMaxNumberOfProcessedStreams = 3;
// Maximal number of stalling (in case of virtual camera only jpeg for now)
// streams. Can be increaed at the cost of potential cost of more GPU/CPU
// load.
- static const int32_t kMaxNumberOfStallStreams = 1;
+ static constexpr int32_t kMaxNumberOfStallStreams = 1;
// Focal length for full frame sensor.
- constexpr static const float kFocalLength = 43.0;
+ static constexpr float kFocalLength = 43.0;
+
+ // Default JPEG compression quality.
+ static constexpr uint8_t kDefaultJpegQuality = 80;
private:
std::shared_ptr<VirtualCameraDevice> sharedFromThis();