experimental spike for proto-based plugin
This commit is contained in:
		
							parent
							
								
									a53cc09605
								
							
						
					
					
						commit
						805e8300f7
					
				
							
								
								
									
										1
									
								
								mediapipe/dart/dart_builder/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								mediapipe/dart/dart_builder/.gitignore
									
									
									
									
										vendored
									
									
								
							| 
						 | 
					@ -1,3 +1,4 @@
 | 
				
			||||||
# https://dart.dev/guides/libraries/private-files
 | 
					# https://dart.dev/guides/libraries/private-files
 | 
				
			||||||
# Created by `dart pub`
 | 
					# Created by `dart pub`
 | 
				
			||||||
.dart_tool/
 | 
					.dart_tool/
 | 
				
			||||||
 | 
					cc/*
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										36
									
								
								mediapipe/dart/dart_builder/bin/cpp_test.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								mediapipe/dart/dart_builder/bin/cpp_test.dart
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,36 @@
 | 
				
			||||||
 | 
					// Copyright (c) 2019, the Dart project authors.  Please see the AUTHORS file
 | 
				
			||||||
 | 
					// for details. All rights reserved. Use of this source code is governed by a
 | 
				
			||||||
 | 
					// BSD-style license that can be found in the LICENSE file.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import 'dart:ffi' as ffi;
 | 
				
			||||||
 | 
					import 'dart:io' show Platform, Directory;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import 'package:path/path.dart' as path;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// FFI signature of the hello_world C function
 | 
				
			||||||
 | 
					typedef IncrementFunc = ffi.Int32 Function(ffi.Int32);
 | 
				
			||||||
 | 
					typedef Increment = int Function(int);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void main() {
 | 
				
			||||||
 | 
					  // Open the dynamic library
 | 
				
			||||||
 | 
					  var libraryPath =
 | 
				
			||||||
 | 
					      path.join(Directory.current.absolute.path, 'cpp', 'main.dylib');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // if (Platform.isMacOS) {
 | 
				
			||||||
 | 
					  //   libraryPath =
 | 
				
			||||||
 | 
					  //       path.join(Directory.current.path, 'hello_library', 'libhello.dylib');
 | 
				
			||||||
 | 
					  // }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // if (Platform.isWindows) {
 | 
				
			||||||
 | 
					  //   libraryPath = path.join(
 | 
				
			||||||
 | 
					  //       Directory.current.path, 'hello_library', 'Debug', 'hello.dll');
 | 
				
			||||||
 | 
					  // }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  final dylib = ffi.DynamicLibrary.open(libraryPath);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // Look up the C function 'hello_world'
 | 
				
			||||||
 | 
					  final Increment increment =
 | 
				
			||||||
 | 
					      dylib.lookup<ffi.NativeFunction<IncrementFunc>>('increment').asFunction();
 | 
				
			||||||
 | 
					  // Call the function
 | 
				
			||||||
 | 
					  print(increment(99));
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -37,13 +37,6 @@ class DartProtoBuilder {
 | 
				
			||||||
          repositoryRoot.absolute.path, 'mediapipe', 'dart', 'dart_builder'),
 | 
					          repositoryRoot.absolute.path, 'mediapipe', 'dart', 'dart_builder'),
 | 
				
			||||||
    );
 | 
					    );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    _buildDirectory = io.Directory(
 | 
					 | 
				
			||||||
      path.join(
 | 
					 | 
				
			||||||
        io.Directory.current.parent.parent.parent.parent.absolute.path,
 | 
					 | 
				
			||||||
        'build',
 | 
					 | 
				
			||||||
      ),
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    _outputDirectory = options.outputPath != null
 | 
					    _outputDirectory = options.outputPath != null
 | 
				
			||||||
        ? io.Directory(options.outputPath!)
 | 
					        ? io.Directory(options.outputPath!)
 | 
				
			||||||
        : io.Directory(
 | 
					        : io.Directory(
 | 
				
			||||||
| 
						 | 
					@ -67,12 +60,11 @@ class DartProtoBuilder {
 | 
				
			||||||
  io.Directory get mediapipeDir => _mediapipeDir!;
 | 
					  io.Directory get mediapipeDir => _mediapipeDir!;
 | 
				
			||||||
  io.Directory? _mediapipeDir;
 | 
					  io.Directory? _mediapipeDir;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  io.Directory get buildDirectory => _buildDirectory!;
 | 
					  /// Directory to place compiled protobufs.
 | 
				
			||||||
  io.Directory? _buildDirectory;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  io.Directory get outputDirectory => _outputDirectory!;
 | 
					  io.Directory get outputDirectory => _outputDirectory!;
 | 
				
			||||||
  io.Directory? _outputDirectory;
 | 
					  io.Directory? _outputDirectory;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /// Location of this command.
 | 
				
			||||||
  io.Directory get dartBuilderDirectory => _dartBuilderDirectory!;
 | 
					  io.Directory get dartBuilderDirectory => _dartBuilderDirectory!;
 | 
				
			||||||
  io.Directory? _dartBuilderDirectory;
 | 
					  io.Directory? _dartBuilderDirectory;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -100,7 +92,7 @@ class DartProtoBuilder {
 | 
				
			||||||
        [ansi.green],
 | 
					        [ansi.green],
 | 
				
			||||||
      ),
 | 
					      ),
 | 
				
			||||||
    );
 | 
					    );
 | 
				
			||||||
    // await _buildProtos();
 | 
					    await _buildProtos();
 | 
				
			||||||
    await _buildBarrelFiles();
 | 
					    await _buildBarrelFiles();
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -228,16 +220,13 @@ class DartProtoBuilder {
 | 
				
			||||||
      ).absolute.path;
 | 
					      ).absolute.path;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Future<void> _confirmOutputDirectories() async {
 | 
					  Future<void> _confirmOutputDirectories() async {
 | 
				
			||||||
    if (!await _buildDirectory!.exists()) {
 | 
					 | 
				
			||||||
      _buildDirectory!.create();
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    if (!await _outputDirectory!.exists()) {
 | 
					    if (!await _outputDirectory!.exists()) {
 | 
				
			||||||
      _outputDirectory!.create();
 | 
					      _outputDirectory!.create();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Future<void> _prepareProtos() async {
 | 
					  Future<void> _prepareProtos() async {
 | 
				
			||||||
    if (!(await outputDirectory.exists())) {
 | 
					    if (!await outputDirectory.exists()) {
 | 
				
			||||||
      io.stdout.writeln('Creating output directory');
 | 
					      io.stdout.writeln('Creating output directory');
 | 
				
			||||||
      outputDirectory.create();
 | 
					      outputDirectory.create();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										2
									
								
								mediapipe/dart/mediapipe/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								mediapipe/dart/mediapipe/.gitignore
									
									
									
									
										vendored
									
									
								
							| 
						 | 
					@ -1,6 +1,8 @@
 | 
				
			||||||
# https://dart.dev/guides/libraries/private-files
 | 
					# https://dart.dev/guides/libraries/private-files
 | 
				
			||||||
# Created by `dart pub`
 | 
					# Created by `dart pub`
 | 
				
			||||||
.dart_tool/
 | 
					.dart_tool/
 | 
				
			||||||
 | 
					lib/generated/google/*
 | 
				
			||||||
 | 
					lib/generated/mediapipe/*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Avoid committing pubspec.lock for library packages; see
 | 
					# Avoid committing pubspec.lock for library packages; see
 | 
				
			||||||
# https://dart.dev/guides/libraries/private-files#pubspeclock.
 | 
					# https://dart.dev/guides/libraries/private-files#pubspeclock.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										10
									
								
								mediapipe/dart/mediapipe/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								mediapipe/dart/mediapipe/Makefile
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,10 @@
 | 
				
			||||||
 | 
					ffigen:
 | 
				
			||||||
 | 
						dart run ffigen --config ffigen.yaml
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					compile:
 | 
				
			||||||
 | 
						gcc c/text_classifier.c -o c/text_classifier
 | 
				
			||||||
 | 
						cd c && gcc -static -c -fPIC *.c -o text_classifier.o
 | 
				
			||||||
 | 
						cd c && gcc -shared -o text_classifier.dylib text_classifier.o 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					run:
 | 
				
			||||||
 | 
						cd c && dart text_classifier_c.dart
 | 
				
			||||||
							
								
								
									
										8
									
								
								mediapipe/dart/mediapipe/ffigen.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								mediapipe/dart/mediapipe/ffigen.yaml
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,8 @@
 | 
				
			||||||
 | 
					name: flutter_mediapipe
 | 
				
			||||||
 | 
					description: MediaPipe bindings.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					output: "lib/src/third_party/generated/mediapipe_bindings.dart"
 | 
				
			||||||
 | 
					headers:
 | 
				
			||||||
 | 
					  entry-points:
 | 
				
			||||||
 | 
					    - "third_party/mediapipe/classification_result.h"
 | 
				
			||||||
 | 
					    - "third_party/mediapipe/text_classifier.h"
 | 
				
			||||||
| 
						 | 
					@ -1,15 +1,35 @@
 | 
				
			||||||
 | 
					import 'dart:ffi' as ffi;
 | 
				
			||||||
 | 
					// TODO: This will require a web-specific solution.
 | 
				
			||||||
 | 
					import 'dart:io';
 | 
				
			||||||
 | 
					import 'package:path/path.dart' as path;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import '../../../generated/mediapipe/framework/calculator.pb.dart';
 | 
					import '../../../generated/mediapipe/framework/calculator.pb.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// TODO: Figure out ffi type for Maps
 | 
				
			||||||
 | 
					typedef ProcessCC = Map<String, Packet> Function(Map<String, Object> data);
 | 
				
			||||||
 | 
					typedef Process = Map<String, Packet> Function(Map<String, Object> data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// TODO: Wrap C++ TaskRunner with this, similarly to this Python wrapper:
 | 
					// TODO: Wrap C++ TaskRunner with this, similarly to this Python wrapper:
 | 
				
			||||||
// https://source.corp.google.com/piper///depot/google3/third_party/mediapipe/python/framework_bindings.cc?q=python%20framework_bindings.cc
 | 
					// https://source.corp.google.com/piper///depot/google3/third_party/mediapipe/python/framework_bindings.cc?q=python%20framework_bindings.cc
 | 
				
			||||||
class TaskRunner {
 | 
					class TaskRunner {
 | 
				
			||||||
  TaskRunner(this.graphConfig);
 | 
					  TaskRunner(this.graphConfig) {
 | 
				
			||||||
 | 
					    var libraryPath =
 | 
				
			||||||
 | 
					        path.join(Directory.current.absolute.path, 'cc', 'main.dylib');
 | 
				
			||||||
 | 
					    mediaPipe = ffi.DynamicLibrary.open(libraryPath);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  final CalculatorGraphConfig graphConfig;
 | 
					  final CalculatorGraphConfig graphConfig;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  late ffi.DynamicLibrary mediaPipe;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // TODO: Actually decode this line for correct parameter type:
 | 
					  // TODO: Actually decode this line for correct parameter type:
 | 
				
			||||||
  // https://source.corp.google.com/piper///depot/google3/third_party/mediapipe/tasks/python/text/text_classifier.py;l=181
 | 
					  // https://source.corp.google.com/piper///depot/google3/third_party/mediapipe/tasks/python/text/text_classifier.py;l=181
 | 
				
			||||||
  Map<String, Packet> process(Map<String, Object> data) => {};
 | 
					  Map<String, Packet> process(Map<String, Object> data) {
 | 
				
			||||||
 | 
					    throw UnimplementedError();
 | 
				
			||||||
 | 
					    // final Process ccProcess =
 | 
				
			||||||
 | 
					    //     mediaPipe.lookup<ffi.NativeFunction<ProcessCC>>('process').asFunction();
 | 
				
			||||||
 | 
					    // return ccProcess(data);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// TODO: Wrap C++ Packet with this, similarly to this Python wrapper:
 | 
					// TODO: Wrap C++ Packet with this, similarly to this Python wrapper:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -23,6 +23,8 @@ class TextClassifier {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Configuration options for this [TextClassifier].
 | 
					  /// Configuration options for this [TextClassifier].
 | 
				
			||||||
  final TextClassifierOptions options;
 | 
					  final TextClassifierOptions options;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /// Configuration object passed to the [TaskRunner].
 | 
				
			||||||
  final TaskInfo _taskInfo;
 | 
					  final TaskInfo _taskInfo;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  TaskRunner get taskRunner => _taskRunner!;
 | 
					  TaskRunner get taskRunner => _taskRunner!;
 | 
				
			||||||
| 
						 | 
					@ -35,11 +37,12 @@ class TextClassifier {
 | 
				
			||||||
  static const taskGraphName =
 | 
					  static const taskGraphName =
 | 
				
			||||||
      'mediapipe.tasks.text.text_classifier.TextClassifierGraph';
 | 
					      'mediapipe.tasks.text.text_classifier.TextClassifierGraph';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // TODO: Don't return protobuf objects. Instead, convert to plain Dart objects.
 | 
				
			||||||
  /// Performs classification on the input `text`.
 | 
					  /// Performs classification on the input `text`.
 | 
				
			||||||
  Future<tasks_pb.ClassificationResult> classify(String text) async {
 | 
					  Future<tasks_pb.ClassificationResult> classify(String text) async {
 | 
				
			||||||
    // TODO: Actually decode this line to correctly fill up this map parameter
 | 
					    // TODO: Actually decode this line to correctly fill up this map parameter
 | 
				
			||||||
    // https://source.corp.google.com/piper///depot/google3/third_party/mediapipe/tasks/python/text/text_classifier.py;l=181
 | 
					    // https://source.corp.google.com/piper///depot/google3/third_party/mediapipe/tasks/python/text/text_classifier.py;l=181
 | 
				
			||||||
    final outputPackets = taskRunner.process({});
 | 
					    final outputPackets = taskRunner.process({textInStreamName: Object()});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // TODO: Obviously this is not real
 | 
					    // TODO: Obviously this is not real
 | 
				
			||||||
    return tasks_pb.ClassificationResult.create();
 | 
					    return tasks_pb.ClassificationResult.create();
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										420
									
								
								mediapipe/dart/mediapipe/lib/src/third_party/generated/mediapipe_bindings.dart
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										420
									
								
								mediapipe/dart/mediapipe/lib/src/third_party/generated/mediapipe_bindings.dart
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,420 @@
 | 
				
			||||||
 | 
					// AUTO GENERATED FILE, DO NOT EDIT.
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// Generated by `package:ffigen`.
 | 
				
			||||||
 | 
					// ignore_for_file: type=lint
 | 
				
			||||||
 | 
					import 'dart:ffi' as ffi;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// MediaPipe bindings.
 | 
				
			||||||
 | 
					class flutter_mediapipe {
 | 
				
			||||||
 | 
					  /// Holds the symbol lookup function.
 | 
				
			||||||
 | 
					  final ffi.Pointer<T> Function<T extends ffi.NativeType>(String symbolName)
 | 
				
			||||||
 | 
					      _lookup;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /// The symbols are looked up in [dynamicLibrary].
 | 
				
			||||||
 | 
					  flutter_mediapipe(ffi.DynamicLibrary dynamicLibrary)
 | 
				
			||||||
 | 
					      : _lookup = dynamicLibrary.lookup;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /// The symbols are looked up with [lookup].
 | 
				
			||||||
 | 
					  flutter_mediapipe.fromLookup(
 | 
				
			||||||
 | 
					      ffi.Pointer<T> Function<T extends ffi.NativeType>(String symbolName)
 | 
				
			||||||
 | 
					          lookup)
 | 
				
			||||||
 | 
					      : _lookup = lookup;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  void text_classifier_create(
 | 
				
			||||||
 | 
					    TextClassifierOptions options,
 | 
				
			||||||
 | 
					  ) {
 | 
				
			||||||
 | 
					    return _text_classifier_create(
 | 
				
			||||||
 | 
					      options,
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  late final _text_classifier_createPtr =
 | 
				
			||||||
 | 
					      _lookup<ffi.NativeFunction<ffi.Void Function(TextClassifierOptions)>>(
 | 
				
			||||||
 | 
					          'text_classifier_create');
 | 
				
			||||||
 | 
					  late final _text_classifier_create = _text_classifier_createPtr
 | 
				
			||||||
 | 
					      .asFunction<void Function(TextClassifierOptions)>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  ffi.Pointer<TextClassifierResult> text_classifier_classify(
 | 
				
			||||||
 | 
					    ffi.Pointer<ffi.Void> classifier,
 | 
				
			||||||
 | 
					    ffi.Pointer<ffi.Char> utf8_text,
 | 
				
			||||||
 | 
					  ) {
 | 
				
			||||||
 | 
					    return _text_classifier_classify(
 | 
				
			||||||
 | 
					      classifier,
 | 
				
			||||||
 | 
					      utf8_text,
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  late final _text_classifier_classifyPtr = _lookup<
 | 
				
			||||||
 | 
					      ffi.NativeFunction<
 | 
				
			||||||
 | 
					          ffi.Pointer<TextClassifierResult> Function(ffi.Pointer<ffi.Void>,
 | 
				
			||||||
 | 
					              ffi.Pointer<ffi.Char>)>>('text_classifier_classify');
 | 
				
			||||||
 | 
					  late final _text_classifier_classify =
 | 
				
			||||||
 | 
					      _text_classifier_classifyPtr.asFunction<
 | 
				
			||||||
 | 
					          ffi.Pointer<TextClassifierResult> Function(
 | 
				
			||||||
 | 
					              ffi.Pointer<ffi.Void>, ffi.Pointer<ffi.Char>)>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  ffi.Pointer<TextClassifierResult> text_classifier_classify_simple(
 | 
				
			||||||
 | 
					    ffi.Pointer<ffi.Char> utf8_text,
 | 
				
			||||||
 | 
					  ) {
 | 
				
			||||||
 | 
					    return _text_classifier_classify_simple(
 | 
				
			||||||
 | 
					      utf8_text,
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  late final _text_classifier_classify_simplePtr = _lookup<
 | 
				
			||||||
 | 
					      ffi.NativeFunction<
 | 
				
			||||||
 | 
					          ffi.Pointer<TextClassifierResult> Function(
 | 
				
			||||||
 | 
					              ffi.Pointer<ffi.Char>)>>('text_classifier_classify_simple');
 | 
				
			||||||
 | 
					  late final _text_classifier_classify_simple =
 | 
				
			||||||
 | 
					      _text_classifier_classify_simplePtr.asFunction<
 | 
				
			||||||
 | 
					          ffi.Pointer<TextClassifierResult> Function(ffi.Pointer<ffi.Char>)>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  void text_classifier_close(
 | 
				
			||||||
 | 
					    ffi.Pointer<ffi.Void> classifier,
 | 
				
			||||||
 | 
					  ) {
 | 
				
			||||||
 | 
					    return _text_classifier_close(
 | 
				
			||||||
 | 
					      classifier,
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  late final _text_classifier_closePtr =
 | 
				
			||||||
 | 
					      _lookup<ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ffi.Void>)>>(
 | 
				
			||||||
 | 
					          'text_classifier_close');
 | 
				
			||||||
 | 
					  late final _text_classifier_close = _text_classifier_closePtr
 | 
				
			||||||
 | 
					      .asFunction<void Function(ffi.Pointer<ffi.Void>)>();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					final class __mbstate_t extends ffi.Union {
 | 
				
			||||||
 | 
					  @ffi.Array.multi([128])
 | 
				
			||||||
 | 
					  external ffi.Array<ffi.Char> __mbstate8;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @ffi.LongLong()
 | 
				
			||||||
 | 
					  external int _mbstateL;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					final class __darwin_pthread_handler_rec extends ffi.Struct {
 | 
				
			||||||
 | 
					  external ffi
 | 
				
			||||||
 | 
					      .Pointer<ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ffi.Void>)>>
 | 
				
			||||||
 | 
					      __routine;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  external ffi.Pointer<ffi.Void> __arg;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  external ffi.Pointer<__darwin_pthread_handler_rec> __next;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					final class _opaque_pthread_attr_t extends ffi.Struct {
 | 
				
			||||||
 | 
					  @ffi.Long()
 | 
				
			||||||
 | 
					  external int __sig;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @ffi.Array.multi([56])
 | 
				
			||||||
 | 
					  external ffi.Array<ffi.Char> __opaque;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					final class _opaque_pthread_cond_t extends ffi.Struct {
 | 
				
			||||||
 | 
					  @ffi.Long()
 | 
				
			||||||
 | 
					  external int __sig;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @ffi.Array.multi([40])
 | 
				
			||||||
 | 
					  external ffi.Array<ffi.Char> __opaque;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					final class _opaque_pthread_condattr_t extends ffi.Struct {
 | 
				
			||||||
 | 
					  @ffi.Long()
 | 
				
			||||||
 | 
					  external int __sig;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @ffi.Array.multi([8])
 | 
				
			||||||
 | 
					  external ffi.Array<ffi.Char> __opaque;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					final class _opaque_pthread_mutex_t extends ffi.Struct {
 | 
				
			||||||
 | 
					  @ffi.Long()
 | 
				
			||||||
 | 
					  external int __sig;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @ffi.Array.multi([56])
 | 
				
			||||||
 | 
					  external ffi.Array<ffi.Char> __opaque;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					final class _opaque_pthread_mutexattr_t extends ffi.Struct {
 | 
				
			||||||
 | 
					  @ffi.Long()
 | 
				
			||||||
 | 
					  external int __sig;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @ffi.Array.multi([8])
 | 
				
			||||||
 | 
					  external ffi.Array<ffi.Char> __opaque;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					final class _opaque_pthread_once_t extends ffi.Struct {
 | 
				
			||||||
 | 
					  @ffi.Long()
 | 
				
			||||||
 | 
					  external int __sig;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @ffi.Array.multi([8])
 | 
				
			||||||
 | 
					  external ffi.Array<ffi.Char> __opaque;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					final class _opaque_pthread_rwlock_t extends ffi.Struct {
 | 
				
			||||||
 | 
					  @ffi.Long()
 | 
				
			||||||
 | 
					  external int __sig;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @ffi.Array.multi([192])
 | 
				
			||||||
 | 
					  external ffi.Array<ffi.Char> __opaque;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					final class _opaque_pthread_rwlockattr_t extends ffi.Struct {
 | 
				
			||||||
 | 
					  @ffi.Long()
 | 
				
			||||||
 | 
					  external int __sig;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @ffi.Array.multi([16])
 | 
				
			||||||
 | 
					  external ffi.Array<ffi.Char> __opaque;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					final class _opaque_pthread_t extends ffi.Struct {
 | 
				
			||||||
 | 
					  @ffi.Long()
 | 
				
			||||||
 | 
					  external int __sig;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  external ffi.Pointer<__darwin_pthread_handler_rec> __cleanup_stack;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @ffi.Array.multi([8176])
 | 
				
			||||||
 | 
					  external ffi.Array<ffi.Char> __opaque;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					final class Category extends ffi.Struct {
 | 
				
			||||||
 | 
					  @ffi.Int()
 | 
				
			||||||
 | 
					  external int index;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @ffi.Float()
 | 
				
			||||||
 | 
					  external double score;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  external ffi.Pointer<ffi.Char> category_name;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  external ffi.Pointer<ffi.Char> display_name;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					final class Classifications extends ffi.Struct {
 | 
				
			||||||
 | 
					  external ffi.Pointer<Category> categories;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @ffi.Uint32()
 | 
				
			||||||
 | 
					  external int categories_count;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @ffi.Int()
 | 
				
			||||||
 | 
					  external int head_index;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  external ffi.Pointer<ffi.Char> head_name;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					final class ClassificationResult extends ffi.Struct {
 | 
				
			||||||
 | 
					  external ffi.Pointer<Classifications> classifications;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @ffi.Uint32()
 | 
				
			||||||
 | 
					  external int classifications_count;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @ffi.Int64()
 | 
				
			||||||
 | 
					  external int timestamp_ms;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @ffi.Bool()
 | 
				
			||||||
 | 
					  external bool has_timestamp_ms;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					final class BaseOptions extends ffi.Struct {
 | 
				
			||||||
 | 
					  external ffi.Pointer<ffi.Char> model_asset_buffer;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  external ffi.Pointer<ffi.Char> model_asset_path;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					final class ClassifierOptions extends ffi.Struct {
 | 
				
			||||||
 | 
					  external ffi.Pointer<ffi.Char> display_names_locale;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @ffi.Int()
 | 
				
			||||||
 | 
					  external int max_results;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @ffi.Float()
 | 
				
			||||||
 | 
					  external double score_threshold;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  external ffi.Pointer<ffi.Pointer<ffi.Char>> category_allowlist;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @ffi.Uint32()
 | 
				
			||||||
 | 
					  external int category_allowlist_count;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  external ffi.Pointer<ffi.Pointer<ffi.Char>> category_denylist;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @ffi.Uint32()
 | 
				
			||||||
 | 
					  external int category_denylist_count;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					final class TextClassifierOptions extends ffi.Struct {
 | 
				
			||||||
 | 
					  external BaseOptions base_options;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  external ClassifierOptions classifier_options;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef TextClassifierResult = ClassificationResult;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int true1 = 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int false1 = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int __bool_true_false_are_defined = 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int __WORDSIZE = 64;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int __DARWIN_ONLY_64_BIT_INO_T = 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int __DARWIN_ONLY_UNIX_CONFORMANCE = 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int __DARWIN_ONLY_VERS_1050 = 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int __DARWIN_UNIX03 = 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int __DARWIN_64_BIT_INO_T = 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int __DARWIN_VERS_1050 = 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int __DARWIN_NON_CANCELABLE = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const String __DARWIN_SUF_EXTSN = '\$DARWIN_EXTSN';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int __DARWIN_C_ANSI = 4096;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int __DARWIN_C_FULL = 900000;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int __DARWIN_C_LEVEL = 900000;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int __STDC_WANT_LIB_EXT1__ = 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int __DARWIN_NO_LONG_LONG = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int _DARWIN_FEATURE_64_BIT_INODE = 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int _DARWIN_FEATURE_ONLY_64_BIT_INODE = 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int _DARWIN_FEATURE_ONLY_VERS_1050 = 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int _DARWIN_FEATURE_UNIX_CONFORMANCE = 3;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int __has_ptrcheck = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int __DARWIN_NULL = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int __PTHREAD_SIZE__ = 8176;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int __PTHREAD_ATTR_SIZE__ = 56;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int __PTHREAD_MUTEXATTR_SIZE__ = 8;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int __PTHREAD_MUTEX_SIZE__ = 56;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int __PTHREAD_CONDATTR_SIZE__ = 8;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int __PTHREAD_COND_SIZE__ = 40;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int __PTHREAD_ONCE_SIZE__ = 8;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int __PTHREAD_RWLOCK_SIZE__ = 192;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int __PTHREAD_RWLOCKATTR_SIZE__ = 16;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int USER_ADDR_NULL = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int INT8_MAX = 127;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int INT16_MAX = 32767;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int INT32_MAX = 2147483647;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int INT64_MAX = 9223372036854775807;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int INT8_MIN = -128;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int INT16_MIN = -32768;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int INT32_MIN = -2147483648;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int INT64_MIN = -9223372036854775808;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int UINT8_MAX = 255;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int UINT16_MAX = 65535;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int UINT32_MAX = 4294967295;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int UINT64_MAX = -1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int INT_LEAST8_MIN = -128;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int INT_LEAST16_MIN = -32768;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int INT_LEAST32_MIN = -2147483648;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int INT_LEAST64_MIN = -9223372036854775808;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int INT_LEAST8_MAX = 127;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int INT_LEAST16_MAX = 32767;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int INT_LEAST32_MAX = 2147483647;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int INT_LEAST64_MAX = 9223372036854775807;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int UINT_LEAST8_MAX = 255;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int UINT_LEAST16_MAX = 65535;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int UINT_LEAST32_MAX = 4294967295;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int UINT_LEAST64_MAX = -1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int INT_FAST8_MIN = -128;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int INT_FAST16_MIN = -32768;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int INT_FAST32_MIN = -2147483648;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int INT_FAST64_MIN = -9223372036854775808;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int INT_FAST8_MAX = 127;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int INT_FAST16_MAX = 32767;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int INT_FAST32_MAX = 2147483647;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int INT_FAST64_MAX = 9223372036854775807;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int UINT_FAST8_MAX = 255;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int UINT_FAST16_MAX = 65535;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int UINT_FAST32_MAX = 4294967295;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int UINT_FAST64_MAX = -1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int INTPTR_MAX = 9223372036854775807;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int INTPTR_MIN = -9223372036854775808;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int UINTPTR_MAX = -1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int INTMAX_MAX = 9223372036854775807;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int UINTMAX_MAX = -1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int INTMAX_MIN = -9223372036854775808;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int PTRDIFF_MIN = -9223372036854775808;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int PTRDIFF_MAX = 9223372036854775807;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int SIZE_MAX = -1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int RSIZE_MAX = 9223372036854775807;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int WCHAR_MAX = 2147483647;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int WCHAR_MIN = -2147483648;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int WINT_MIN = -2147483648;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int WINT_MAX = 2147483647;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int SIG_ATOMIC_MIN = -2147483648;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const int SIG_ATOMIC_MAX = 2147483647;
 | 
				
			||||||
| 
						 | 
					@ -7,10 +7,12 @@ environment:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Add regular dependencies here.
 | 
					# Add regular dependencies here.
 | 
				
			||||||
dependencies:
 | 
					dependencies:
 | 
				
			||||||
 | 
					  ffi: ^2.0.2
 | 
				
			||||||
  fixnum: ^1.1.0
 | 
					  fixnum: ^1.1.0
 | 
				
			||||||
  path: ^1.8.3
 | 
					  path: ^1.8.3
 | 
				
			||||||
  protobuf: ^3.0.0
 | 
					  protobuf: ^3.0.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
dev_dependencies:
 | 
					dev_dependencies:
 | 
				
			||||||
 | 
					  ffigen: ^9.0.1
 | 
				
			||||||
  lints: ^2.0.0
 | 
					  lints: ^2.0.0
 | 
				
			||||||
  test: ^1.21.0
 | 
					  test: ^1.21.0
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										25
									
								
								mediapipe/dart/mediapipe/third_party/mediapipe/base_options.h
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								mediapipe/dart/mediapipe/third_party/mediapipe/base_options.h
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,25 @@
 | 
				
			||||||
 | 
					/* Copyright 2023 The MediaPipe Authors.
 | 
				
			||||||
 | 
					Licensed under the Apache License, Version 2.0 (the "License");
 | 
				
			||||||
 | 
					you may not use this file except in compliance with the License.
 | 
				
			||||||
 | 
					You may obtain a copy of the License at
 | 
				
			||||||
 | 
					    http://www.apache.org/licenses/LICENSE-2.0
 | 
				
			||||||
 | 
					Unless required by applicable law or agreed to in writing, software
 | 
				
			||||||
 | 
					distributed under the License is distributed on an "AS IS" BASIS,
 | 
				
			||||||
 | 
					WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
				
			||||||
 | 
					See the License for the specific language governing permissions and
 | 
				
			||||||
 | 
					limitations under the License.
 | 
				
			||||||
 | 
					==============================================================================*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef THIRD_PARTY_MEDIAPIPE_TASKS_C_CORE_BASE_OPTIONS_H_
 | 
				
			||||||
 | 
					#define THIRD_PARTY_MEDIAPIPE_TASKS_C_CORE_BASE_OPTIONS_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Base options for MediaPipe C Tasks.
 | 
				
			||||||
 | 
					struct BaseOptions
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    // The model asset file contents as a string.
 | 
				
			||||||
 | 
					    char *model_asset_buffer;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // The path to the model asset to open and mmap in memory.
 | 
				
			||||||
 | 
					    char *model_asset_path;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					#endif // THIRD_PARTY_MEDIAPIPE_TASKS_C_CORE_BASE_OPTIONS_H_
 | 
				
			||||||
							
								
								
									
										35
									
								
								mediapipe/dart/mediapipe/third_party/mediapipe/category.h
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								mediapipe/dart/mediapipe/third_party/mediapipe/category.h
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,35 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Copyright 2023 The MediaPipe Authors.
 | 
				
			||||||
 | 
					Licensed under the Apache License, Version 2.0 (the "License");
 | 
				
			||||||
 | 
					you may not use this file except in compliance with the License.
 | 
				
			||||||
 | 
					You may obtain a copy of the License at
 | 
				
			||||||
 | 
					    http://www.apache.org/licenses/LICENSE-2.0
 | 
				
			||||||
 | 
					Unless required by applicable law or agreed to in writing, software
 | 
				
			||||||
 | 
					distributed under the License is distributed on an "AS IS" BASIS,
 | 
				
			||||||
 | 
					WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
				
			||||||
 | 
					See the License for the specific language governing permissions and
 | 
				
			||||||
 | 
					limitations under the License.
 | 
				
			||||||
 | 
					==============================================================================*/
 | 
				
			||||||
 | 
					#ifndef THIRD_PARTY_MEDIAPIPE_TASKS_C_COMPONENTS_CONTAINERS_CATEGORY_H_
 | 
				
			||||||
 | 
					#define THIRD_PARTY_MEDIAPIPE_TASKS_C_COMPONENTS_CONTAINERS_CATEGORY_H_
 | 
				
			||||||
 | 
					// Defines a single classification result.
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// The label maps packed into the TFLite Model Metadata [1] are used to populate
 | 
				
			||||||
 | 
					// the 'category_name' and 'display_name' fields.
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// [1]: https://www.tensorflow.org/lite/convert/metadata
 | 
				
			||||||
 | 
					struct Category {
 | 
				
			||||||
 | 
					  // The index of the category in the classification model output.
 | 
				
			||||||
 | 
					  int index;
 | 
				
			||||||
 | 
					  // The score for this category, e.g. (but not necessarily) a probability in
 | 
				
			||||||
 | 
					  // [0,1].
 | 
				
			||||||
 | 
					  float score;
 | 
				
			||||||
 | 
					  // The optional ID for the category, read from the label map packed in the
 | 
				
			||||||
 | 
					  // TFLite Model Metadata if present. Not necessarily human-readable.
 | 
				
			||||||
 | 
					  char *category_name;
 | 
				
			||||||
 | 
					  // The optional human-readable name for the category, read from the label map
 | 
				
			||||||
 | 
					  // packed in the TFLite Model Metadata if present.
 | 
				
			||||||
 | 
					  char *display_name;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif  // THIRD_PARTY_MEDIAPIPE_TASKS_C_COMPONENTS_CONTAINERS_CATEGORY_H_
 | 
				
			||||||
							
								
								
									
										62
									
								
								mediapipe/dart/mediapipe/third_party/mediapipe/classification_result.h
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								mediapipe/dart/mediapipe/third_party/mediapipe/classification_result.h
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,62 @@
 | 
				
			||||||
 | 
					/* Copyright 2023 The MediaPipe Authors.
 | 
				
			||||||
 | 
					Licensed under the Apache License, Version 2.0 (the "License");
 | 
				
			||||||
 | 
					you may not use this file except in compliance with the License.
 | 
				
			||||||
 | 
					You may obtain a copy of the License at
 | 
				
			||||||
 | 
					    http://www.apache.org/licenses/LICENSE-2.0
 | 
				
			||||||
 | 
					Unless required by applicable law or agreed to in writing, software
 | 
				
			||||||
 | 
					distributed under the License is distributed on an "AS IS" BASIS,
 | 
				
			||||||
 | 
					WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
				
			||||||
 | 
					See the License for the specific language governing permissions and
 | 
				
			||||||
 | 
					limitations under the License.
 | 
				
			||||||
 | 
					==============================================================================*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef THIRD_PARTY_MEDIAPIPE_TASKS_C_COMPONENTS_CONTAINERS_CLASSIFICATION_RESULT_H_
 | 
				
			||||||
 | 
					#define THIRD_PARTY_MEDIAPIPE_TASKS_C_COMPONENTS_CONTAINERS_CLASSIFICATION_RESULT_H_
 | 
				
			||||||
 | 
					#include <stdbool.h>
 | 
				
			||||||
 | 
					#include <stdint.h>
 | 
				
			||||||
 | 
					#include "category.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Defines classification results for a given classifier head.
 | 
				
			||||||
 | 
					struct Classifications
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    // The array of predicted categories, usually sorted by descending scores,
 | 
				
			||||||
 | 
					    // e.g. from high to low probability.
 | 
				
			||||||
 | 
					    struct Category *categories;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // The number of elements in the categories array.
 | 
				
			||||||
 | 
					    uint32_t categories_count;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // The index of the classifier head (i.e. output tensor) these categories
 | 
				
			||||||
 | 
					    // refer to. This is useful for multi-head models.
 | 
				
			||||||
 | 
					    int head_index;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // The optional name of the classifier head, as provided in the TFLite Model
 | 
				
			||||||
 | 
					    // Metadata [1] if present. This is useful for multi-head models.
 | 
				
			||||||
 | 
					    //
 | 
				
			||||||
 | 
					    // [1]: https://www.tensorflow.org/lite/convert/metadata
 | 
				
			||||||
 | 
					    char *head_name;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Defines classification results of a model.
 | 
				
			||||||
 | 
					struct ClassificationResult
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    // The classification results for each head of the model.
 | 
				
			||||||
 | 
					    struct Classifications *classifications;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // The number of classifications in the classifications array.
 | 
				
			||||||
 | 
					    uint32_t classifications_count;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // The optional timestamp (in milliseconds) of the start of the chunk of data
 | 
				
			||||||
 | 
					    // corresponding to these results.
 | 
				
			||||||
 | 
					    //
 | 
				
			||||||
 | 
					    // This is only used for classification on time series (e.g. audio
 | 
				
			||||||
 | 
					    // classification). In these use cases, the amount of data to process might
 | 
				
			||||||
 | 
					    // exceed the maximum size that the model can process: to solve this, the
 | 
				
			||||||
 | 
					    // input data is split into multiple chunks starting at different timestamps.
 | 
				
			||||||
 | 
					    int64_t timestamp_ms;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Specifies whether the timestamp contains a valid value.
 | 
				
			||||||
 | 
					    bool has_timestamp_ms;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif // THIRD_PARTY_MEDIAPIPE_TASKS_C_COMPONENTS_CONTAINERS_CLASSIFICATION_RESULT_H_
 | 
				
			||||||
							
								
								
									
										48
									
								
								mediapipe/dart/mediapipe/third_party/mediapipe/classifier_options.h
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								mediapipe/dart/mediapipe/third_party/mediapipe/classifier_options.h
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,48 @@
 | 
				
			||||||
 | 
					/* Copyright 2023 The MediaPipe Authors.
 | 
				
			||||||
 | 
					Licensed under the Apache License, Version 2.0 (the "License");
 | 
				
			||||||
 | 
					you may not use this file except in compliance with the License.
 | 
				
			||||||
 | 
					You may obtain a copy of the License at
 | 
				
			||||||
 | 
					    http://www.apache.org/licenses/LICENSE-2.0
 | 
				
			||||||
 | 
					Unless required by applicable law or agreed to in writing, software
 | 
				
			||||||
 | 
					distributed under the License is distributed on an "AS IS" BASIS,
 | 
				
			||||||
 | 
					WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
				
			||||||
 | 
					See the License for the specific language governing permissions and
 | 
				
			||||||
 | 
					limitations under the License.
 | 
				
			||||||
 | 
					==============================================================================*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef THIRD_PARTY_MEDIAPIPE_TASKS_C_COMPONENTS_PROCESSORS_CLASSIFIER_OPTIONS_H_
 | 
				
			||||||
 | 
					#define THIRD_PARTY_MEDIAPIPE_TASKS_C_COMPONENTS_PROCESSORS_CLASSIFIER_OPTIONS_H_
 | 
				
			||||||
 | 
					#include <stdint.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Classifier options for MediaPipe C classification Tasks.
 | 
				
			||||||
 | 
					struct ClassifierOptions {
 | 
				
			||||||
 | 
					  // The locale to use for display names specified through the TFLite Model
 | 
				
			||||||
 | 
					  // Metadata, if any. Defaults to English.
 | 
				
			||||||
 | 
					  char *display_names_locale;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // The maximum number of top-scored classification results to return. If < 0,
 | 
				
			||||||
 | 
					  // all available results will be returned. If 0, an invalid argument error is
 | 
				
			||||||
 | 
					  // returned.
 | 
				
			||||||
 | 
					  int max_results;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // Score threshold to override the one provided in the model metadata (if
 | 
				
			||||||
 | 
					  // any). Results below this value are rejected.
 | 
				
			||||||
 | 
					  float score_threshold;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // The allowlist of category names. If non-empty, detection results whose
 | 
				
			||||||
 | 
					  // category name is not in this set will be filtered out. Duplicate or unknown
 | 
				
			||||||
 | 
					  // category names are ignored. Mutually exclusive with category_denylist.
 | 
				
			||||||
 | 
					  char **category_allowlist;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // The number of elements in the category allowlist.
 | 
				
			||||||
 | 
					  uint32_t category_allowlist_count;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // The denylist of category names. If non-empty, detection results whose
 | 
				
			||||||
 | 
					  // category name is in this set will be filtered out. Duplicate or unknown
 | 
				
			||||||
 | 
					  // category names are ignored. Mutually exclusive with category_allowlist.
 | 
				
			||||||
 | 
					  char **category_denylist;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // The number of elements in the category denylist.
 | 
				
			||||||
 | 
					  uint32_t category_denylist_count;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					#endif  // THIRD_PARTY_MEDIAPIPE_TASKS_C_COMPONENTS_PROCESSORS_CLASSIFIER_OPTIONS_H_
 | 
				
			||||||
							
								
								
									
										43
									
								
								mediapipe/dart/mediapipe/third_party/mediapipe/text_classifier.h
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								mediapipe/dart/mediapipe/third_party/mediapipe/text_classifier.h
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,43 @@
 | 
				
			||||||
 | 
					/* Copyright 2023 The MediaPipe Authors.
 | 
				
			||||||
 | 
					Licensed under the Apache License, Version 2.0 (the "License");
 | 
				
			||||||
 | 
					you may not use this file except in compliance with the License.
 | 
				
			||||||
 | 
					You may obtain a copy of the License at
 | 
				
			||||||
 | 
					    http://www.apache.org/licenses/LICENSE-2.0
 | 
				
			||||||
 | 
					Unless required by applicable law or agreed to in writing, software
 | 
				
			||||||
 | 
					distributed under the License is distributed on an "AS IS" BASIS,
 | 
				
			||||||
 | 
					WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
				
			||||||
 | 
					See the License for the specific language governing permissions and
 | 
				
			||||||
 | 
					limitations under the License.
 | 
				
			||||||
 | 
					==============================================================================*/
 | 
				
			||||||
 | 
					#ifndef THIRD_PARTY_MEDIAPIPE_TASKS_C_TEXT_TEXT_CLASSIFIER_TEXT_CLASSIFIER_H_
 | 
				
			||||||
 | 
					#define THIRD_PARTY_MEDIAPIPE_TASKS_C_TEXT_TEXT_CLASSIFIER_TEXT_CLASSIFIER_H_
 | 
				
			||||||
 | 
					#include "base_options.h"
 | 
				
			||||||
 | 
					#include "classification_result.h"
 | 
				
			||||||
 | 
					#include "classifier_options.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef struct ClassificationResult TextClassifierResult;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// The options for configuring a MediaPipe text classifier task.
 | 
				
			||||||
 | 
					struct TextClassifierOptions {
 | 
				
			||||||
 | 
					  // Base options for configuring MediaPipe Tasks, such as specifying the model
 | 
				
			||||||
 | 
					  // file with metadata, accelerator options, op resolver, etc.
 | 
				
			||||||
 | 
					  struct BaseOptions base_options;
 | 
				
			||||||
 | 
					  // Options for configuring the classifier behavior, such as score threshold,
 | 
				
			||||||
 | 
					  // number of results, etc.
 | 
				
			||||||
 | 
					  struct ClassifierOptions classifier_options;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// void *text_classifier_options_create();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Creates a TextClassifier from the provided `options`.
 | 
				
			||||||
 | 
					void *text_classifier_create(struct TextClassifierOptions *options);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Performs classification on the input `text`.
 | 
				
			||||||
 | 
					TextClassifierResult *text_classifier_classify(void *classifier,
 | 
				
			||||||
 | 
					  char *utf8_text);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Shuts down the TextClassifier when all the work is done. Frees all memory.
 | 
				
			||||||
 | 
					void text_classifier_close(void *classifier);
 | 
				
			||||||
 | 
					void text_classifier_result_close(TextClassifierResult *result);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif  // THIRD_PARTY_MEDIAPIPE_TASKS_C_TEXT_TEXT_CLASSIFIER_TEXT_CLASSIFIER_H_
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user