diff --git a/.changes/fix-camera-options-copywith b/.changes/fix-camera-options-copywith new file mode 100644 index 000000000..24cc94877 --- /dev/null +++ b/.changes/fix-camera-options-copywith @@ -0,0 +1 @@ +patch type="fixed" "Fix missing params in CameraCaptureOptions.copyWith" diff --git a/.changes/fix-processor-stop b/.changes/fix-processor-stop new file mode 100644 index 000000000..19a33b77a --- /dev/null +++ b/.changes/fix-processor-stop @@ -0,0 +1 @@ +patch type="fixed" "Stop processor on track end" diff --git a/lib/src/track/local/local.dart b/lib/src/track/local/local.dart index 832581f28..e520b8712 100644 --- a/lib/src/track/local/local.dart +++ b/lib/src/track/local/local.dart @@ -224,6 +224,13 @@ abstract class LocalTrack extends Track { logger.severe('MediaStreamTrack.dispose() did throw $error'); } _stopped = true; + try { + if (_processor != null) { + await stopProcessor(); + } + } catch (error) { + logger.severe('LocalTrack.stopProcessor did throw: $error'); + } } return didStop; } diff --git a/lib/src/track/options.dart b/lib/src/track/options.dart index e60d49270..d5bfc5bbf 100644 --- a/lib/src/track/options.dart +++ b/lib/src/track/options.dart @@ -79,6 +79,7 @@ class CameraCaptureOptions extends VideoCaptureOptions { params: captureOptions.params, deviceId: captureOptions.deviceId, maxFrameRate: captureOptions.maxFrameRate, + processor: captureOptions.processor, ); @override @@ -108,18 +109,24 @@ class CameraCaptureOptions extends VideoCaptureOptions { // Returns new options with updated properties CameraCaptureOptions copyWith({ - VideoParameters? params, CameraPosition? cameraPosition, + CameraFocusMode? focusMode, + CameraExposureMode? exposureMode, String? deviceId, double? maxFrameRate, + VideoParameters? params, bool? stopCameraCaptureOnMute, + TrackProcessor? processor, }) => CameraCaptureOptions( - params: params ?? this.params, cameraPosition: cameraPosition ?? this.cameraPosition, + focusMode: focusMode ?? this.focusMode, + exposureMode: exposureMode ?? this.exposureMode, deviceId: deviceId ?? this.deviceId, maxFrameRate: maxFrameRate ?? this.maxFrameRate, + params: params ?? this.params, stopCameraCaptureOnMute: stopCameraCaptureOnMute ?? this.stopCameraCaptureOnMute, + processor: processor ?? this.processor, ); }