From b3ac1c138747fa6f4bcf86892fbf7f48af8d8229 Mon Sep 17 00:00:00 2001 From: Jiuqiang Tang Date: Thu, 10 Nov 2022 15:53:34 -0800 Subject: [PATCH] Changes to create MediaPipe Tasks Audio AAR. PiperOrigin-RevId: 487661296 --- .../com/google/mediapipe/tasks/audio/BUILD | 12 ++++- .../audioclassifier/AudioClassifier.java | 2 +- .../tasks/components/containers/BUILD | 2 +- .../mediapipe/tasks/components/utils/BUILD | 7 +++ .../com/google/mediapipe/tasks/core/BUILD | 1 + .../mediapipe/tasks/mediapipe_tasks_aar.bzl | 48 ++++++++++++++++++- 6 files changed, 66 insertions(+), 6 deletions(-) diff --git a/mediapipe/tasks/java/com/google/mediapipe/tasks/audio/BUILD b/mediapipe/tasks/java/com/google/mediapipe/tasks/audio/BUILD index c5cb6f8a3..b162d7dac 100644 --- a/mediapipe/tasks/java/com/google/mediapipe/tasks/audio/BUILD +++ b/mediapipe/tasks/java/com/google/mediapipe/tasks/audio/BUILD @@ -25,7 +25,7 @@ android_library( deps = [ ":libmediapipe_tasks_audio_jni_lib", "//mediapipe/java/com/google/mediapipe/framework:android_framework_no_mff", - "//mediapipe/tasks/java/com/google/mediapipe/tasks/components/containers:audio_data", + "//mediapipe/tasks/java/com/google/mediapipe/tasks/components/containers:audiodata", "//mediapipe/tasks/java/com/google/mediapipe/tasks/core", "@maven//:com_google_guava_guava", ], @@ -66,7 +66,7 @@ android_library( "//mediapipe/tasks/cc/audio/audio_classifier/proto:audio_classifier_graph_options_java_proto_lite", "//mediapipe/tasks/cc/components/containers/proto:classifications_java_proto_lite", "//mediapipe/tasks/cc/core/proto:base_options_java_proto_lite", - "//mediapipe/tasks/java/com/google/mediapipe/tasks/components/containers:audio_data", + "//mediapipe/tasks/java/com/google/mediapipe/tasks/components/containers:audiodata", "//mediapipe/tasks/java/com/google/mediapipe/tasks/components/containers:classificationresult", "//mediapipe/tasks/java/com/google/mediapipe/tasks/components/processors:classifieroptions", "//mediapipe/tasks/java/com/google/mediapipe/tasks/core", @@ -74,3 +74,11 @@ android_library( "@maven//:com_google_guava_guava", ], ) + +load("//mediapipe/tasks/java/com/google/mediapipe/tasks:mediapipe_tasks_aar.bzl", "mediapipe_tasks_audio_aar") + +mediapipe_tasks_audio_aar( + name = "tasks_audio", + srcs = glob(["**/*.java"]), + native_library = ":libmediapipe_tasks_audio_jni_lib", +) diff --git a/mediapipe/tasks/java/com/google/mediapipe/tasks/audio/audioclassifier/AudioClassifier.java b/mediapipe/tasks/java/com/google/mediapipe/tasks/audio/audioclassifier/AudioClassifier.java index 88b6daf0a..5a82eecaa 100644 --- a/mediapipe/tasks/java/com/google/mediapipe/tasks/audio/audioclassifier/AudioClassifier.java +++ b/mediapipe/tasks/java/com/google/mediapipe/tasks/audio/audioclassifier/AudioClassifier.java @@ -188,7 +188,7 @@ public final class AudioClassifier extends BaseAudioTaskApi { }); if (options.resultListener().isPresent()) { ResultListener resultListener = - new ResultListener<>() { + new ResultListener() { @Override public void run(AudioClassifierResult audioClassifierResult, Void input) { options.resultListener().get().run(audioClassifierResult); diff --git a/mediapipe/tasks/java/com/google/mediapipe/tasks/components/containers/BUILD b/mediapipe/tasks/java/com/google/mediapipe/tasks/components/containers/BUILD index aa835894e..d6e6ac740 100644 --- a/mediapipe/tasks/java/com/google/mediapipe/tasks/components/containers/BUILD +++ b/mediapipe/tasks/java/com/google/mediapipe/tasks/components/containers/BUILD @@ -17,7 +17,7 @@ package(default_visibility = ["//mediapipe/tasks:internal"]) licenses(["notice"]) android_library( - name = "audio_data", + name = "audiodata", srcs = ["AudioData.java"], deps = [ "//third_party:autovalue", diff --git a/mediapipe/tasks/java/com/google/mediapipe/tasks/components/utils/BUILD b/mediapipe/tasks/java/com/google/mediapipe/tasks/components/utils/BUILD index cd2bbafc8..b2d27bfa7 100644 --- a/mediapipe/tasks/java/com/google/mediapipe/tasks/components/utils/BUILD +++ b/mediapipe/tasks/java/com/google/mediapipe/tasks/components/utils/BUILD @@ -24,3 +24,10 @@ android_library( "@maven//:com_google_guava_guava", ], ) + +# Expose the java source files for building mediapipe tasks core AAR. +filegroup( + name = "java_src", + srcs = glob(["*.java"]), + visibility = ["//mediapipe/tasks/java/com/google/mediapipe/tasks/core:__subpackages__"], +) diff --git a/mediapipe/tasks/java/com/google/mediapipe/tasks/core/BUILD b/mediapipe/tasks/java/com/google/mediapipe/tasks/core/BUILD index cb9d67424..01b1f653a 100644 --- a/mediapipe/tasks/java/com/google/mediapipe/tasks/core/BUILD +++ b/mediapipe/tasks/java/com/google/mediapipe/tasks/core/BUILD @@ -44,6 +44,7 @@ mediapipe_tasks_core_aar( srcs = glob(["*.java"]) + [ "//mediapipe/tasks/java/com/google/mediapipe/tasks/components/containers:java_src", "//mediapipe/tasks/java/com/google/mediapipe/tasks/components/processors:java_src", + "//mediapipe/tasks/java/com/google/mediapipe/tasks/components/utils:java_src", "//mediapipe/java/com/google/mediapipe/framework/image:java_src", ], manifest = "AndroidManifest.xml", diff --git a/mediapipe/tasks/java/com/google/mediapipe/tasks/mediapipe_tasks_aar.bzl b/mediapipe/tasks/java/com/google/mediapipe/tasks/mediapipe_tasks_aar.bzl index 62c424f66..f0c9f81c6 100644 --- a/mediapipe/tasks/java/com/google/mediapipe/tasks/mediapipe_tasks_aar.bzl +++ b/mediapipe/tasks/java/com/google/mediapipe/tasks/mediapipe_tasks_aar.bzl @@ -30,6 +30,10 @@ _CORE_TASKS_JAVA_PROTO_LITE_TARGETS = [ "//mediapipe/tasks/cc/core/proto:external_file_java_proto_lite", ] +_AUDIO_TASKS_JAVA_PROTO_LITE_TARGETS = [ + "//mediapipe/tasks/cc/audio/audio_classifier/proto:audio_classifier_graph_options_java_proto_lite", +] + _VISION_TASKS_JAVA_PROTO_LITE_TARGETS = [ "//mediapipe/tasks/cc/vision/object_detector/proto:object_detector_options_java_proto_lite", "//mediapipe/tasks/cc/vision/image_classifier/proto:image_classifier_graph_options_java_proto_lite", @@ -62,6 +66,11 @@ def mediapipe_tasks_core_aar(name, srcs, manifest): _mediapipe_tasks_java_proto_src_extractor(target = target), ) + for target in _AUDIO_TASKS_JAVA_PROTO_LITE_TARGETS: + mediapipe_tasks_java_proto_srcs.append( + _mediapipe_tasks_java_proto_src_extractor(target = target), + ) + for target in _VISION_TASKS_JAVA_PROTO_LITE_TARGETS: mediapipe_tasks_java_proto_srcs.append( _mediapipe_tasks_java_proto_src_extractor(target = target), @@ -119,9 +128,43 @@ def mediapipe_tasks_core_aar(name, srcs, manifest): "@maven//:com_google_flogger_flogger_system_backend", "@maven//:com_google_code_findbugs_jsr305", ] + + _AUDIO_TASKS_JAVA_PROTO_LITE_TARGETS + _CORE_TASKS_JAVA_PROTO_LITE_TARGETS + - _VISION_TASKS_JAVA_PROTO_LITE_TARGETS + - _TEXT_TASKS_JAVA_PROTO_LITE_TARGETS, + _TEXT_TASKS_JAVA_PROTO_LITE_TARGETS + + _VISION_TASKS_JAVA_PROTO_LITE_TARGETS, + ) + +def mediapipe_tasks_audio_aar(name, srcs, native_library): + """Builds medaipipe tasks audio AAR. + + Args: + name: The bazel target name. + srcs: MediaPipe Audio Tasks' source files. + native_library: The native library that contains audio tasks' graph and calculators. + """ + + native.genrule( + name = name + "tasks_manifest_generator", + outs = ["AndroidManifest.xml"], + cmd = """ +cat > $(OUTS) < + + + +EOF +""", + ) + + _mediapipe_tasks_aar( + name = name, + srcs = srcs, + manifest = "AndroidManifest.xml", + java_proto_lite_targets = _CORE_TASKS_JAVA_PROTO_LITE_TARGETS + _AUDIO_TASKS_JAVA_PROTO_LITE_TARGETS, + native_library = native_library, ) def mediapipe_tasks_vision_aar(name, srcs, native_library): @@ -232,6 +275,7 @@ def _mediapipe_tasks_aar(name, srcs, manifest, java_proto_lite_targets, native_l "//mediapipe/framework/formats:landmark_java_proto_lite", "//mediapipe/framework/formats:location_data_java_proto_lite", "//mediapipe/framework/formats:rect_java_proto_lite", + "//mediapipe/tasks/java/com/google/mediapipe/tasks/components/containers:audiodata", "//mediapipe/tasks/java/com/google/mediapipe/tasks/components/containers:detection", "//mediapipe/tasks/java/com/google/mediapipe/tasks/components/containers:category", "//mediapipe/tasks/java/com/google/mediapipe/tasks/components/containers:classificationresult",