Repository navigation
Release 3.0.0 Beta
StreamIngest v3.0.0 beta 1 - Release Note
We are pleased to announce the beta release of StreamIngest v3.0.0, which includes significant architectural improvements, API refinements, and simplifications for camera preview handling and delegate responsibilities. This release lays the groundwork for a more modular and reliable video streaming experience.
🚀 Highlights
1. Simplified Camera Preview Layout
- What’s Changed: Removed
adjustRenderView()and related manual layout logic. Camera preview is now fully managed by Auto Layout. - New API: Introduced
activateCamera(isFrontCamera:)for explicit camera activation, androtateCamera()for switching between front and back cameras. - Impact: Streamlines view layout management and improves camera orientation reliability.
2. Delegate Method Overhaul
- What’s Changed: Deprecated legacy delegate methods like
effectStreamIngest(_:didChange:)andeffectStreamIngestSwitchToUnfiltered(_:). - New API: Added
effectStreamIngest(_:didOutputVideo:)andeffectStreamIngest(_:didOutputAudio:)for direct access to sample buffers. - Impact: Delegates are now focused on media data processing, enabling more flexible and low-level manipulation.
3. Cleaned-Up Configuration
- What’s Changed: Removed deprecated and unused code, including the
enableSkinSmoothFaceOnlyconfiguration setting. - Impact: Simplifies the configuration surface and improves maintainability.
🧹 Removed APIs
The following methods and initializers have been removed:
EffectStreamIngest
// Removed initializer
public convenience init(streamIngest: StreamIngest,
config: EffectStreamIngestConfig = EffectStreamIngestConfig(),
videoRawDataFrameSize: CGSize = CGSize(width: 720, height: 1280))
// Removed method
public func createCameraView(frame: CGRect, aspectRatio ratio: CGFloat) -> CameraPreviewView?StreamIngestAuthorizer
// Removed method
public func requestAuthentication(completion: ((Error?) -> Void)? = nil)Migration Guidance:
- Replace camera view creation with
createCameraView(mode:). - Use
StreamIngest.create()for authentication and initialization. - Use
init(streamIngest:)instead of the removed initializer.
If you have any feedback or run into issues during migration, please reach out to our support or engineering team.