Commit Graph

1142 Commits

Author SHA1 Message Date
Jiuqiang Tang
7a4b450c50 Resolve the error "call to 'abs' is ambiguous".
PiperOrigin-RevId: 502630518
2023-01-17 10:53:14 -08:00
Jiuqiang Tang
7974171c3d Merge classificationResultList() and classificationResult() to be classificationResults(), and similar for embeddingResults().
PiperOrigin-RevId: 502601043
2023-01-17 09:06:49 -08:00
Camillo Lugaresi
c1f5920ecf Add web performance tracing to the MEDIAPIPE_PROFILING repertoire
This records the MEDIAPIPE_PROFILING tracing annotations to the browser's trace using the user timing API. See https://developer.mozilla.org/en-US/docs/Web/API/User_Timing_API

To enable, build with --define MEDIAPIPE_WEB_PROFILING=1 --define DRISHTI_PROFILING=1

PiperOrigin-RevId: 502422030
2023-01-16 12:59:18 -08:00
MediaPipe Team
ffd8486d0d Add a stub WriteProfile method to GraphProfilerStub.
PiperOrigin-RevId: 502388455
2023-01-16 08:38:05 -08:00
Prianka Liz Kariat
67735a6fd3 Added category indices in iOS failure description 2023-01-16 14:01:10 +05:30
Prianka Liz Kariat
cf945d3aeb Removed unused variable 2023-01-16 13:59:51 +05:30
Prianka Liz Kariat
a0b3e620e4 Removed unused methods 2023-01-16 13:12:27 +05:30
Prianka Liz Kariat
f7fc8a6eca Updated method names in tests 2023-01-16 13:05:29 +05:30
Prianka Liz Kariat
8ecf77f760 Updated comment style in methods 2023-01-16 13:02:33 +05:30
Prianka Liz Kariat
30533be321 Reformatted comments 2023-01-16 13:00:10 +05:30
MediaPipe Team
92a2e02ace Internal change
PiperOrigin-RevId: 501971410
2023-01-13 17:05:19 -08:00
Sebastian Schmidt
aef4cca406 Copy README.md to NPM package root
PiperOrigin-RevId: 501929871
2023-01-13 13:48:02 -08:00
Sebastian Schmidt
f997c0ab1a Reject RegionOfInterest in not supported tasks
PiperOrigin-RevId: 501872455
2023-01-13 09:53:57 -08:00
MediaPipe Team
69757d7924 Internal change
PiperOrigin-RevId: 501862194
2023-01-13 09:05:48 -08:00
Prianka Liz Kariat
95f9f0fb88 Updated formatting 2023-01-13 21:18:10 +05:30
Prianka Liz Kariat
c4c07acc1e Updated comments of MPPCommonUtils 2023-01-13 21:18:01 +05:30
Prianka Liz Kariat
2a53d78ae4 Added swift and objective tests for iOS text classifier 2023-01-13 21:05:44 +05:30
Prianka Liz Kariat
9e0b85c9b5 Added module name for iOS text classifier 2023-01-13 21:05:17 +05:30
Prianka Liz Kariat
c40356c628 Added ios.bzl 2023-01-13 21:04:56 +05:30
Prianka Liz Kariat
0a707256e3 Updates to method signatures of iOS text classifier 2023-01-13 21:04:43 +05:30
Prianka Liz Kariat
fa30100059 Changed swift name of MPPCategory 2023-01-13 21:04:17 +05:30
Prianka Liz Kariat
5642980ab0 Updated iOS error implementation to mimic java 2023-01-13 21:04:03 +05:30
Copybara-Service
4e19a5a0dc Merge pull request #3988 from priankakariatyml:ios-text-classifier-impl
PiperOrigin-RevId: 501739316
2023-01-12 20:25:02 -08:00
Jiuqiang Tang
8156da3418 ClassificationAggregationCalculator should fill in the timestamp_ms field of the classification results in the stream mode.
Per user feedback, the consistency between the packet timestamp and the timestamp field of the classification result helps reducing the confusion.

PiperOrigin-RevId: 501657922
2023-01-12 13:54:55 -08:00
MediaPipe Team
1683d572ed Internal change
PiperOrigin-RevId: 501600938
2023-01-12 10:22:00 -08:00
MediaPipe Team
74b60780c7 Internal change
PiperOrigin-RevId: 501594400
2023-01-12 10:00:44 -08:00
Jiuqiang Tang
5c74ed2ae5 EmbeddingAggregationCalculator should fill in the timestamp_ms field of the embedding results in the stream mode.
Per user feedback, the consistency between the packet timestamp and the timestamp field of the embedding result helps reducing the confusion.

PiperOrigin-RevId: 501572379
2023-01-12 08:30:07 -08:00
MediaPipe Team
9cbb76939d Adds smaller MobileBERT model.
PiperOrigin-RevId: 501451414
2023-01-11 20:35:39 -08:00
Nikolay Chirkov
8830eefa0b Internal change.
PiperOrigin-RevId: 501403332
2023-01-11 16:07:22 -08:00
MediaPipe Team
36be94f861 Internal change
PiperOrigin-RevId: 501378130
2023-01-11 14:24:00 -08:00
MediaPipe Team
5612af68cd Propagate compatible_with for drishti_proto_library
PiperOrigin-RevId: 501356895
2023-01-11 13:01:57 -08:00
MediaPipe Team
0e56bd38f3 Fix for CHECK failure due to pointer description sometimes being larger than allocated string space
PiperOrigin-RevId: 501355568
2023-01-11 12:58:37 -08:00
Prianka Liz Kariat
c7e36f8720 Re-ordered dependencies in build file 2023-01-11 20:31:46 +05:30
Prianka Liz Kariat
fe05a8d201 Reformatted code 2023-01-11 20:24:17 +05:30
Prianka Liz Kariat
b1ded2f700 Added iOS text classifier 2023-01-11 20:22:33 +05:30
Prianka Liz Kariat
a0220de233 Added iOS text classifier result helpers 2023-01-11 20:22:20 +05:30
Prianka Liz Kariat
54161cc1ab Added iOS text classifier options helpers 2023-01-11 20:22:02 +05:30
Prianka Liz Kariat
1161ebce9d Added iOS text classifier result 2023-01-11 16:22:09 +05:30
Prianka Liz Kariat
ed6abbbe43 Added iOS text classifier options 2023-01-11 16:21:28 +05:30
Nikolay Chirkov
54268594dd Internal change.
PiperOrigin-RevId: 501136760
2023-01-10 17:38:13 -08:00
Copybara-Service
e869e57cb4 Merge pull request #3975 from priankakariatyml:ios-base-options-helpers
PiperOrigin-RevId: 501073613
2023-01-10 13:07:47 -08:00
Jiuqiang Tang
25abd122b3 Support AudioRecord in MediaPipe audio tasks in Java.
PiperOrigin-RevId: 501019327
2023-01-10 09:45:40 -08:00
Copybara-Service
b747fc481b Merge pull request #3973 from priankakariatyml:ios-task-classifier-result
PiperOrigin-RevId: 501005242
2023-01-10 08:47:45 -08:00
Jiuqiang Tang
6032604f94 Hide base task api classes for MediaPipe Tasks Python from API docs
PiperOrigin-RevId: 501004802
2023-01-10 08:43:51 -08:00
Sebastian Schmidt
d7ee875356 Fix spacing issue in test name
PiperOrigin-RevId: 500833769
2023-01-09 16:20:08 -08:00
Liam Miller-Cushon
76a7c9d5d4 Internal change
PiperOrigin-RevId: 500813290
2023-01-09 14:49:45 -08:00
MediaPipe Team
704964be33 Fix accidental suppressions of GLSL linker error reporting
PiperOrigin-RevId: 500802177
2023-01-09 14:05:47 -08:00
Sebastian Schmidt
0831023114 Use uppercase enum constants for RunningMode
PiperOrigin-RevId: 500760402
2023-01-09 11:11:21 -08:00
MediaPipe Team
d40fa6b16d Internal Model Maker change.
PiperOrigin-RevId: 500758488
2023-01-09 11:04:45 -08:00
Sebastian Schmidt
73f4636292 Create README.md files to NPM packages
PiperOrigin-RevId: 500750516
2023-01-09 10:36:49 -08:00
MediaPipe Team
c6cf598774 Minor fix for max_queue_size documentation
PiperOrigin-RevId: 500738798
2023-01-09 09:54:09 -08:00
Sebastian Schmidt
2b9299959c Internal change
PiperOrigin-RevId: 500730237
2023-01-09 09:22:02 -08:00
Sebastian Schmidt
1bbe065647 Simplify default options for GestureRecognize
PiperOrigin-RevId: 500729643
2023-01-09 09:18:08 -08:00
Nikolay Chirkov
e0a254789a Internal change.
PiperOrigin-RevId: 500331015
2023-01-06 22:15:18 -08:00
Sebastian Schmidt
7f043b7de1 Allow split_vector_calculator to be build with iOS and MEDIAPIPE_DISABLE_GPU
PiperOrigin-RevId: 500327774
2023-01-06 21:45:15 -08:00
Sebastian Schmidt
c9ebc6fa60 Use synthetic timestamps in Web when none provided
PiperOrigin-RevId: 500327275
2023-01-06 21:41:30 -08:00
Sebastian Schmidt
ed0054836a Allow task to recover after a failed graph start
PiperOrigin-RevId: 500324587
2023-01-06 21:06:47 -08:00
Sebastian Schmidt
b4ede6db7b Fix typo in Category.java
PiperOrigin-RevId: 500324008
2023-01-06 21:02:16 -08:00
Sebastian Schmidt
9055effddd Add ImageProcessingOptions to all Vision Tasks
PiperOrigin-RevId: 500323261
2023-01-06 20:57:39 -08:00
Copybara-Service
e11ba95adf Merge pull request #3974 from priankakariatyml:ios-task-updates
PiperOrigin-RevId: 500323180
2023-01-06 20:53:33 -08:00
Sebastian Schmidt
9b34a105cf Do not depend on Image methods in TaskRunner
PiperOrigin-RevId: 500299571
2023-01-06 18:20:36 -08:00
MediaPipe Team
2cce88080e Internal change
PiperOrigin-RevId: 500271109
2023-01-06 15:29:19 -08:00
Prianka Liz Kariat
14e3de49ad Added MPPTextTaskRunner 2023-01-06 16:37:31 +05:30
Prianka Liz Kariat
b91b485035 Added MPPBaseOptions Helpers 2023-01-06 16:36:28 +05:30
Prianka Liz Kariat
b6bcc35ade Added provision for packets callback in iOS task runner 2023-01-06 16:36:15 +05:30
Prianka Liz Kariat
c6bae99a2f Updated formatting in MPPTextPacketCreator.mm 2023-01-06 16:25:56 +05:30
Prianka Liz Kariat
bc1b069edf Updated property name in MPPTaskResult 2023-01-06 16:24:41 +05:30
Prianka Liz Kariat
16f9831c3f Updated formatting in MPPTaskOptions.m 2023-01-06 16:23:37 +05:30
Prianka Liz Kariat
61d16b284b Updated comments in MPPTaskOptions.h 2023-01-06 16:23:22 +05:30
Prianka Liz Kariat
27ce2ec00f Updated C++ types to camel case in MPPTaskInfo 2023-01-06 16:22:11 +05:30
Prianka Liz Kariat
f37689fc33 Updated documentation for MPPCommonUtils.m 2023-01-06 16:15:53 +05:30
Prianka Liz Kariat
4e38c7e623 Updated documentation for MPPCommon.h 2023-01-06 16:15:32 +05:30
Prianka Liz Kariat
8f74a175d8 Removed MPPClassifierOptions and helpers 2023-01-06 16:08:06 +05:30
Prianka Liz Kariat
89aad67a87 Added iOS helpers for classification result containers 2023-01-06 16:07:50 +05:30
Prianka Liz Kariat
33df6c042f Added iOS result containers for classification tasks 2023-01-06 16:07:11 +05:30
Sebastian Schmidt
667fd81ddc Internal change
PiperOrigin-RevId: 499956657
2023-01-05 11:43:43 -08:00
Sebastian Schmidt
81a46bb31a Internal change
PiperOrigin-RevId: 499902323
2023-01-05 09:14:07 -08:00
Nikolay Chirkov
35293d88bc Tensor: move into tensor sub-directory.
PiperOrigin-RevId: 499896489
2023-01-05 08:56:37 -08:00
MediaPipe Team
463cbb60ee Fix RGBA vs RGB selection when creating GLTexture.
PiperOrigin-RevId: 499877590
2023-01-05 07:58:07 -08:00
MediaPipe Team
43bf02443c Option to remove overlapping values computed for different timestamps.
PiperOrigin-RevId: 499635143
2023-01-04 17:35:25 -08:00
MediaPipe Team
24cc0672c4 Internal change
PiperOrigin-RevId: 499529022
2023-01-04 10:59:35 -08:00
MediaPipe Team
e3131d7d78 Internal change
PiperOrigin-RevId: 499521620
2023-01-04 10:33:04 -08:00
Nikolay Chirkov
9a70af1464 Internal change.
PiperOrigin-RevId: 499496793
2023-01-04 08:54:29 -08:00
Nikolay Chirkov
a4ea606eac Internal change.
PiperOrigin-RevId: 499490514
2023-01-04 08:23:56 -08:00
MediaPipe Team
add5600d0d Internal change
PiperOrigin-RevId: 499351795
2023-01-03 17:20:46 -08:00
MediaPipe Team
e7dc989f71 Internal Change
PiperOrigin-RevId: 499313491
2023-01-03 14:14:21 -08:00
Copybara-Service
a7bb0aba8f Merge pull request #3937 from priankakariatyml:ios-task-files
PiperOrigin-RevId: 499296662
2023-01-03 13:04:55 -08:00
Sebastian Schmidt
75b87e0e32 Internal change
PiperOrigin-RevId: 499283559
2023-01-03 12:12:24 -08:00
Sebastian Schmidt
68f247a5c7 Internal change
PiperOrigin-RevId: 499282085
2023-01-03 12:05:43 -08:00
Sebastian Schmidt
987f4dc1ed Make addJsamineCustomFloatEqualityTest configurable
PiperOrigin-RevId: 499263931
2023-01-03 10:55:58 -08:00
MediaPipe Team
f53c0eacee Extend tag conversion behavior to also convert : (in addition to the
current `/`, `-`, and `.`) to `_`.

PiperOrigin-RevId: 499243005
2023-01-03 09:41:45 -08:00
Camillo Lugaresi
2f4bb5d545 Use utility framebuffer in ViewDoneWritingSimulatorWorkaround
This code needs a FBO to bind the texture.

Fixes invalid results when running under simulator.

PiperOrigin-RevId: 499241867
2023-01-03 09:38:19 -08:00
Sebastian Schmidt
9252a025e5 Use custom gesture options in GestureRecognizer
PiperOrigin-RevId: 498567432
2022-12-30 05:01:02 -08:00
MediaPipe Team
60c6b155f6 Save an integer id in graph profiler objects to distinguish between different profiler instances during benchmarking.
PiperOrigin-RevId: 498409363
2022-12-29 10:18:10 -08:00
MediaPipe Team
aaa16eca1f Sets the graph service packets before initializing (and validating the graph) in the objc graph wrapper.
PiperOrigin-RevId: 498393761
2022-12-29 08:36:03 -08:00
Nikolay Chirkov
2d9a969d10 Tensor1: memorize size_alignment when tracking the ahwb usage.
When CPU/GPU buffer allocated and the tracker selects Ahwb storage to be used then the properly recorded alignment must be used.

PiperOrigin-RevId: 498264759
2022-12-28 16:09:02 -08:00
Nikolay Chirkov
1924f1cdff Tensor: Fix use_ahwb_ flag and tests on local device involved.
PiperOrigin-RevId: 498249332
2022-12-28 14:29:43 -08:00
Sebastian Schmidt
9580f04571 Apply most graph options synchronously
PiperOrigin-RevId: 498244085
2022-12-28 13:58:46 -08:00
MediaPipe Team
7e36a5e2ae Set filecmp.cmp(shallow=False) in model_maker unit tests.
PiperOrigin-RevId: 498218578
2022-12-28 11:25:28 -08:00
MediaPipe Team
5a5ff5393a Internal change
PiperOrigin-RevId: 497269082
2022-12-27 10:50:41 -08:00
Hadon Nash
557cd050f3 Deprecating RealTimeFlowLimiterCalculator in favor of FlowLimiterCalculator.
PiperOrigin-RevId: 497260577
2022-12-22 16:29:14 -08:00
MediaPipe Team
5a71b551e5 Remove duplicate and non-public api for model_maker
PiperOrigin-RevId: 497251246
2022-12-22 15:31:12 -08:00
MediaPipe Team
36f054dfbe Internal model maker change
PiperOrigin-RevId: 497196512
2022-12-22 10:43:15 -08:00
MediaPipe Team
5b90afda70 Internal change
PiperOrigin-RevId: 497191969
2022-12-22 10:23:34 -08:00
MediaPipe Team
9673841605 Internal visibility update
PiperOrigin-RevId: 497185157
2022-12-22 09:51:52 -08:00
Prianka Liz Kariat
48eeae4d9d Formatted code 2022-12-22 12:16:43 +05:30
Prianka Liz Kariat
613ed58890 Inverted condition check in MPPTaskInfo 2022-12-22 12:16:33 +05:30
Prianka Liz Kariat
e47256ae55 Clearing proto before assigining new values in MPPClassifierOptions Helpers 2022-12-22 12:10:23 +05:30
MediaPipe Team
69b6d9d970 Internal change
PiperOrigin-RevId: 497043596
2022-12-21 17:44:36 -08:00
Prianka Liz Kariat
e559613b9d Updated comments in MPPClassifierOptions.h 2022-12-22 02:02:48 +05:30
Prianka Liz Kariat
b4a7644428 Updated comments 2022-12-22 02:01:04 +05:30
Prianka Liz Kariat
20c3388ab6 Updated category allowlist and denylist names 2022-12-22 01:59:38 +05:30
Prianka Liz Kariat
c185dc9ad7 Renamed label to category in classifier options 2022-12-22 01:19:01 +05:30
Prianka Liz Kariat
e1dfcf03cf Updated comments in MPPClassifierOptions.h 2022-12-22 01:12:34 +05:30
Prianka Liz Kariat
66ee8d47c0 Resorted options 2022-12-22 01:10:07 +05:30
Prianka Liz Kariat
673b38dfe8 Updated comments 2022-12-22 01:08:13 +05:30
Prianka Liz Kariat
54d36dfeda Update MPPClassifierOptions.h 2022-12-22 01:05:50 +05:30
Prianka Liz Kariat
7ae4b7e639 Updated error domain 2022-12-22 01:05:01 +05:30
Prianka Liz Kariat
99c11ff974 Updated comments 2022-12-22 01:03:39 +05:30
Prianka Liz Kariat
1de3694175 Updated comments 2022-12-22 01:02:07 +05:30
Prianka Liz Kariat
1491b3f5a2 Updated comments 2022-12-22 01:00:36 +05:30
Prianka Liz Kariat
20f2e136c5 Updated empty spaces 2022-12-22 00:59:22 +05:30
Prianka Liz Kariat
2943d1668e Updated comments 2022-12-22 00:51:20 +05:30
Prianka Liz Kariat
481f4e960e Updated comments 2022-12-22 00:49:44 +05:30
Prianka Liz Kariat
ae28948ca1 Marked designated initializers 2022-12-22 00:49:24 +05:30
Jiuqiang Tang
714a6e555b Enable creating mediapipe image c++ packet directly from an Android media image object when its format is RGBA_8888.
PiperOrigin-RevId: 496923491
2022-12-21 08:07:53 -08:00
MediaPipe Team
1341720d6d Internal change
PiperOrigin-RevId: 496854337
2022-12-21 00:55:32 -08:00
MediaPipe Team
5c0f548f5f Switches to tf.keras.optimizers.experimental.AdamW instead of the legacy AdamW.
PiperOrigin-RevId: 496821354
2022-12-20 20:53:13 -08:00
Jiuqiang Tang
151e447614 Internal changes
PiperOrigin-RevId: 496793199
2022-12-20 17:52:17 -08:00
MediaPipe Team
64406a9bf2 Internal change
PiperOrigin-RevId: 496781536
2022-12-20 16:41:49 -08:00
Sebastian Schmidt
d2f738793c Use uppercase options name for "delegate"
PiperOrigin-RevId: 496764089
2022-12-20 15:18:17 -08:00
MediaPipe Team
a7b52d2c52 Internal changes
PiperOrigin-RevId: 496754449
2022-12-20 14:37:18 -08:00
Prianka Liz Kariat
ff901a80a5 Added targets in core 2022-12-21 01:24:11 +05:30
Prianka Liz Kariat
4fedea60a9 Added text packet creator 2022-12-21 01:24:02 +05:30
Prianka Liz Kariat
e9fc3713f0 Added iOS task runner 2022-12-21 01:23:51 +05:30
Prianka Liz Kariat
64cf5e9b4e Added iOS task options protocol 2022-12-21 01:23:41 +05:30
Prianka Liz Kariat
6d02108bf5 Added task info 2022-12-21 01:23:29 +05:30
Prianka Liz Kariat
c56ef735d7 Added classifier options helpers 2022-12-21 01:22:57 +05:30
Prianka Liz Kariat
03bfbca539 Added classifier options 2022-12-21 01:22:44 +05:30
Prianka Liz Kariat
e997a19289 Added common utils and string helpers 2022-12-21 01:22:32 +05:30
MediaPipe Team
e405c2b67d Internal change
PiperOrigin-RevId: 496702117
2022-12-20 11:04:42 -08:00
MediaPipe Team
8c013647c8 Internal change
PiperOrigin-RevId: 496629682
2022-12-20 04:49:15 -08:00
MediaPipe Team
4682416f0f Internal change
PiperOrigin-RevId: 496568835
2022-12-19 22:10:15 -08:00
Jiuqiang Tang
9067804005 Fix the missing logging component issue of mediapipe tasks core.
PiperOrigin-RevId: 496548340
2022-12-19 19:41:11 -08:00
MediaPipe Team
994eb28d2c Chain SetName calls where possible
PiperOrigin-RevId: 496534328
2022-12-19 18:07:38 -08:00
MediaPipe Team
f5f2fee0b9 Switch to Cast where possible and reduce usage of operator[](port).
PiperOrigin-RevId: 496527250
2022-12-19 17:22:36 -08:00
MediaPipe Team
6842f2c7c6 Use the proper namespace for builder test
PiperOrigin-RevId: 496526588
2022-12-19 17:14:14 -08:00
MediaPipe Team
ea0bebc226 Add BGR -> RGB color conversion to ColorConvertCalculator.
PiperOrigin-RevId: 496497002
2022-12-19 14:51:05 -08:00
Nikolay Chirkov
ef3fa67bf4 Automatic selection of the tensor's storage type by recording previously requested views.
PiperOrigin-RevId: 496466136
2022-12-19 12:37:50 -08:00
MediaPipe Team
3e6cd5d2bf Add support for customizing gesture recognizer layers
PiperOrigin-RevId: 496456160
2022-12-19 11:57:09 -08:00
Sebastian Schmidt
4822476974 Internal change
PiperOrigin-RevId: 496443946
2022-12-19 11:07:09 -08:00
Jiuqiang Tang
7ce4bb72d4 Replace numpy.float with the builtin float type as numpy removes its own float type in v1.24.
PiperOrigin-RevId: 496412858
2022-12-19 09:02:51 -08:00
MediaPipe Team
b45554623a Fix typo in GetVectorItemCalculator doc
PiperOrigin-RevId: 495951016
2022-12-16 13:42:50 -08:00
Copybara-Service
a864f4e9b3 Merge pull request #3927 from priankakariatyml:ios-options
PiperOrigin-RevId: 495898311
2022-12-16 09:59:10 -08:00
Nikolay Chirkov
d5562241cc Tensor: Interoperability GPU/Cpu -> Ahwb by transforming the underlying storage into Ahwb with releasing previously Cpu/Gpu resources.
PiperOrigin-RevId: 495748104
2022-12-15 18:34:27 -08:00
MediaPipe Team
0a1f050f1f Internal change
PiperOrigin-RevId: 495741383
2022-12-15 17:52:43 -08:00
Jiuqiang Tang
6bf5648430 Fix the documentation of the constructor of Image and ImageFrame Python classes.
PiperOrigin-RevId: 495739875
2022-12-15 17:42:23 -08:00
Mark McDonald
8d2473c751 Update Image docs to improve rendering.
The [API docs](https://developers.google.com/mediapipe/api/solutions/python/mp/Image) have a few rendering issues. e.g., the doc generator will turn
```
This block:
  Anything here
```
Into a table with heading `This block` and `Anything here` as a plain-text cell.

In order to render code as code, it needs to be in backticks. They can also be in `>>> code()` format, and we can try to run them ([doctests](https://docs.python.org/3/library/doctest.html)).

I'll have a dashboard ready soon that shows areas we can improve.

PiperOrigin-RevId: 495715576
2022-12-15 15:43:36 -08:00
Jiuqiang Tang
fd50b6aa2f Add a new python unit test to test creating mediapipe Image from cvmat.
PiperOrigin-RevId: 495655719
2022-12-15 11:54:51 -08:00
Jiuqiang Tang
299aa03302 Internal change
PiperOrigin-RevId: 495613573
2022-12-15 09:24:31 -08:00
Prianka Liz Kariat
5ab17fe686 Removed convenience initializer 2022-12-15 10:28:50 +05:30
Prianka Liz Kariat
163b13d7de Updated comments 2022-12-15 10:23:27 +05:30
Prianka Liz Kariat
9ab0107584 Added new line 2022-12-15 10:21:22 +05:30
Prianka Liz Kariat
fe7fbc0b38 Fixed comment 2022-12-15 10:21:14 +05:30
Prianka Liz Kariat
bf91c52407 Fixed typos 2022-12-15 10:21:07 +05:30
Nikolay Chirkov
d526b20e19 Internal change.
PiperOrigin-RevId: 495483878
2022-12-14 19:54:33 -08:00
MediaPipe Team
e9e173f9fa Internal change
PiperOrigin-RevId: 495468694
2022-12-14 18:14:55 -08:00
Jiuqiang Tang
174f2869a3 Internal changes
PiperOrigin-RevId: 495322170
2022-12-14 08:33:45 -08:00
Prianka Liz Kariat
c0fed7df31 Added target for task result 2022-12-14 19:15:01 +05:30
Prianka Liz Kariat
0aedff0659 Added target for task options 2022-12-14 19:14:49 +05:30
Prianka Liz Kariat
22bb87d9e0 Added iOS task result 2022-12-14 19:14:11 +05:30
Prianka Liz Kariat
e9fb6c28f5 Added task options 2022-12-14 19:14:02 +05:30
Prianka Liz Kariat
7efb3bcf81 Added iOS task error codes 2022-12-14 19:13:41 +05:30
Camillo Lugaresi
db6ea38cf6 Internal change
PiperOrigin-RevId: 495236576
2022-12-14 00:40:01 -08:00
Camillo Lugaresi
6fa0a58529 Internal change
PiperOrigin-RevId: 495235951
2022-12-14 00:36:16 -08:00
Hadon Nash
b9d020cb7d Internal change
PiperOrigin-RevId: 495163109
2022-12-13 17:00:08 -08:00
MediaPipe Team
904a537b02 Internal change
PiperOrigin-RevId: 495151410
2022-12-13 16:11:10 -08:00
MediaPipe Team
d5ff060bfa Internal change
PiperOrigin-RevId: 495149484
2022-12-13 16:04:00 -08:00
Copybara-Service
ea0bd77dbf Merge pull request #3911 from priankakariatyml:ios-base-options
PiperOrigin-RevId: 495119958
2022-12-13 14:02:07 -08:00
Hadon Nash
db404b1a85 Internal change
PiperOrigin-RevId: 495058817
2022-12-13 10:23:51 -08:00
Jiuqiang Tang
78597c5b37 Internal changes.
PiperOrigin-RevId: 495038477
2022-12-13 09:08:15 -08:00
Sebastian Schmidt
fb21797611 Internal change
PiperOrigin-RevId: 494914168
2022-12-12 21:30:31 -08:00
Hadon Nash
421f789ede Internal change
PiperOrigin-RevId: 494420725
2022-12-10 12:33:53 -08:00
Sebastian Schmidt
e9bb51a524 Internal change
PiperOrigin-RevId: 494314595
2022-12-09 19:22:06 -08:00
Sebastian Schmidt
69c3c4c181 Internal change
PiperOrigin-RevId: 494305195
2022-12-09 18:10:45 -08:00
Jiuqiang Tang
453d67de92 Add MergeDetectionsToVectorCalculator.
PiperOrigin-RevId: 494246359
2022-12-09 13:12:57 -08:00
Nikolay Chirkov
db3cb68d91 Internal change.
PiperOrigin-RevId: 494166776
2022-12-09 07:29:01 -08:00
MediaPipe Team
5bc1baf96a Internal change
PiperOrigin-RevId: 494150467
2022-12-09 05:57:12 -08:00
MediaPipe Team
4c4df2cf18 Internal change for profiling
PiperOrigin-RevId: 494135244
2022-12-09 04:13:02 -08:00
MediaPipe Team
3aeec84ac0 Internal change for profiling
PiperOrigin-RevId: 494126771
2022-12-09 03:21:10 -08:00
Nikolay Chirkov
bea0caae65 Tensor: Cpu -> Ahwb storage transfer
PiperOrigin-RevId: 494033280
2022-12-08 17:06:56 -08:00
Sebastian Schmidt
05535db5f7 Fix assertion failure in Hair Segmentation demo
PiperOrigin-RevId: 494004801
2022-12-08 15:03:39 -08:00
MediaPipe Team
b4e1969e43 Add pip package builder for model_maker
PiperOrigin-RevId: 493989013
2022-12-08 14:03:15 -08:00
Nikolay Chirkov
0fbaa8dc8a Internal change.
PiperOrigin-RevId: 493973435
2022-12-08 13:01:52 -08:00
MediaPipe Team
a641ea12e1 Update gesture recognizer to new mediapipe tasks pipeline
PiperOrigin-RevId: 493950564
2022-12-08 11:32:42 -08:00
Jiuqiang Tang
13f8fa5139 Retire the visibility group "//mediapipe/framework:mediapipe_internal" in the "mediapipe/calculators/tensor" dir.
PiperOrigin-RevId: 493895834
2022-12-08 08:03:47 -08:00
Prianka Liz Kariat
66dbd9969a Updated license text 2022-12-08 10:25:01 +05:30
Prianka Liz Kariat
d1820320b1 Added base options 2022-12-08 10:23:53 +05:30
Sebastian Schmidt
9ae2e43b70 Open Source the remaining MediaPipe Tasks tests for Web
PiperOrigin-RevId: 493769657
2022-12-07 19:19:27 -08:00
Adam Cozzette
24c8fa97e9 Internal change
PiperOrigin-RevId: 493768013
2022-12-07 19:06:00 -08:00
MediaPipe Team
700c7b4b22 Internal refactoring for TextEmbedder.
PiperOrigin-RevId: 493766612
2022-12-07 18:56:27 -08:00
MediaPipe Team
a0efcb47f2 internal change
PiperOrigin-RevId: 493742399
2022-12-07 16:38:42 -08:00
MediaPipe Team
a59f0a9924 Make java/C++/python tasks API public visible.
PiperOrigin-RevId: 493730506
2022-12-07 15:51:04 -08:00
MediaPipe Team
91664eb254 Object Detector deduplication
PiperOrigin-RevId: 493716159
2022-12-07 14:54:30 -08:00
Jiuqiang Tang
ef1507ed5d Retire the visibility group "//mediapipe/framework:mediapipe_internal".
PiperOrigin-RevId: 493713823
2022-12-07 14:45:49 -08:00
Nikolay Chirkov
7faee517c4 Tensor: Move general CPU/SSBO tensor storage into Ahwb-backed CPU/SSBO storage.
PiperOrigin-RevId: 493710495
2022-12-07 14:32:42 -08:00
Nikolay Chirkov
ea74db86dd Tensor: clang tidy fixes.
PiperOrigin-RevId: 493703073
2022-12-07 14:06:29 -08:00
Jiuqiang Tang
955f090f9f Retire the visibility group "//mediapipe/framework:mediapipe_internal".
PiperOrigin-RevId: 493687025
2022-12-07 13:08:33 -08:00
Sebastian Schmidt
2811e0c5c8 Open Source the first set of MediaPipe Tasks tests for Web
PiperOrigin-RevId: 493673279
2022-12-07 12:15:34 -08:00
Jiuqiang Tang
3c0ddf16b4 Fix an incorrect model sanity check in the object detector graph.
PiperOrigin-RevId: 493663592
2022-12-07 11:38:54 -08:00
Jiuqiang Tang
80c605459c Open up framework visibility.
PiperOrigin-RevId: 493660013
2022-12-07 11:26:16 -08:00
Sebastian Schmidt
d84eec387b Add missing import to InferenceCalculator.proto
PiperOrigin-RevId: 493649869
2022-12-07 10:52:17 -08:00
Khanh LeViet
d9688b769f Hide internal APIs from mediapipe pip package's API docs.
PiperOrigin-RevId: 493607984
2022-12-07 08:15:25 -08:00
Nikolay Chirkov
aad797197b TensorV1 EGL.h include fix.
PiperOrigin-RevId: 493596083
2022-12-07 07:16:59 -08:00
Camillo Lugaresi
523d16dffa Make GpuBuffer a shared_ptr to a storage collection
PiperOrigin-RevId: 493519590
2022-12-06 23:56:19 -08:00
Sebastian Schmidt
1167f61f98 Remove generic Options template argument from TaskRunner
PiperOrigin-RevId: 493462947
2022-12-06 18:04:31 -08:00
MediaPipe Team
576c6da173 Internal change
PiperOrigin-RevId: 493427500
2022-12-06 15:24:32 -08:00
Sebastian Schmidt
fca0f5806b Create Build Rules for Apple Frameworks
PiperOrigin-RevId: 493426040
2022-12-06 15:18:45 -08:00
Sebastian Schmidt
0f32072804 Move ISSUE_TEMPLATAE files to .github folder
PiperOrigin-RevId: 493405734
2022-12-06 14:03:26 -08:00
Khanh LeViet
cdc14522e2 Added issue templates for MP Preview.
PiperOrigin-RevId: 493389856
2022-12-06 13:03:10 -08:00
Jiuqiang Tang
6deef1a5f1 Allow specifying tag_suffix in the templated CreateModelResources method.
PiperOrigin-RevId: 493375701
2022-12-06 12:10:06 -08:00
Jiuqiang Tang
c6e6f9e0b9 Fix aar breakage caused by missing "//mediapipe/tasks/cc/vision/image_segmenter/proto:segmenter_options_java_proto_lite".
PiperOrigin-RevId: 493357585
2022-12-06 11:08:01 -08:00
Sebastian Schmidt
ab0b0ab558 Change visibility for MP Tasks Web to public
PiperOrigin-RevId: 493343996
2022-12-06 10:26:16 -08:00
Jiuqiang Tang
fb0b96115f Open up mediapipe core calculators' visibility.
PiperOrigin-RevId: 493314353
2022-12-06 08:40:57 -08:00
Camillo Lugaresi
b0b38a0013 Internal change
PiperOrigin-RevId: 493313240
2022-12-06 08:31:46 -08:00
Jiuqiang Tang
1761cdcef4 Fix aar breakage caused by missing "//mediapipe/tasks/java/com/google/mediapipe/tasks/components/containers:normalized_landmark".
PiperOrigin-RevId: 493204770
2022-12-05 22:16:46 -08:00
MediaPipe Team
af43687f2e Open-sources a unit test.
PiperOrigin-RevId: 493184055
2022-12-05 20:11:07 -08:00
MediaPipe Team
3174b20fbe Move segmentation calculator and options out of 'components' folder.
PiperOrigin-RevId: 493157929
2022-12-05 17:37:49 -08:00
Jiuqiang Tang
1e76d47a71 Checks if a custom global resource provider is used as the first step of loading the model resources on all platforms.
PiperOrigin-RevId: 493141519
2022-12-05 16:20:20 -08:00
MediaPipe Team
3ad03bee0b Adds missing visibility rule.
PiperOrigin-RevId: 493118880
2022-12-05 14:50:35 -08:00
MediaPipe Team
69b27b246a Adds a public function for creating TaskRunner instances.
PiperOrigin-RevId: 493109736
2022-12-05 14:18:17 -08:00
Adam Cozzette
4f8eaee20f Internal change
PiperOrigin-RevId: 493065632
2022-12-05 11:35:33 -08:00
MediaPipe Team
35bb18945f Better handling of empty packets in vector calculators.
PiperOrigin-RevId: 493000695
2022-12-05 07:25:14 -08:00
Sebastian Schmidt
e457039fc6 Don't inherit from GraphRunner
PiperOrigin-RevId: 492584486
2022-12-02 16:20:19 -08:00
Sebastian Schmidt
da9587033d Move shared code to TaskRunner
PiperOrigin-RevId: 492534879
2022-12-02 12:42:45 -08:00
Sebastian Schmidt
dabc2af15b Fix base bath loading in Fileset resolver
PiperOrigin-RevId: 492526041
2022-12-02 12:06:48 -08:00
MediaPipe Team
768d2dc548 Separate web and java api landmark and world landmark to two classes. This makes the platforms interface consistent.
PiperOrigin-RevId: 492332990
2022-12-01 16:49:47 -08:00
Jiuqiang Tang
ead41132a8 Load model file content from model file path with the help of GetResourceContents in browsers.
This can handle the model files that are provided via a custom ResourceProviderFn.

PiperOrigin-RevId: 492308453
2022-12-01 15:03:57 -08:00
Jiuqiang Tang
af990c3da1 Open up the visibility of "//mediapipe/java/com/google/mediapipe/framework/image:image".
PiperOrigin-RevId: 492308109
2022-12-01 15:00:25 -08:00
Khanh LeViet
fd79f18aeb Make BaseOptions to pass absolute path to C++ layer.
PiperOrigin-RevId: 492296573
2022-12-01 14:14:51 -08:00
Camillo Lugaresi
40eb0e6385 Internal change
PiperOrigin-RevId: 492276913
2022-12-01 12:59:41 -08:00
Hadon Nash
1e2cb2b359 Internal change
PiperOrigin-RevId: 492253867
2022-12-01 11:34:55 -08:00
MediaPipe Team
02aa162c9e Rename gesture_recognizer test_data to testdata to be consistent with rest of model_maker
PiperOrigin-RevId: 492246728
2022-12-01 11:13:19 -08:00
Sebastian Schmidt
e685ac9344 Re-use classifier options for ObjectDetector
PiperOrigin-RevId: 492206856
2022-12-01 08:48:09 -08:00
Jiuqiang Tang
3ee37800e2 Depending on "inference_calculator_cpu" when the mediapipe tasks can only support cpu inference.
PiperOrigin-RevId: 492205954
2022-12-01 08:43:30 -08:00
Jiuqiang Tang
e7eee27c1c Remove the deleted library "mediapipe/tasks/java/com/google/mediapipe/tasks/components/processors:embedderoptions" from mediapipe_tasks_aar's android_library deps list.
PiperOrigin-RevId: 492200061
2022-12-01 08:17:12 -08:00
Sebastian Schmidt
a430939fe4 Document RunningMode
PiperOrigin-RevId: 492193299
2022-12-01 07:45:12 -08:00
MediaPipe Team
01010fa248 Internal change
PiperOrigin-RevId: 492188196
2022-12-01 07:17:19 -08:00
MediaPipe Team
29c7702984 Inline formerly nested 'ClassifierOptions' in Java classifier APIs.
PiperOrigin-RevId: 492173060
2022-12-01 05:52:15 -08:00
Jiuqiang Tang
460aee7933 Make mediapipe_tasks_aar's android_library depend on "//third_party:androidx_annotation".
PiperOrigin-RevId: 492092487
2022-11-30 20:45:02 -08:00
Camillo Lugaresi
fcd2d2c5af Internal change
PiperOrigin-RevId: 491733850
2022-11-29 14:14:37 -08:00
Michael Hays
88173948ee Internal change
PiperOrigin-RevId: 491724816
2022-11-29 13:39:35 -08:00
Sebastian Schmidt
09740130e8 Use naturalWidth and naturalHeight for image data
PiperOrigin-RevId: 491694147
2022-11-29 11:35:03 -08:00
Jiuqiang Tang
c8a413bb4e Open up mediapipe framework's visibility.
PiperOrigin-RevId: 491672877
2022-11-29 10:19:44 -08:00
Camillo Lugaresi
cc11b45228 Remove unneeded GPU_SHARED side packet for GlSurfaceSink
PiperOrigin-RevId: 491487092
2022-11-28 17:55:30 -08:00
Camillo Lugaresi
fc526374ab Use GpuResources in GpuTestBase and update GpuBufferMultiPoolTest
PiperOrigin-RevId: 491486495
2022-11-28 17:51:03 -08:00
MediaPipe Team
e987b69f39 Add alternative method to determine unique kernel cache path
PiperOrigin-RevId: 491476293
2022-11-28 16:52:16 -08:00
MediaPipe Team
7b74fd53f5 Verify that kernel cache is only used when OpenCL is active
PiperOrigin-RevId: 491463306
2022-11-28 15:47:55 -08:00
MediaPipe Team
26a7ca5c64 fix typo and minor formatting issues
PiperOrigin-RevId: 491453662
2022-11-28 15:05:28 -08:00
MediaPipe Team
b65c40b302 Internal change
PiperOrigin-RevId: 491441446
2022-11-28 14:17:23 -08:00
Sebastian Schmidt
342f95fa20 Typo fix
PiperOrigin-RevId: 491434987
2022-11-28 13:54:09 -08:00
MediaPipe Team
c48ca1f674 internal change
PiperOrigin-RevId: 491429214
2022-11-28 13:33:57 -08:00
Sebastian Schmidt
153edc59a1 Add support for browsers without SIMD
PiperOrigin-RevId: 491371277
2022-11-28 09:54:22 -08:00
MediaPipe Team
395d9d8ea2 Instantiate GetDetectionVectorItemCalculator variant of GetVectorItemCalculator<>.
PiperOrigin-RevId: 491123314
2022-11-27 00:07:10 -08:00
Camillo Lugaresi
0bdb48ceb1 Use kUtilityFramebuffer in GlCalculatorHelper
All calculators using the same context can share a single framebuffer object.

PiperOrigin-RevId: 490605074
2022-11-23 16:19:31 -08:00
MediaPipe Team
41a7f9d7d6 Internal change
PiperOrigin-RevId: 490595529
2022-11-23 15:24:50 -08:00
MediaPipe Team
bfa57310c4 Move TextPreprocessing to "processors" folder.
PiperOrigin-RevId: 490532670
2022-11-23 10:19:45 -08:00
Camillo Lugaresi
54d1744c8f Remove DrishtiGraphGPUData, add MetalSharedResources
This class is unused except by the Metal helper; let's narrow it down and simplify gpu_shared_data.

PiperOrigin-RevId: 490531767
2022-11-23 10:15:17 -08:00
Camillo Lugaresi
3c53ec2cdb Do not expose DrishtiGraphGPUData.h in public header
This class is an implementation detail.

PiperOrigin-RevId: 490530823
2022-11-23 10:11:32 -08:00
MediaPipe Team
b5189758f7 Move ImagePreprocessing to "processors" folder.
PiperOrigin-RevId: 490444821
2022-11-23 02:08:37 -08:00
Sebastian Schmidt
c5ce523697 Add cosine APIs to Embedder tasks
PiperOrigin-RevId: 490444597
2022-11-23 02:04:44 -08:00
Sebastian Schmidt
05681fc0e1 Internal
PiperOrigin-RevId: 490439195
2022-11-23 01:29:37 -08:00
Camillo Lugaresi
a55839de51 This storage only needs a "done writing" callback on simulator, so only set it there
- When not on simulator, we pass nullptr instead of a do-nothing callback.
- The callback is no longer a method, but a function. Only the CVPixelBuffer is captured.

PiperOrigin-RevId: 490380248
2022-11-22 18:09:09 -08:00
Sebastian Schmidt
3bbc0e9af9 Internal change
PiperOrigin-RevId: 490375672
2022-11-22 17:39:54 -08:00
MediaPipe Team
837225c53d Internal change
PiperOrigin-RevId: 490374976
2022-11-22 17:36:15 -08:00
Camillo Lugaresi
8ba9d87e66 Update ImageFrameToGpuBufferCalculator to use api2 and GpuBuffer conversions
PiperOrigin-RevId: 490374387
2022-11-22 17:32:33 -08:00
MediaPipe Team
fac97554df Small TS audio API improvement
PiperOrigin-RevId: 490374083
2022-11-22 17:27:47 -08:00
Camillo Lugaresi
efa9e737f8 Use current context if available in ConvertToImageFrame
If we're already running in a GlContext, there's no need to go back to the producer context, which may be different.

PiperOrigin-RevId: 490373829
2022-11-22 17:24:03 -08:00
MediaPipe Team
7ce4aa6592 Internal change
PiperOrigin-RevId: 490366250
2022-11-22 16:40:38 -08:00
Camillo Lugaresi
515d00fc22 Internal change
PiperOrigin-RevId: 490349260
2022-11-22 15:18:21 -08:00
vrabaud
872d1afda7 Internal change
PiperOrigin-RevId: 490196129
2022-11-22 03:12:38 -08:00
Camillo Lugaresi
d648926155 Just reset the fb binding to 0 in ReadTexture
This saves a get operation. We already have precedent in lots of other MediaPipe code where we just reset bindings to 0.

PiperOrigin-RevId: 490170691
2022-11-22 00:36:54 -08:00
Camillo Lugaresi
bacbac8d92 Use kUtilityFramebuffer in ReadTexture
This avoids creating a temporary framebuffer each time.

PiperOrigin-RevId: 490163892
2022-11-21 23:59:44 -08:00
Camillo Lugaresi
a8b7761022 Define a kUtilityFramebuffer context attachment
A framebuffer object is often needed to render to a texture or read data from it. Currently we create one in each GlCalculatorHelper, but that is redundant (we only need one per context, and multiple calculators can share the same context). Other times, the code that needs to use this doesn't own a helper. For both reasons, this should be attached to the context.

We could just make this a member of GlContext since it's so common. However, I figured we might as well use the attachment system.

PiperOrigin-RevId: 490160214
2022-11-21 23:29:27 -08:00
Camillo Lugaresi
54a684717f Internal change
PiperOrigin-RevId: 490159674
2022-11-21 23:24:16 -08:00
MediaPipe Team
d43d0ff615 Internal change
PiperOrigin-RevId: 490089940
2022-11-21 15:47:45 -08:00
MediaPipe Team
adddf2c2ab Extracted common test helper functions out from the unittest into a sharable
library. Also migrated away from OpenCVX.

PiperOrigin-RevId: 490074410
2022-11-21 14:39:56 -08:00
MediaPipe Team
652423a23d Internal change
PiperOrigin-RevId: 490053179
2022-11-21 13:06:47 -08:00
MediaPipe Team
7f0134eecb Internal change
PiperOrigin-RevId: 490041386
2022-11-21 12:16:00 -08:00
MediaPipe Team
7acbf557a1 Cleanup after migration to new classification output format.
PiperOrigin-RevId: 489921603
2022-11-21 01:57:05 -08:00
MediaPipe Team
13c6b9a8c6 Allow kernel cache path to be specified without trailing path delimiter
PiperOrigin-RevId: 489891079
2022-11-20 22:20:18 -08:00
Camillo Lugaresi
3ac7f6a216 Simplify image creation in PacketCreator
Use more existing functions, remove redundant code, remove direct use of RuntimeException.

PiperOrigin-RevId: 489868983
2022-11-20 19:32:21 -08:00
MediaPipe Team
6cf464636b Internal change
PiperOrigin-RevId: 489842199
2022-11-20 14:26:22 -08:00
Scott Zhu
a367753eda Internal change
PiperOrigin-RevId: 489824381
2022-11-20 10:41:20 -08:00
MediaPipe Team
bdf4078e89 Internal change
PiperOrigin-RevId: 489752009
2022-11-19 21:14:24 -08:00
Camillo Lugaresi
a33cb1e05e Check that Java buffer supports direct access before using it
If the buffer is not created with allocateDirect, JNI APIs will return a data pointer of nullptr and a capacity of -1. This can cause a crash when we access it.

Also clean up the code to raise exceptions instead of just logging errors and returning nullptr.

PiperOrigin-RevId: 489751312
2022-11-19 21:04:48 -08:00
MediaPipe Team
977ee4272e Add public visibility to the model maker public API.
PiperOrigin-RevId: 489701768
2022-11-19 10:53:21 -08:00
Sebastian Schmidt
bbcbd5fc6c Audio Embedder for Web
PiperOrigin-RevId: 489669966
2022-11-19 04:49:24 -08:00
Sebastian Schmidt
e853f04b79 Create AudioTaskRunner
PiperOrigin-RevId: 489613573
2022-11-18 19:55:08 -08:00
Camillo Lugaresi
eb8ef1ace0 Use shared_from_this in GlTextureBuffer::GetReadView, GetWriteView
This ensures that the callbacks in GlTextureView won't call an expired object, even if user code holds a GlTextureView after releasing the buffer.

Note that GlTextureBuffer is not always held by a shared_ptr, but it always is when GpuBuffer calls GetRead/WriteView on it. An alternative solution would have been to have GpuBuffer pass its shared_ptr<GlTextureBuffer> to the view method, which could have been implemented with some compile-time logic to detect whether the method expects such an argument. However, that doesn't seem necessary.

PiperOrigin-RevId: 489611843
2022-11-18 19:42:34 -08:00