Conversation
Updated the recommendation for increasing video quality during capture on iOS.
📝 WalkthroughWalkthroughA new Changes
Sequence Diagram(s)sequenceDiagram
participant Client
participant Plugin
participant CameraController as Platform<br/>(Camera/Controller)
participant SessionConfig as Session Config
participant Camera as Camera Engine
Client->>Plugin: startCamera({videoQuality: 'high'})
Plugin->>CameraController: prepare(..., videoQuality: 'high')
CameraController->>SessionConfig: new CameraSessionConfiguration(..., videoQuality)
SessionConfig->>SessionConfig: store videoQuality
CameraController->>CameraController: selectPreset(quality: 'high')
CameraController->>Camera: configure(presets, quality)
Camera->>Camera: set video capture quality
Camera-->>Client: camera ready
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 3 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches
🧪 Generate unit tests (beta)
No actionable comments were generated in the recent review. 🎉 🧹 Recent nitpick comments
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
What
Why
Problem: Default "High" quality videos were exceeding 10MB+, leading to frequent sync failures on low-bandwidth LTE.
Use cases for apps that are used with poor signal and need to be able to sync smaller quality photos/videos.
How
iOS Implementation: Updated configureSessionPreset to use a tiered selection logic:
Android Implementation: Utilized CameraX's QualitySelector with a tiered selection logic.
All "high" quality (the default) uses the existing logic prior to the PR
Testing
Verified file sizes and resolutions using native logs and JS-side file inspection for Android and iOS.
Not Tested
Summary by CodeRabbit
New Features
Documentation