fix: align camera payload caps

This commit is contained in:
Peter Steinberger
2025-12-29 23:20:35 +01:00
parent 6e83f95c83
commit 6927b0fb8d
7 changed files with 17 additions and 3 deletions

View File

@@ -79,7 +79,14 @@ actor CameraCaptureService {
}
withExtendedLifetime(delegate) {}
let res = try JPEGTranscoder.transcodeToJPEG(imageData: rawData, maxWidthPx: maxWidth, quality: quality)
let maxPayloadBytes = 5 * 1024 * 1024
// Base64 inflates payloads by ~4/3; cap encoded bytes so the payload stays under 5MB (API limit).
let maxEncodedBytes = (maxPayloadBytes / 4) * 3
let res = try JPEGTranscoder.transcodeToJPEG(
imageData: rawData,
maxWidthPx: maxWidth,
quality: quality,
maxBytes: maxEncodedBytes)
return (data: res.data, size: CGSize(width: res.widthPx, height: res.heightPx))
}