processNv21 method

Stream<FaceDetectionResult> processNv21(
  1. Stream<FaceMeshNv21Image> frames, {
  2. NormalizedRect? roi,
  3. FaceDetectorRoiResolver<FaceMeshNv21Image>? roiResolver,
  4. int rotationDegrees = 0,
  5. bool mirrorHorizontal = false,
  6. double? roiScaleX,
  7. double? roiScaleY,
  8. double? roiShiftX,
  9. double? roiShiftY,
})

Processes NV21 camera frames coming from a stream.

The behaviour mirrors FaceDetectorProcessor.processNv21. Provide at most one of roi or roiResolver. ROI transform overrides are forwarded to each frame and default to the values set on FaceDetectorProcessor.create when omitted.

Implementation

Stream<FaceDetectionResult> processNv21(
  Stream<FaceMeshNv21Image> frames, {
  NormalizedRect? roi,
  FaceDetectorRoiResolver<FaceMeshNv21Image>? roiResolver,
  int rotationDegrees = 0,
  bool mirrorHorizontal = false,
  double? roiScaleX,
  double? roiScaleY,
  double? roiShiftX,
  double? roiShiftY,
}) async* {
  _validateResolvers<FaceMeshNv21Image>(roi, roiResolver);
  await for (final FaceMeshNv21Image frame in frames) {
    final NormalizedRect? dynamicRoi = roiResolver?.call(frame);
    yield _processor.processNv21(
      frame,
      roi: dynamicRoi ?? roi,
      rotationDegrees: rotationDegrees,
      mirrorHorizontal: mirrorHorizontal,
      roiScaleX: roiScaleX,
      roiScaleY: roiScaleY,
      roiShiftX: roiShiftX,
      roiShiftY: roiShiftY,
    );
  }
}