From dd4c50eccdf297da895b00aeae0145d60173ec0b Mon Sep 17 00:00:00 2001 From: Junrou Nishida Date: Mon, 17 Jul 2023 20:39:45 +0900 Subject: [PATCH] refactor!: remove StatusOr API (#958) * feat: implement BadStatusException * refactor!: Status.AssertOk throws BadStatusException * refactor!: remove StatusOrPoller API * refactor!: remove StatusOrGpuBuffer API * refactor!: remove StatusOrString API * refactor!: remove StatusOrGpuResources API * refactor!: remove StatusOrImageFrame API * refactor: remove unused functions * refactor!: remove StatusOr API --- .../Face Detection/FaceDetectionGraph.cs | 2 +- .../Samples/Scenes/Face Mesh/FaceMeshGraph.cs | 8 +- .../HairSegmentationGraph.cs | 2 +- .../Scenes/Hand Tracking/HandTrackingGraph.cs | 12 +-- .../Scenes/Holistic/HolisticTrackingGraph.cs | 16 ++-- .../Scenes/Iris Tracking/IrisTrackingGraph.cs | 6 +- .../MediaPipe Video/MediaPipeVideoGraph.cs | 2 +- .../Object Detection/ObjectDetectionGraph.cs | 2 +- .../Scenes/Pose Tracking/PoseTrackingGraph.cs | 10 +-- .../SelfieSegmentationGraph.cs | 2 +- .../Scripts/Core/BadStatusException.cs | 21 +++++ .../BadStatusException.cs.meta} | 2 +- .../Runtime/Scripts/Core/MpResourceHandle.cs | 13 +++ .../Scripts/Framework/CalculatorGraph.cs | 7 +- .../Scripts/Framework/Packet/BoolPacket.cs | 2 +- .../Packet/ClassificationListPacket.cs | 2 +- .../Packet/ClassificationListVectorPacket.cs | 2 +- .../Framework/Packet/DetectionPacket.cs | 2 +- .../Framework/Packet/DetectionVectorPacket.cs | 2 +- .../Framework/Packet/FaceGeometryPacket.cs | 2 +- .../Packet/FaceGeometryVectorPacket.cs | 2 +- .../Framework/Packet/FloatArrayPacket.cs | 2 +- .../Scripts/Framework/Packet/FloatPacket.cs | 2 +- .../Framework/Packet/FloatVectorPacket.cs | 2 +- .../Framework/Packet/GpuBufferPacket.cs | 7 +- .../Framework/Packet/ImageFramePacket.cs | 7 +- .../Scripts/Framework/Packet/IntPacket.cs | 2 +- .../Framework/Packet/LandmarkListPacket.cs | 2 +- .../Packet/LandmarkListVectorPacket.cs | 2 +- .../Scripts/Framework/Packet/MatrixPacket.cs | 2 +- .../Packet/NormalizedLandmarkListPacket.cs | 2 +- .../NormalizedLandmarkListVectorPacket.cs | 2 +- .../Framework/Packet/NormalizedRectPacket.cs | 2 +- .../Packet/NormalizedRectVectorPacket.cs | 2 +- .../Scripts/Framework/Packet/Packet.cs | 2 +- .../Scripts/Framework/Packet/RectPacket.cs | 2 +- .../Framework/Packet/RectVectorPacket.cs | 2 +- .../Scripts/Framework/Packet/StringPacket.cs | 21 ++++- .../Runtime/Scripts/Framework/Port/Status.cs | 2 +- .../Scripts/Framework/Port/StatusOr.cs | 29 ------- .../Scripts/Framework/Port/StatusOr.cs.meta | 11 --- .../Framework/Port/StatusOrGpuBuffer.cs | 49 ----------- .../Framework/Port/StatusOrGpuBuffer.cs.meta | 11 --- .../Framework/Port/StatusOrGpuResources.cs | 49 ----------- .../Framework/Port/StatusOrImageFrame.cs | 49 ----------- .../Framework/Port/StatusOrImageFrame.cs.meta | 11 --- .../Scripts/Framework/Port/StatusOrPoller.cs | 49 ----------- .../Framework/Port/StatusOrPoller.cs.meta | 11 --- .../Scripts/Framework/Port/StatusOrString.cs | 63 -------------- .../Framework/Port/StatusOrString.cs.meta | 11 --- .../Scripts/Framework/ValidatedGraphConfig.cs | 14 +-- .../Runtime/Scripts/Gpu/GpuResources.cs | 14 +-- .../NativeMethods/External/Stdlib_Safe.cs | 19 ---- .../External/Stdlib_Safe.cs.meta | 11 --- .../NativeMethods/External/Stdlib_Unsafe.cs | 14 --- .../Framework/CalculatorGraph_Unsafe.cs | 3 +- .../Framework/Format/ImageFrame_Safe.cs | 6 -- .../Framework/Format/ImageFrame_Unsafe.cs | 13 +-- .../Framework/OutputStreamPoller_Safe.cs | 19 ---- .../Framework/OutputStreamPoller_Safe.cs.meta | 11 --- .../Framework/OutputStreamPoller_Unsafe.cs | 11 --- .../NativeMethods/Framework/Packet_Unsafe.cs | 5 +- .../Framework/ValidatedGraphConfig_Unsafe.cs | 8 +- .../NativeMethods/Gpu/GlContext_Unsafe.cs | 17 ---- .../NativeMethods/Gpu/GpuBuffer_Safe.cs | 6 -- .../NativeMethods/Gpu/GpuBuffer_Unsafe.cs | 13 +-- .../NativeMethods/Gpu/GpuResources_Safe.cs | 4 - .../NativeMethods/Gpu/GpuResources_Unsafe.cs | 13 +-- .../Runtime/Scripts/Unity/GpuManager.cs | 5 +- .../Runtime/Scripts/Unity/OutputStream.cs | 42 +++++---- .../Framework/Packet/ImageFramePacketTest.cs | 49 +++-------- .../Framework/Packet/StringPacketTest.cs | 19 ++-- .../Port/StatusOrGpuResourcesTest.cs | 61 ------------- .../Port/StatusOrGpuResourcesTest.cs.meta | 11 --- .../Framework/Port/StatusOrImageFrameTest.cs | 71 --------------- .../Port/StatusOrImageFrameTest.cs.meta | 11 --- .../Framework/Port/StatusOrStringTest.cs | 87 ------------------- .../Framework/Port/StatusOrStringTest.cs.meta | 11 --- .../EditMode/Framework/Port/StatusTest.cs | 5 +- .../Framework/ValidatedGraphConfigTest.cs | 24 ++--- .../EditMode/Gpu/GlCalculatorHelperTest.cs | 16 ++-- .../Tests/EditMode/Gpu/GlContextTest.cs | 4 +- .../Tests/EditMode/Gpu/GpuResourcesTest.cs | 15 +--- .../EditMode/Tasks/Core/TaskRunnerTest.cs | 30 +++---- mediapipe_api/external/absl/statusor.h | 40 ++++----- mediapipe_api/external/stdlib.cc | 29 ------- mediapipe_api/external/stdlib.h | 7 -- mediapipe_api/framework/BUILD | 3 +- mediapipe_api/framework/calculator_graph.cc | 11 ++- mediapipe_api/framework/calculator_graph.h | 5 +- mediapipe_api/framework/formats/BUILD | 2 - .../framework/formats/image_frame.cc | 17 +--- mediapipe_api/framework/formats/image_frame.h | 10 +-- .../framework/output_stream_poller.cc | 14 --- .../framework/output_stream_poller.h | 5 -- mediapipe_api/framework/packet.cc | 26 +++++- mediapipe_api/framework/packet.h | 10 +-- .../framework/validated_graph_config.cc | 9 +- .../framework/validated_graph_config.h | 4 +- mediapipe_api/gpu/BUILD | 3 - mediapipe_api/gpu/gl_context.cc | 31 ------- mediapipe_api/gpu/gl_context.h | 10 --- mediapipe_api/gpu/gpu_buffer.cc | 16 +--- mediapipe_api/gpu/gpu_buffer.h | 10 +-- mediapipe_api/gpu/gpu_shared_data_internal.cc | 28 +++--- mediapipe_api/gpu/gpu_shared_data_internal.h | 10 +-- 106 files changed, 304 insertions(+), 1185 deletions(-) create mode 100644 Packages/com.github.homuler.mediapipe/Runtime/Scripts/Core/BadStatusException.cs rename Packages/com.github.homuler.mediapipe/Runtime/Scripts/{Framework/Port/StatusOrGpuResources.cs.meta => Core/BadStatusException.cs.meta} (83%) delete mode 100644 Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Port/StatusOr.cs delete mode 100644 Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Port/StatusOr.cs.meta delete mode 100644 Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Port/StatusOrGpuBuffer.cs delete mode 100644 Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Port/StatusOrGpuBuffer.cs.meta delete mode 100644 Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Port/StatusOrGpuResources.cs delete mode 100644 Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Port/StatusOrImageFrame.cs delete mode 100644 Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Port/StatusOrImageFrame.cs.meta delete mode 100644 Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Port/StatusOrPoller.cs delete mode 100644 Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Port/StatusOrPoller.cs.meta delete mode 100644 Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Port/StatusOrString.cs delete mode 100644 Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Port/StatusOrString.cs.meta delete mode 100644 Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/External/Stdlib_Safe.cs delete mode 100644 Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/External/Stdlib_Safe.cs.meta delete mode 100644 Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/Framework/OutputStreamPoller_Safe.cs delete mode 100644 Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/Framework/OutputStreamPoller_Safe.cs.meta delete mode 100644 Packages/com.github.homuler.mediapipe/Tests/EditMode/Framework/Port/StatusOrGpuResourcesTest.cs delete mode 100644 Packages/com.github.homuler.mediapipe/Tests/EditMode/Framework/Port/StatusOrGpuResourcesTest.cs.meta delete mode 100644 Packages/com.github.homuler.mediapipe/Tests/EditMode/Framework/Port/StatusOrImageFrameTest.cs delete mode 100644 Packages/com.github.homuler.mediapipe/Tests/EditMode/Framework/Port/StatusOrImageFrameTest.cs.meta delete mode 100644 Packages/com.github.homuler.mediapipe/Tests/EditMode/Framework/Port/StatusOrStringTest.cs delete mode 100644 Packages/com.github.homuler.mediapipe/Tests/EditMode/Framework/Port/StatusOrStringTest.cs.meta diff --git a/Assets/MediaPipeUnity/Samples/Scenes/Face Detection/FaceDetectionGraph.cs b/Assets/MediaPipeUnity/Samples/Scenes/Face Detection/FaceDetectionGraph.cs index df8e6dfe8..42e693329 100644 --- a/Assets/MediaPipeUnity/Samples/Scenes/Face Detection/FaceDetectionGraph.cs +++ b/Assets/MediaPipeUnity/Samples/Scenes/Face Detection/FaceDetectionGraph.cs @@ -43,7 +43,7 @@ public override void StartRun(ImageSource imageSource) { if (runningMode.IsSynchronous()) { - _faceDetectionsStream.StartPolling().AssertOk(); + _faceDetectionsStream.StartPolling(); } StartRun(BuildSidePacket(imageSource)); } diff --git a/Assets/MediaPipeUnity/Samples/Scenes/Face Mesh/FaceMeshGraph.cs b/Assets/MediaPipeUnity/Samples/Scenes/Face Mesh/FaceMeshGraph.cs index b7c1b0a82..3b17b3471 100644 --- a/Assets/MediaPipeUnity/Samples/Scenes/Face Mesh/FaceMeshGraph.cs +++ b/Assets/MediaPipeUnity/Samples/Scenes/Face Mesh/FaceMeshGraph.cs @@ -72,10 +72,10 @@ public override void StartRun(ImageSource imageSource) { if (runningMode.IsSynchronous()) { - _faceDetectionsStream.StartPolling().AssertOk(); - _multiFaceLandmarksStream.StartPolling().AssertOk(); - _faceRectsFromLandmarksStream.StartPolling().AssertOk(); - _faceRectsFromDetectionsStream.StartPolling().AssertOk(); + _faceDetectionsStream.StartPolling(); + _multiFaceLandmarksStream.StartPolling(); + _faceRectsFromLandmarksStream.StartPolling(); + _faceRectsFromDetectionsStream.StartPolling(); } StartRun(BuildSidePacket(imageSource)); } diff --git a/Assets/MediaPipeUnity/Samples/Scenes/Hair Segmentation/HairSegmentationGraph.cs b/Assets/MediaPipeUnity/Samples/Scenes/Hair Segmentation/HairSegmentationGraph.cs index 0ee75f946..761f1c011 100644 --- a/Assets/MediaPipeUnity/Samples/Scenes/Hair Segmentation/HairSegmentationGraph.cs +++ b/Assets/MediaPipeUnity/Samples/Scenes/Hair Segmentation/HairSegmentationGraph.cs @@ -29,7 +29,7 @@ public override void StartRun(ImageSource imageSource) { if (runningMode.IsSynchronous()) { - _hairMaskStream.StartPolling().AssertOk(); + _hairMaskStream.StartPolling(); } StartRun(BuildSidePacket(imageSource)); } diff --git a/Assets/MediaPipeUnity/Samples/Scenes/Hand Tracking/HandTrackingGraph.cs b/Assets/MediaPipeUnity/Samples/Scenes/Hand Tracking/HandTrackingGraph.cs index 5de345a5e..17054fdd1 100644 --- a/Assets/MediaPipeUnity/Samples/Scenes/Hand Tracking/HandTrackingGraph.cs +++ b/Assets/MediaPipeUnity/Samples/Scenes/Hand Tracking/HandTrackingGraph.cs @@ -93,12 +93,12 @@ public override void StartRun(ImageSource imageSource) { if (runningMode.IsSynchronous()) { - _palmDetectionsStream.StartPolling().AssertOk(); - _handRectsFromPalmDetectionsStream.StartPolling().AssertOk(); - _handLandmarksStream.StartPolling().AssertOk(); - _handWorldLandmarksStream.StartPolling().AssertOk(); - _handRectsFromLandmarksStream.StartPolling().AssertOk(); - _handednessStream.StartPolling().AssertOk(); + _palmDetectionsStream.StartPolling(); + _handRectsFromPalmDetectionsStream.StartPolling(); + _handLandmarksStream.StartPolling(); + _handWorldLandmarksStream.StartPolling(); + _handRectsFromLandmarksStream.StartPolling(); + _handednessStream.StartPolling(); } StartRun(BuildSidePacket(imageSource)); } diff --git a/Assets/MediaPipeUnity/Samples/Scenes/Holistic/HolisticTrackingGraph.cs b/Assets/MediaPipeUnity/Samples/Scenes/Holistic/HolisticTrackingGraph.cs index 59fb0c18e..514214430 100644 --- a/Assets/MediaPipeUnity/Samples/Scenes/Holistic/HolisticTrackingGraph.cs +++ b/Assets/MediaPipeUnity/Samples/Scenes/Holistic/HolisticTrackingGraph.cs @@ -114,14 +114,14 @@ public override void StartRun(ImageSource imageSource) { if (runningMode.IsSynchronous()) { - _poseDetectionStream.StartPolling().AssertOk(); - _poseLandmarksStream.StartPolling().AssertOk(); - _faceLandmarksStream.StartPolling().AssertOk(); - _leftHandLandmarksStream.StartPolling().AssertOk(); - _rightHandLandmarksStream.StartPolling().AssertOk(); - _poseWorldLandmarksStream.StartPolling().AssertOk(); - _segmentationMaskStream.StartPolling().AssertOk(); - _poseRoiStream.StartPolling().AssertOk(); + _poseDetectionStream.StartPolling(); + _poseLandmarksStream.StartPolling(); + _faceLandmarksStream.StartPolling(); + _leftHandLandmarksStream.StartPolling(); + _rightHandLandmarksStream.StartPolling(); + _poseWorldLandmarksStream.StartPolling(); + _segmentationMaskStream.StartPolling(); + _poseRoiStream.StartPolling(); } StartRun(BuildSidePacket(imageSource)); } diff --git a/Assets/MediaPipeUnity/Samples/Scenes/Iris Tracking/IrisTrackingGraph.cs b/Assets/MediaPipeUnity/Samples/Scenes/Iris Tracking/IrisTrackingGraph.cs index 890935aff..1a98bf620 100644 --- a/Assets/MediaPipeUnity/Samples/Scenes/Iris Tracking/IrisTrackingGraph.cs +++ b/Assets/MediaPipeUnity/Samples/Scenes/Iris Tracking/IrisTrackingGraph.cs @@ -43,9 +43,9 @@ public override void StartRun(ImageSource imageSource) { if (runningMode.IsSynchronous()) { - _faceDetectionsStream.StartPolling().AssertOk(); - _faceRectStream.StartPolling().AssertOk(); - _faceLandmarksWithIrisStream.StartPolling().AssertOk(); + _faceDetectionsStream.StartPolling(); + _faceRectStream.StartPolling(); + _faceLandmarksWithIrisStream.StartPolling(); } StartRun(BuildSidePacket(imageSource)); } diff --git a/Assets/MediaPipeUnity/Samples/Scenes/MediaPipe Video/MediaPipeVideoGraph.cs b/Assets/MediaPipeUnity/Samples/Scenes/MediaPipe Video/MediaPipeVideoGraph.cs index 635eb5f19..6fab4b4db 100644 --- a/Assets/MediaPipeUnity/Samples/Scenes/MediaPipe Video/MediaPipeVideoGraph.cs +++ b/Assets/MediaPipeUnity/Samples/Scenes/MediaPipe Video/MediaPipeVideoGraph.cs @@ -34,7 +34,7 @@ public override void StartRun(ImageSource imageSource) { if (configType != ConfigType.OpenGLES) { - _outputVideoStream.StartPolling().AssertOk(); + _outputVideoStream.StartPolling(); } StartRun(BuildSidePacket(imageSource)); } diff --git a/Assets/MediaPipeUnity/Samples/Scenes/Object Detection/ObjectDetectionGraph.cs b/Assets/MediaPipeUnity/Samples/Scenes/Object Detection/ObjectDetectionGraph.cs index 37aeb0f8b..0f8baff85 100644 --- a/Assets/MediaPipeUnity/Samples/Scenes/Object Detection/ObjectDetectionGraph.cs +++ b/Assets/MediaPipeUnity/Samples/Scenes/Object Detection/ObjectDetectionGraph.cs @@ -26,7 +26,7 @@ public override void StartRun(ImageSource imageSource) { if (runningMode.IsSynchronous()) { - _outputDetectionsStream.StartPolling().AssertOk(); + _outputDetectionsStream.StartPolling(); } StartRun(BuildSidePacket(imageSource)); } diff --git a/Assets/MediaPipeUnity/Samples/Scenes/Pose Tracking/PoseTrackingGraph.cs b/Assets/MediaPipeUnity/Samples/Scenes/Pose Tracking/PoseTrackingGraph.cs index 31f7d286f..faedd13e1 100644 --- a/Assets/MediaPipeUnity/Samples/Scenes/Pose Tracking/PoseTrackingGraph.cs +++ b/Assets/MediaPipeUnity/Samples/Scenes/Pose Tracking/PoseTrackingGraph.cs @@ -88,11 +88,11 @@ public override void StartRun(ImageSource imageSource) { if (runningMode.IsSynchronous()) { - _poseDetectionStream.StartPolling().AssertOk(); - _poseLandmarksStream.StartPolling().AssertOk(); - _poseWorldLandmarksStream.StartPolling().AssertOk(); - _segmentationMaskStream.StartPolling().AssertOk(); - _roiFromLandmarksStream.StartPolling().AssertOk(); + _poseDetectionStream.StartPolling(); + _poseLandmarksStream.StartPolling(); + _poseWorldLandmarksStream.StartPolling(); + _segmentationMaskStream.StartPolling(); + _roiFromLandmarksStream.StartPolling(); } StartRun(BuildSidePacket(imageSource)); } diff --git a/Assets/MediaPipeUnity/Samples/Scenes/Selfie Segmentation/SelfieSegmentationGraph.cs b/Assets/MediaPipeUnity/Samples/Scenes/Selfie Segmentation/SelfieSegmentationGraph.cs index 9a3e1726f..f467c0fa3 100644 --- a/Assets/MediaPipeUnity/Samples/Scenes/Selfie Segmentation/SelfieSegmentationGraph.cs +++ b/Assets/MediaPipeUnity/Samples/Scenes/Selfie Segmentation/SelfieSegmentationGraph.cs @@ -25,7 +25,7 @@ public override void StartRun(ImageSource imageSource) { if (runningMode.IsSynchronous()) { - _segmentationMaskStream.StartPolling().AssertOk(); + _segmentationMaskStream.StartPolling(); } StartRun(BuildSidePacket(imageSource)); } diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Core/BadStatusException.cs b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Core/BadStatusException.cs new file mode 100644 index 000000000..90069768e --- /dev/null +++ b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Core/BadStatusException.cs @@ -0,0 +1,21 @@ +// Copyright (c) 2023 homuler +// +// Use of this source code is governed by an MIT-style +// license that can be found in the LICENSE file or at +// https://opensource.org/licenses/MIT. +using System; + +namespace Mediapipe +{ + public class BadStatusException : Exception + { + public Status.StatusCode statusCode { get; private set; } + + public BadStatusException(string message) : base(message) { } + + public BadStatusException(Status.StatusCode statusCode, string message) : base(message) + { + this.statusCode = statusCode; + } + } +} diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Port/StatusOrGpuResources.cs.meta b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Core/BadStatusException.cs.meta similarity index 83% rename from Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Port/StatusOrGpuResources.cs.meta rename to Packages/com.github.homuler.mediapipe/Runtime/Scripts/Core/BadStatusException.cs.meta index e569274bd..b58f8e852 100644 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Port/StatusOrGpuResources.cs.meta +++ b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Core/BadStatusException.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: b25d33a8b95748e448e3a0fa860ed096 +guid: 8e80661dec85f83e684378f7a7e4b760 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Core/MpResourceHandle.cs b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Core/MpResourceHandle.cs index 85ac1ef25..b79160a36 100644 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Core/MpResourceHandle.cs +++ b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Core/MpResourceHandle.cs @@ -88,12 +88,25 @@ protected string MarshalStringFromNative(StringOutFunc f) f(mpPtr, out var strPtr).Assert(); GC.KeepAlive(this); + return MarshalStringFromNative(strPtr); + } + + protected static string MarshalStringFromNative(IntPtr strPtr) + { var str = Marshal.PtrToStringAnsi(strPtr); UnsafeNativeMethods.delete_array__PKc(strPtr); return str; } + protected static void AssertStatusOk(IntPtr statusPtr) + { + using (var status = new Status(statusPtr, true)) + { + status.AssertOk(); + } + } + protected bool IsResourcePresent() { return ptr != IntPtr.Zero; diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/CalculatorGraph.cs b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/CalculatorGraph.cs index 7c58165e3..025ed2883 100644 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/CalculatorGraph.cs +++ b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/CalculatorGraph.cs @@ -100,12 +100,13 @@ public Status ObserveOutputStream(string streamName, int streamId, NativePacketC return ObserveOutputStream(streamName, packetCallback, false, out callbackHandle); } - public StatusOrPoller AddOutputStreamPoller(string streamName, bool observeTimestampBounds = false) + public OutputStreamPoller AddOutputStreamPoller(string streamName, bool observeTimestampBounds = false) { - UnsafeNativeMethods.mp_CalculatorGraph__AddOutputStreamPoller__PKc_b(mpPtr, streamName, observeTimestampBounds, out var statusOrPollerPtr).Assert(); + UnsafeNativeMethods.mp_CalculatorGraph__AddOutputStreamPoller__PKc_b(mpPtr, streamName, observeTimestampBounds, out var statusPtr, out var pollerPtr).Assert(); GC.KeepAlive(this); - return new StatusOrPoller(statusOrPollerPtr); + AssertStatusOk(statusPtr); + return new OutputStreamPoller(pollerPtr); } public Status Run() diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/BoolPacket.cs b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/BoolPacket.cs index ed1c2c812..4305d9a8a 100644 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/BoolPacket.cs +++ b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/BoolPacket.cs @@ -44,7 +44,7 @@ public override bool Get() return value; } - public override StatusOr Consume() + public override bool Consume() { throw new NotSupportedException(); } diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/ClassificationListPacket.cs b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/ClassificationListPacket.cs index bfc56211d..1c0efa6f1 100644 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/ClassificationListPacket.cs +++ b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/ClassificationListPacket.cs @@ -34,7 +34,7 @@ public override ClassificationList Get() return classificationList; } - public override StatusOr Consume() + public override ClassificationList Consume() { throw new NotSupportedException(); } diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/ClassificationListVectorPacket.cs b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/ClassificationListVectorPacket.cs index 1e7a55a72..632a4da7b 100644 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/ClassificationListVectorPacket.cs +++ b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/ClassificationListVectorPacket.cs @@ -35,7 +35,7 @@ public override List Get() return classificationLists; } - public override StatusOr> Consume() + public override List Consume() { throw new NotSupportedException(); } diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/DetectionPacket.cs b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/DetectionPacket.cs index 9550a75e8..5730e78a6 100644 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/DetectionPacket.cs +++ b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/DetectionPacket.cs @@ -34,7 +34,7 @@ public override Detection Get() return detection; } - public override StatusOr Consume() + public override Detection Consume() { throw new NotSupportedException(); } diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/DetectionVectorPacket.cs b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/DetectionVectorPacket.cs index d69b5a572..932928f80 100644 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/DetectionVectorPacket.cs +++ b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/DetectionVectorPacket.cs @@ -35,7 +35,7 @@ public override List Get() return detections; } - public override StatusOr> Consume() + public override List Consume() { throw new NotSupportedException(); } diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/FaceGeometryPacket.cs b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/FaceGeometryPacket.cs index 3f7a91523..7d3c45986 100644 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/FaceGeometryPacket.cs +++ b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/FaceGeometryPacket.cs @@ -34,7 +34,7 @@ public override FaceGeometry.FaceGeometry Get() return geometry; } - public override StatusOr Consume() + public override FaceGeometry.FaceGeometry Consume() { throw new NotSupportedException(); } diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/FaceGeometryVectorPacket.cs b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/FaceGeometryVectorPacket.cs index ae83a5e99..601f63288 100644 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/FaceGeometryVectorPacket.cs +++ b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/FaceGeometryVectorPacket.cs @@ -35,7 +35,7 @@ public FaceGeometryVectorPacket At(Timestamp timestamp) return geometries; } - public override StatusOr> Consume() + public override List Consume() { throw new NotSupportedException(); } diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/FloatArrayPacket.cs b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/FloatArrayPacket.cs index a034a3659..fc922daef 100644 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/FloatArrayPacket.cs +++ b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/FloatArrayPacket.cs @@ -81,7 +81,7 @@ public override float[] Get() return result; } - public override StatusOr Consume() + public override float[] Consume() { throw new NotSupportedException(); } diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/FloatPacket.cs b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/FloatPacket.cs index cc19ca3ac..73f147fce 100644 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/FloatPacket.cs +++ b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/FloatPacket.cs @@ -44,7 +44,7 @@ public override float Get() return value; } - public override StatusOr Consume() + public override float Consume() { throw new NotSupportedException(); } diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/FloatVectorPacket.cs b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/FloatVectorPacket.cs index 648a5057c..fe045871d 100644 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/FloatVectorPacket.cs +++ b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/FloatVectorPacket.cs @@ -92,7 +92,7 @@ public override List Get() return result; } - public override StatusOr> Consume() + public override List Consume() { throw new NotSupportedException(); } diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/GpuBufferPacket.cs b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/GpuBufferPacket.cs index 7308ca174..35807f9b1 100644 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/GpuBufferPacket.cs +++ b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/GpuBufferPacket.cs @@ -48,12 +48,13 @@ public override GpuBuffer Get() return new GpuBuffer(gpuBufferPtr, false); } - public override StatusOr Consume() + public override GpuBuffer Consume() { - UnsafeNativeMethods.mp_Packet__ConsumeGpuBuffer(mpPtr, out var statusOrGpuBufferPtr).Assert(); + UnsafeNativeMethods.mp_Packet__ConsumeGpuBuffer(mpPtr, out var statusPtr, out var gpuBufferPtr).Assert(); GC.KeepAlive(this); - return new StatusOrGpuBuffer(statusOrGpuBufferPtr); + AssertStatusOk(statusPtr); + return new GpuBuffer(gpuBufferPtr, true); } public override Status ValidateAsType() diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/ImageFramePacket.cs b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/ImageFramePacket.cs index 7f0193357..3c7331aee 100644 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/ImageFramePacket.cs +++ b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/ImageFramePacket.cs @@ -48,12 +48,13 @@ public override ImageFrame Get() return new ImageFrame(imageFramePtr, false); } - public override StatusOr Consume() + public override ImageFrame Consume() { - UnsafeNativeMethods.mp_Packet__ConsumeImageFrame(mpPtr, out var statusOrImageFramePtr).Assert(); + UnsafeNativeMethods.mp_Packet__ConsumeImageFrame(mpPtr, out var statusPtr, out var imageFramePtr).Assert(); GC.KeepAlive(this); - return new StatusOrImageFrame(statusOrImageFramePtr); + AssertStatusOk(statusPtr); + return new ImageFrame(imageFramePtr, true); } public override Status ValidateAsType() diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/IntPacket.cs b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/IntPacket.cs index 8490cb923..445b9f7ee 100644 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/IntPacket.cs +++ b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/IntPacket.cs @@ -44,7 +44,7 @@ public override int Get() return value; } - public override StatusOr Consume() + public override int Consume() { throw new NotSupportedException(); } diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/LandmarkListPacket.cs b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/LandmarkListPacket.cs index 4ec0fc166..ca9d3db81 100644 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/LandmarkListPacket.cs +++ b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/LandmarkListPacket.cs @@ -34,7 +34,7 @@ public override LandmarkList Get() return landmarkList; } - public override StatusOr Consume() + public override LandmarkList Consume() { throw new NotSupportedException(); } diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/LandmarkListVectorPacket.cs b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/LandmarkListVectorPacket.cs index 9225cf248..2e5d7b2ce 100644 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/LandmarkListVectorPacket.cs +++ b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/LandmarkListVectorPacket.cs @@ -35,7 +35,7 @@ public override List Get() return landmarkLists; } - public override StatusOr> Consume() + public override List Consume() { throw new NotSupportedException(); } diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/MatrixPacket.cs b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/MatrixPacket.cs index e2f139b29..a2965dc22 100644 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/MatrixPacket.cs +++ b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/MatrixPacket.cs @@ -50,7 +50,7 @@ public override MatrixData Get() return matrixData; } - public override StatusOr Consume() + public override MatrixData Consume() { throw new NotSupportedException(); } diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/NormalizedLandmarkListPacket.cs b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/NormalizedLandmarkListPacket.cs index a9c46d87d..1c0c1c1a2 100644 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/NormalizedLandmarkListPacket.cs +++ b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/NormalizedLandmarkListPacket.cs @@ -34,7 +34,7 @@ public override NormalizedLandmarkList Get() return normalizedLandmarkList; } - public override StatusOr Consume() + public override NormalizedLandmarkList Consume() { throw new NotSupportedException(); } diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/NormalizedLandmarkListVectorPacket.cs b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/NormalizedLandmarkListVectorPacket.cs index 001a8d22a..916a4d6a3 100644 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/NormalizedLandmarkListVectorPacket.cs +++ b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/NormalizedLandmarkListVectorPacket.cs @@ -35,7 +35,7 @@ public override List Get() return normalizedLandmarkLists; } - public override StatusOr> Consume() + public override List Consume() { throw new NotSupportedException(); } diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/NormalizedRectPacket.cs b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/NormalizedRectPacket.cs index 9ea0c1d80..7c948e34e 100644 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/NormalizedRectPacket.cs +++ b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/NormalizedRectPacket.cs @@ -34,7 +34,7 @@ public override NormalizedRect Get() return normalizedRect; } - public override StatusOr Consume() + public override NormalizedRect Consume() { throw new NotSupportedException(); } diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/NormalizedRectVectorPacket.cs b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/NormalizedRectVectorPacket.cs index f76eaf9b3..a88573229 100644 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/NormalizedRectVectorPacket.cs +++ b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/NormalizedRectVectorPacket.cs @@ -35,7 +35,7 @@ public override List Get() return normalizedRects; } - public override StatusOr> Consume() + public override List Consume() { throw new NotSupportedException(); } diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/Packet.cs b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/Packet.cs index edff56b75..2b8d4177e 100644 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/Packet.cs +++ b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/Packet.cs @@ -53,7 +53,7 @@ public void SwitchNativePtr(IntPtr packetPtr) /// Thrown when the value is not set public abstract TValue Get(); - public abstract StatusOr Consume(); + public abstract TValue Consume(); public bool IsEmpty() { diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/RectPacket.cs b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/RectPacket.cs index dba692422..b5e687da2 100644 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/RectPacket.cs +++ b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/RectPacket.cs @@ -34,7 +34,7 @@ public override Rect Get() return rect; } - public override StatusOr Consume() + public override Rect Consume() { throw new NotSupportedException(); } diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/RectVectorPacket.cs b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/RectVectorPacket.cs index 0f933ea0a..634ab4106 100644 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/RectVectorPacket.cs +++ b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/RectVectorPacket.cs @@ -35,7 +35,7 @@ public override List Get() return rects; } - public override StatusOr> Consume() + public override List Consume() { throw new NotSupportedException(); } diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/StringPacket.cs b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/StringPacket.cs index b2032763e..6709c185b 100644 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/StringPacket.cs +++ b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Packet/StringPacket.cs @@ -67,12 +67,27 @@ public byte[] GetByteArray() return bytes; } - public override StatusOr Consume() + public override string Consume() { - UnsafeNativeMethods.mp_Packet__ConsumeString(mpPtr, out var statusOrStringPtr).Assert(); + UnsafeNativeMethods.mp_Packet__ConsumeString(mpPtr, out var statusPtr, out var strPtr).Assert(); GC.KeepAlive(this); - return new StatusOrString(statusOrStringPtr); + AssertStatusOk(statusPtr); + return MarshalStringFromNative(strPtr); + } + + public byte[] ConsumeByteArray() + { + UnsafeNativeMethods.mp_Packet__ConsumeByteString(mpPtr, out var statusPtr, out var strPtr, out var size).Assert(); + + GC.KeepAlive(this); + AssertStatusOk(statusPtr); + + var bytes = new byte[size]; + Marshal.Copy(strPtr, bytes, 0, size); + UnsafeNativeMethods.delete_array__PKc(strPtr); + + return bytes; } public override Status ValidateAsType() diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Port/Status.cs b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Port/Status.cs index a6f176579..a2e8d520d 100644 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Port/Status.cs +++ b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Port/Status.cs @@ -144,7 +144,7 @@ public void AssertOk() { if (!Ok()) { - throw new MediaPipeException(ToString()); + throw new BadStatusException(Code(), ToString()); } } diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Port/StatusOr.cs b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Port/StatusOr.cs deleted file mode 100644 index 21059b85c..000000000 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Port/StatusOr.cs +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright (c) 2021 homuler -// -// Use of this source code is governed by an MIT-style -// license that can be found in the LICENSE file or at -// https://opensource.org/licenses/MIT. - -using System; - -namespace Mediapipe -{ - public abstract class StatusOr : MpResourceHandle - { - public StatusOr(IntPtr ptr) : base(ptr) { } - - public abstract Status status { get; } - public virtual bool Ok() - { - return status.Ok(); - } - - public virtual T ValueOr(T defaultValue = default) - { - return Ok() ? Value() : defaultValue; - } - - /// Thrown when status is not ok - public abstract T Value(); - } -} diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Port/StatusOr.cs.meta b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Port/StatusOr.cs.meta deleted file mode 100644 index 0cf213172..000000000 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Port/StatusOr.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 8265706b497a321ed85fa4a0f30c8edc -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Port/StatusOrGpuBuffer.cs b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Port/StatusOrGpuBuffer.cs deleted file mode 100644 index c22de8f13..000000000 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Port/StatusOrGpuBuffer.cs +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright (c) 2021 homuler -// -// Use of this source code is governed by an MIT-style -// license that can be found in the LICENSE file or at -// https://opensource.org/licenses/MIT. - -using System; - -namespace Mediapipe -{ - public class StatusOrGpuBuffer : StatusOr - { - public StatusOrGpuBuffer(IntPtr ptr) : base(ptr) { } - - protected override void DeleteMpPtr() - { - UnsafeNativeMethods.mp_StatusOrGpuBuffer__delete(ptr); - } - - private Status _status; - public override Status status - { - get - { - if (_status == null || _status.isDisposed) - { - UnsafeNativeMethods.mp_StatusOrGpuBuffer__status(mpPtr, out var statusPtr).Assert(); - - GC.KeepAlive(this); - _status = new Status(statusPtr); - } - return _status; - } - } - - public override bool Ok() - { - return SafeNativeMethods.mp_StatusOrGpuBuffer__ok(mpPtr); - } - - public override GpuBuffer Value() - { - UnsafeNativeMethods.mp_StatusOrGpuBuffer__value(mpPtr, out var gpuBufferPtr).Assert(); - Dispose(); - - return new GpuBuffer(gpuBufferPtr); - } - } -} diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Port/StatusOrGpuBuffer.cs.meta b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Port/StatusOrGpuBuffer.cs.meta deleted file mode 100644 index 84f9d7f51..000000000 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Port/StatusOrGpuBuffer.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: fd1abb804326267d2ad3280f742335f5 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Port/StatusOrGpuResources.cs b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Port/StatusOrGpuResources.cs deleted file mode 100644 index 17f853dae..000000000 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Port/StatusOrGpuResources.cs +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright (c) 2021 homuler -// -// Use of this source code is governed by an MIT-style -// license that can be found in the LICENSE file or at -// https://opensource.org/licenses/MIT. - -using System; - -namespace Mediapipe -{ - public class StatusOrGpuResources : StatusOr - { - public StatusOrGpuResources(IntPtr ptr) : base(ptr) { } - - protected override void DeleteMpPtr() - { - UnsafeNativeMethods.mp_StatusOrGpuResources__delete(ptr); - } - - private Status _status; - public override Status status - { - get - { - if (_status == null || _status.isDisposed) - { - UnsafeNativeMethods.mp_StatusOrGpuResources__status(mpPtr, out var statusPtr).Assert(); - - GC.KeepAlive(this); - _status = new Status(statusPtr); - } - return _status; - } - } - - public override bool Ok() - { - return SafeNativeMethods.mp_StatusOrGpuResources__ok(mpPtr); - } - - public override GpuResources Value() - { - UnsafeNativeMethods.mp_StatusOrGpuResources__value(mpPtr, out var gpuResourcesPtr).Assert(); - Dispose(); - - return new GpuResources(gpuResourcesPtr); - } - } -} diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Port/StatusOrImageFrame.cs b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Port/StatusOrImageFrame.cs deleted file mode 100644 index c227f666c..000000000 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Port/StatusOrImageFrame.cs +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright (c) 2021 homuler -// -// Use of this source code is governed by an MIT-style -// license that can be found in the LICENSE file or at -// https://opensource.org/licenses/MIT. - -using System; - -namespace Mediapipe -{ - public class StatusOrImageFrame : StatusOr - { - public StatusOrImageFrame(IntPtr ptr) : base(ptr) { } - - protected override void DeleteMpPtr() - { - UnsafeNativeMethods.mp_StatusOrImageFrame__delete(ptr); - } - - private Status _status; - public override Status status - { - get - { - if (_status == null || _status.isDisposed) - { - UnsafeNativeMethods.mp_StatusOrImageFrame__status(mpPtr, out var statusPtr).Assert(); - - GC.KeepAlive(this); - _status = new Status(statusPtr); - } - return _status; - } - } - - public override bool Ok() - { - return SafeNativeMethods.mp_StatusOrImageFrame__ok(mpPtr); - } - - public override ImageFrame Value() - { - UnsafeNativeMethods.mp_StatusOrImageFrame__value(mpPtr, out var imageFramePtr).Assert(); - Dispose(); - - return new ImageFrame(imageFramePtr); - } - } -} diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Port/StatusOrImageFrame.cs.meta b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Port/StatusOrImageFrame.cs.meta deleted file mode 100644 index 4616ebbaf..000000000 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Port/StatusOrImageFrame.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: cb972d14519613db3a10e80e53ccceb6 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Port/StatusOrPoller.cs b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Port/StatusOrPoller.cs deleted file mode 100644 index 1a432ee57..000000000 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Port/StatusOrPoller.cs +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright (c) 2021 homuler -// -// Use of this source code is governed by an MIT-style -// license that can be found in the LICENSE file or at -// https://opensource.org/licenses/MIT. - -using System; - -namespace Mediapipe -{ - public class StatusOrPoller : StatusOr> - { - public StatusOrPoller(IntPtr ptr) : base(ptr) { } - - protected override void DeleteMpPtr() - { - UnsafeNativeMethods.mp_StatusOrPoller__delete(ptr); - } - - private Status _status; - public override Status status - { - get - { - if (_status == null || _status.isDisposed) - { - UnsafeNativeMethods.mp_StatusOrPoller__status(mpPtr, out var statusPtr).Assert(); - - GC.KeepAlive(this); - _status = new Status(statusPtr); - } - return _status; - } - } - - public override bool Ok() - { - return SafeNativeMethods.mp_StatusOrPoller__ok(mpPtr); - } - - public override OutputStreamPoller Value() - { - UnsafeNativeMethods.mp_StatusOrPoller__value(mpPtr, out var pollerPtr).Assert(); - Dispose(); - - return new OutputStreamPoller(pollerPtr); - } - } -} diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Port/StatusOrPoller.cs.meta b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Port/StatusOrPoller.cs.meta deleted file mode 100644 index 27bcd7bec..000000000 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Port/StatusOrPoller.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 516e50f1c8b1a564fb3a1a52ac7941a2 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Port/StatusOrString.cs b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Port/StatusOrString.cs deleted file mode 100644 index 3307b5b9b..000000000 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Port/StatusOrString.cs +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright (c) 2021 homuler -// -// Use of this source code is governed by an MIT-style -// license that can be found in the LICENSE file or at -// https://opensource.org/licenses/MIT. - -using System; -using System.Runtime.InteropServices; - -namespace Mediapipe -{ - public class StatusOrString : StatusOr - { - public StatusOrString(IntPtr ptr) : base(ptr) { } - - protected override void DeleteMpPtr() - { - UnsafeNativeMethods.mp_StatusOrString__delete(ptr); - } - - private Status _status; - public override Status status - { - get - { - if (_status == null || _status.isDisposed) - { - UnsafeNativeMethods.mp_StatusOrString__status(mpPtr, out var statusPtr).Assert(); - - GC.KeepAlive(this); - _status = new Status(statusPtr); - } - return _status; - } - } - - public override bool Ok() - { - return SafeNativeMethods.mp_StatusOrString__ok(mpPtr); - } - - public override string Value() - { - var str = MarshalStringFromNative(UnsafeNativeMethods.mp_StatusOrString__value); - Dispose(); // respect move semantics - - return str; - } - - public byte[] ValueAsByteArray() - { - UnsafeNativeMethods.mp_StatusOrString__bytearray(mpPtr, out var strPtr, out var size).Assert(); - GC.KeepAlive(this); - - var bytes = new byte[size]; - Marshal.Copy(strPtr, bytes, 0, size); - UnsafeNativeMethods.delete_array__PKc(strPtr); - Dispose(); - - return bytes; - } - } -} diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Port/StatusOrString.cs.meta b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Port/StatusOrString.cs.meta deleted file mode 100644 index e598fb0ce..000000000 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Port/StatusOrString.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 66b1ae14027703a7f9af3b146a26adfc -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/ValidatedGraphConfig.cs b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/ValidatedGraphConfig.cs index f7c8bdf06..778898962 100644 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/ValidatedGraphConfig.cs +++ b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/ValidatedGraphConfig.cs @@ -202,20 +202,22 @@ public int OutputStreamToNode(string name) return SafeNativeMethods.mp_ValidatedGraphConfig__OutputStreamToNode__PKc(mpPtr, name); } - public StatusOrString RegisteredSidePacketTypeName(string name) + public string RegisteredSidePacketTypeName(string name) { - UnsafeNativeMethods.mp_ValidatedGraphConfig__RegisteredSidePacketTypeName(mpPtr, name, out var statusOrStringPtr).Assert(); + UnsafeNativeMethods.mp_ValidatedGraphConfig__RegisteredSidePacketTypeName(mpPtr, name, out var statusPtr, out var strPtr).Assert(); GC.KeepAlive(this); - return new StatusOrString(statusOrStringPtr); + AssertStatusOk(statusPtr); + return MarshalStringFromNative(strPtr); } - public StatusOrString RegisteredStreamTypeName(string name) + public string RegisteredStreamTypeName(string name) { - UnsafeNativeMethods.mp_ValidatedGraphConfig__RegisteredStreamTypeName(mpPtr, name, out var statusOrStringPtr).Assert(); + UnsafeNativeMethods.mp_ValidatedGraphConfig__RegisteredStreamTypeName(mpPtr, name, out var statusPtr, out var strPtr).Assert(); GC.KeepAlive(this); - return new StatusOrString(statusOrStringPtr); + AssertStatusOk(statusPtr); + return MarshalStringFromNative(strPtr); } public string Package() diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Gpu/GpuResources.cs b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Gpu/GpuResources.cs index f70159e21..fdf72b7be 100644 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Gpu/GpuResources.cs +++ b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Gpu/GpuResources.cs @@ -36,18 +36,20 @@ protected override void DeleteMpPtr() public IntPtr sharedPtr => _sharedPtrHandle == null ? IntPtr.Zero : _sharedPtrHandle.mpPtr; - public static StatusOrGpuResources Create() + public static GpuResources Create() { - UnsafeNativeMethods.mp_GpuResources_Create(out var statusOrGpuResourcesPtr).Assert(); + UnsafeNativeMethods.mp_GpuResources_Create(out var statusPtr, out var gpuResourcesPtr).Assert(); + AssertStatusOk(statusPtr); - return new StatusOrGpuResources(statusOrGpuResourcesPtr); + return new GpuResources(gpuResourcesPtr); } - public static StatusOrGpuResources Create(IntPtr externalContext) + public static GpuResources Create(IntPtr externalContext) { - UnsafeNativeMethods.mp_GpuResources_Create__Pv(externalContext, out var statusOrGpuResourcesPtr).Assert(); + UnsafeNativeMethods.mp_GpuResources_Create__Pv(externalContext, out var statusPtr, out var gpuResourcesPtr).Assert(); + AssertStatusOk(statusPtr); - return new StatusOrGpuResources(statusOrGpuResourcesPtr); + return new GpuResources(gpuResourcesPtr); } private class SharedPtr : SharedPtrHandle diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/External/Stdlib_Safe.cs b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/External/Stdlib_Safe.cs deleted file mode 100644 index 2ea4c46f9..000000000 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/External/Stdlib_Safe.cs +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright (c) 2021 homuler -// -// Use of this source code is governed by an MIT-style -// license that can be found in the LICENSE file or at -// https://opensource.org/licenses/MIT. - -using System; -using System.Diagnostics.Contracts; -using System.Runtime.InteropServices; - -namespace Mediapipe -{ - internal static partial class SafeNativeMethods - { - [Pure, DllImport(MediaPipeLibrary, ExactSpelling = true)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool mp_StatusOrString__ok(IntPtr statusOrString); - } -} diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/External/Stdlib_Safe.cs.meta b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/External/Stdlib_Safe.cs.meta deleted file mode 100644 index 4fb98ed85..000000000 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/External/Stdlib_Safe.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 4387fa8ccc9d34346989f3157763325c -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/External/Stdlib_Unsafe.cs b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/External/Stdlib_Unsafe.cs index 1965f17b4..8fd772a63 100644 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/External/Stdlib_Unsafe.cs +++ b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/External/Stdlib_Unsafe.cs @@ -27,19 +27,5 @@ internal static partial class UnsafeNativeMethods [DllImport(MediaPipeLibrary, ExactSpelling = true)] public static extern void std_string__swap__Rstr(IntPtr src, IntPtr dst); #endregion - - #region StatusOrString - [DllImport(MediaPipeLibrary, ExactSpelling = true)] - public static extern void mp_StatusOrString__delete(IntPtr statusOrString); - - [DllImport(MediaPipeLibrary, ExactSpelling = true)] - public static extern MpReturnCode mp_StatusOrString__status(IntPtr statusOrString, out IntPtr status); - - [DllImport(MediaPipeLibrary, ExactSpelling = true)] - public static extern MpReturnCode mp_StatusOrString__value(IntPtr statusOrString, out IntPtr value); - - [DllImport(MediaPipeLibrary, ExactSpelling = true)] - public static extern MpReturnCode mp_StatusOrString__bytearray(IntPtr statusOrString, out IntPtr value, out int size); - #endregion } } diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/Framework/CalculatorGraph_Unsafe.cs b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/Framework/CalculatorGraph_Unsafe.cs index 3e43fbfce..91e71ceb8 100644 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/Framework/CalculatorGraph_Unsafe.cs +++ b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/Framework/CalculatorGraph_Unsafe.cs @@ -35,7 +35,8 @@ public static extern MpReturnCode mp_CalculatorGraph__ObserveOutputStream__PKc_P [MarshalAs(UnmanagedType.FunctionPtr)] CalculatorGraph.NativePacketCallback packetCallback, [MarshalAs(UnmanagedType.I1)] bool observeTimestampBounds, out IntPtr status); [DllImport(MediaPipeLibrary, ExactSpelling = true)] - public static extern MpReturnCode mp_CalculatorGraph__AddOutputStreamPoller__PKc_b(IntPtr graph, string streamName, [MarshalAs(UnmanagedType.I1)] bool observeTimestampBounds, out IntPtr statusOrPoller); + public static extern MpReturnCode mp_CalculatorGraph__AddOutputStreamPoller__PKc_b(IntPtr graph, string streamName, [MarshalAs(UnmanagedType.I1)] bool observeTimestampBounds, + out IntPtr status, out IntPtr poller); [DllImport(MediaPipeLibrary, ExactSpelling = true)] public static extern MpReturnCode mp_CalculatorGraph__Run__Rsp(IntPtr graph, IntPtr sidePackets, out IntPtr status); diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/Framework/Format/ImageFrame_Safe.cs b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/Framework/Format/ImageFrame_Safe.cs index ff051301f..6277428e7 100644 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/Framework/Format/ImageFrame_Safe.cs +++ b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/Framework/Format/ImageFrame_Safe.cs @@ -38,11 +38,5 @@ public static extern MpReturnCode mp_ImageFrame__IsAligned__ui( [Pure, DllImport(MediaPipeLibrary, ExactSpelling = true)] public static extern IntPtr mp_ImageFrame__MutablePixelData(IntPtr imageFrame); - - #region StatusOr - [Pure, DllImport(MediaPipeLibrary, ExactSpelling = true)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool mp_StatusOrImageFrame__ok(IntPtr statusOrImageFrame); - #endregion } } diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/Framework/Format/ImageFrame_Unsafe.cs b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/Framework/Format/ImageFrame_Unsafe.cs index e637c891f..4906227cf 100644 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/Framework/Format/ImageFrame_Unsafe.cs +++ b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/Framework/Format/ImageFrame_Unsafe.cs @@ -41,17 +41,6 @@ public static extern MpReturnCode mp_ImageFrame__ui_i_i_i_Pui8_PF( [DllImport(MediaPipeLibrary, ExactSpelling = true)] public static extern MpReturnCode mp_ImageFrame__CopyToBuffer__Pf_i(IntPtr imageFrame, IntPtr buffer, int bufferSize); - #region StatusOr - [DllImport(MediaPipeLibrary, ExactSpelling = true)] - public static extern void mp_StatusOrImageFrame__delete(IntPtr statusOrImageFrame); - - [DllImport(MediaPipeLibrary, ExactSpelling = true)] - public static extern MpReturnCode mp_StatusOrImageFrame__status(IntPtr statusOrImageFrame, out IntPtr status); - - [DllImport(MediaPipeLibrary, ExactSpelling = true)] - public static extern MpReturnCode mp_StatusOrImageFrame__value(IntPtr statusOrImageFrame, out IntPtr imageFrame); - #endregion - #region Packet [DllImport(MediaPipeLibrary, ExactSpelling = true)] public static extern MpReturnCode mp__MakeImageFramePacket__Pif(IntPtr imageFrame, out IntPtr packet); @@ -60,7 +49,7 @@ public static extern MpReturnCode mp_ImageFrame__ui_i_i_i_Pui8_PF( public static extern MpReturnCode mp__MakeImageFramePacket_At__Pif_Rt(IntPtr imageFrame, IntPtr timestamp, out IntPtr packet); [DllImport(MediaPipeLibrary, ExactSpelling = true)] - public static extern MpReturnCode mp_Packet__ConsumeImageFrame(IntPtr packet, out IntPtr statusOrImageFrame); + public static extern MpReturnCode mp_Packet__ConsumeImageFrame(IntPtr packet, out IntPtr status, out IntPtr imageFrame); [DllImport(MediaPipeLibrary, ExactSpelling = true)] public static extern MpReturnCode mp_Packet__GetImageFrame(IntPtr packet, out IntPtr imageFrame); diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/Framework/OutputStreamPoller_Safe.cs b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/Framework/OutputStreamPoller_Safe.cs deleted file mode 100644 index 2499ba27e..000000000 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/Framework/OutputStreamPoller_Safe.cs +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright (c) 2021 homuler -// -// Use of this source code is governed by an MIT-style -// license that can be found in the LICENSE file or at -// https://opensource.org/licenses/MIT. - -using System; -using System.Diagnostics.Contracts; -using System.Runtime.InteropServices; - -namespace Mediapipe -{ - internal static partial class SafeNativeMethods - { - [Pure, DllImport(MediaPipeLibrary, ExactSpelling = true)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool mp_StatusOrPoller__ok(IntPtr statusOrPoller); - } -} diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/Framework/OutputStreamPoller_Safe.cs.meta b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/Framework/OutputStreamPoller_Safe.cs.meta deleted file mode 100644 index ba059fa03..000000000 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/Framework/OutputStreamPoller_Safe.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 089b00baa4837fc45b59e49b3fd89708 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/Framework/OutputStreamPoller_Unsafe.cs b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/Framework/OutputStreamPoller_Unsafe.cs index 397ed439e..ace02d606 100644 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/Framework/OutputStreamPoller_Unsafe.cs +++ b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/Framework/OutputStreamPoller_Unsafe.cs @@ -27,16 +27,5 @@ internal static partial class UnsafeNativeMethods [DllImport(MediaPipeLibrary, ExactSpelling = true)] public static extern MpReturnCode mp_OutputStreamPoller__QueueSize(IntPtr poller, out int queueSize); #endregion - - #region StatusOrPoller - [DllImport(MediaPipeLibrary, ExactSpelling = true)] - public static extern void mp_StatusOrPoller__delete(IntPtr statusOrPoller); - - [DllImport(MediaPipeLibrary, ExactSpelling = true)] - public static extern MpReturnCode mp_StatusOrPoller__status(IntPtr statusOrPoller, out IntPtr status); - - [DllImport(MediaPipeLibrary, ExactSpelling = true)] - public static extern MpReturnCode mp_StatusOrPoller__value(IntPtr statusOrPoller, out IntPtr poller); - #endregion } } diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/Framework/Packet_Unsafe.cs b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/Framework/Packet_Unsafe.cs index f7a5bd0e0..9771e785d 100644 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/Framework/Packet_Unsafe.cs +++ b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/Framework/Packet_Unsafe.cs @@ -127,7 +127,10 @@ internal static partial class UnsafeNativeMethods public static extern MpReturnCode mp_Packet__GetByteString(IntPtr packet, out IntPtr value, out int size); [DllImport(MediaPipeLibrary, ExactSpelling = true)] - public static extern MpReturnCode mp_Packet__ConsumeString(IntPtr packet, out IntPtr statusOrValue); + public static extern MpReturnCode mp_Packet__ConsumeString(IntPtr packet, out IntPtr status, out IntPtr value); + + [DllImport(MediaPipeLibrary, ExactSpelling = true)] + public static extern MpReturnCode mp_Packet__ConsumeByteString(IntPtr packet, out IntPtr status, out IntPtr value, out int size); [DllImport(MediaPipeLibrary, ExactSpelling = true)] public static extern MpReturnCode mp_Packet__ValidateAsString(IntPtr packet, out IntPtr status); diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/Framework/ValidatedGraphConfig_Unsafe.cs b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/Framework/ValidatedGraphConfig_Unsafe.cs index d528922d4..22679e5bf 100644 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/Framework/ValidatedGraphConfig_Unsafe.cs +++ b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/Framework/ValidatedGraphConfig_Unsafe.cs @@ -18,7 +18,7 @@ internal static partial class UnsafeNativeMethods public static extern void mp_ValidatedGraphConfig__delete(IntPtr config); [DllImport(MediaPipeLibrary, ExactSpelling = true)] - public static extern MpReturnCode mp_ValidatedGraphConfig__Initialize__Rcgc(IntPtr config, byte[] serializedConfig, int size, out IntPtr status); + public static extern MpReturnCode mp_ValidatedGraphConfig__Initialize__Rcgc(IntPtr config, byte[] serializedConfig, int size,out IntPtr status); [DllImport(MediaPipeLibrary, ExactSpelling = true)] public static extern MpReturnCode mp_ValidatedGraphConfig__Initialize__PKc(IntPtr config, string graphType, out IntPtr status); @@ -42,10 +42,12 @@ internal static partial class UnsafeNativeMethods public static extern MpReturnCode mp_ValidatedGraphConfig__OutputSidePacketInfos(IntPtr config, out EdgeInfoVector edgeInfoVector); [DllImport(MediaPipeLibrary, ExactSpelling = true)] - public static extern MpReturnCode mp_ValidatedGraphConfig__RegisteredSidePacketTypeName(IntPtr config, string name, out IntPtr statusOrString); + public static extern MpReturnCode mp_ValidatedGraphConfig__RegisteredSidePacketTypeName(IntPtr config, string name, + out IntPtr status, out IntPtr str); [DllImport(MediaPipeLibrary, ExactSpelling = true)] - public static extern MpReturnCode mp_ValidatedGraphConfig__RegisteredStreamTypeName(IntPtr config, string name, out IntPtr statusOrString); + public static extern MpReturnCode mp_ValidatedGraphConfig__RegisteredStreamTypeName(IntPtr config, string name, + out IntPtr status, out IntPtr str); [DllImport(MediaPipeLibrary, ExactSpelling = true)] public static extern MpReturnCode mp_ValidatedGraphConfig__Package(IntPtr config, out IntPtr str); diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/Gpu/GlContext_Unsafe.cs b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/Gpu/GlContext_Unsafe.cs index 7e49aea1d..3f3edd976 100644 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/Gpu/GlContext_Unsafe.cs +++ b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/Gpu/GlContext_Unsafe.cs @@ -20,23 +20,6 @@ internal static partial class UnsafeNativeMethods [DllImport(MediaPipeLibrary, ExactSpelling = true)] public static extern MpReturnCode mp_GlContext_GetCurrent(out IntPtr sharedGlContext); - - [DllImport(MediaPipeLibrary, ExactSpelling = true)] - public static extern MpReturnCode mp_GlContext_Create__P_b([MarshalAs(UnmanagedType.I1)] bool createThread, out IntPtr statusOrSharedGlContext); - - [DllImport(MediaPipeLibrary, ExactSpelling = true)] - public static extern MpReturnCode mp_GlContext_Create__Rgc_b( - IntPtr shareContext, [MarshalAs(UnmanagedType.I1)] bool createThread, out IntPtr statusOrSharedGlContext); - - [DllImport(MediaPipeLibrary, ExactSpelling = true)] - public static extern MpReturnCode mp_GlContext_Create__ui_b( - uint shareContext, [MarshalAs(UnmanagedType.I1)] bool createThread, out IntPtr statusOrSharedGlContext); - -#if UNITY_IOS - [DllImport (MediaPipeLibrary, ExactSpelling = true)] - public static extern MpReturnCode mp_GlContext_Create__Pes_b( - IntPtr sharegroup, [MarshalAs(UnmanagedType.I1)]bool createThread, out IntPtr statusOrSharedGlContext); -#endif #endregion #region GlSyncToken diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/Gpu/GpuBuffer_Safe.cs b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/Gpu/GpuBuffer_Safe.cs index c1b27b134..91f11a796 100644 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/Gpu/GpuBuffer_Safe.cs +++ b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/Gpu/GpuBuffer_Safe.cs @@ -20,11 +20,5 @@ internal static partial class SafeNativeMethods [Pure, DllImport(MediaPipeLibrary, ExactSpelling = true)] public static extern GpuBufferFormat mp_GpuBuffer__format(IntPtr gpuBuffer); - - #region StatusOr - [Pure, DllImport(MediaPipeLibrary, ExactSpelling = true)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool mp_StatusOrGpuBuffer__ok(IntPtr statusOrGpuBuffer); - #endregion } } diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/Gpu/GpuBuffer_Unsafe.cs b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/Gpu/GpuBuffer_Unsafe.cs index 8c70188c4..5a96cc323 100644 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/Gpu/GpuBuffer_Unsafe.cs +++ b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/Gpu/GpuBuffer_Unsafe.cs @@ -19,17 +19,6 @@ internal static partial class UnsafeNativeMethods [DllImport(MediaPipeLibrary, ExactSpelling = true)] public static extern void mp_GpuBuffer__delete(IntPtr gpuBuffer); - #region StatusOr - [DllImport(MediaPipeLibrary, ExactSpelling = true)] - public static extern void mp_StatusOrGpuBuffer__delete(IntPtr statusOrGpuBuffer); - - [DllImport(MediaPipeLibrary, ExactSpelling = true)] - public static extern MpReturnCode mp_StatusOrGpuBuffer__status(IntPtr statusOrGpuBuffer, out IntPtr status); - - [DllImport(MediaPipeLibrary, ExactSpelling = true)] - public static extern MpReturnCode mp_StatusOrGpuBuffer__value(IntPtr statusOrGpuBuffer, out IntPtr gpuBuffer); - #endregion - #region Packet [DllImport(MediaPipeLibrary, ExactSpelling = true)] public static extern MpReturnCode mp__MakeGpuBufferPacket__Rgb(IntPtr gpuBuffer, out IntPtr packet); @@ -38,7 +27,7 @@ internal static partial class UnsafeNativeMethods public static extern MpReturnCode mp__MakeGpuBufferPacket_At__Rgb_Rts(IntPtr gpuBuffer, IntPtr timestamp, out IntPtr packet); [DllImport(MediaPipeLibrary, ExactSpelling = true)] - public static extern MpReturnCode mp_Packet__ConsumeGpuBuffer(IntPtr packet, out IntPtr statusOrGpuBuffer); + public static extern MpReturnCode mp_Packet__ConsumeGpuBuffer(IntPtr packet, out IntPtr status, out IntPtr gpuBuffer); [DllImport(MediaPipeLibrary, ExactSpelling = true)] public static extern MpReturnCode mp_Packet__GetGpuBuffer(IntPtr packet, out IntPtr gpuBuffer); diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/Gpu/GpuResources_Safe.cs b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/Gpu/GpuResources_Safe.cs index 55345a6ed..1236b11a2 100644 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/Gpu/GpuResources_Safe.cs +++ b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/Gpu/GpuResources_Safe.cs @@ -14,9 +14,5 @@ internal static partial class SafeNativeMethods { [Pure, DllImport(MediaPipeLibrary, ExactSpelling = true)] public static extern IntPtr mp_SharedGpuResources__get(IntPtr gpuResources); - - [Pure, DllImport(MediaPipeLibrary, ExactSpelling = true)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool mp_StatusOrGpuResources__ok(IntPtr statusOrGpuResources); } } diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/Gpu/GpuResources_Unsafe.cs b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/Gpu/GpuResources_Unsafe.cs index ae800cdb2..b974ac760 100644 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/Gpu/GpuResources_Unsafe.cs +++ b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/NativeMethods/Gpu/GpuResources_Unsafe.cs @@ -18,18 +18,9 @@ internal static partial class UnsafeNativeMethods public static extern void mp_SharedGpuResources__reset(IntPtr gpuResources); [DllImport(MediaPipeLibrary, ExactSpelling = true)] - public static extern MpReturnCode mp_GpuResources_Create(out IntPtr statusOrGpuResources); + public static extern MpReturnCode mp_GpuResources_Create(out IntPtr status, out IntPtr gpuResources); [DllImport(MediaPipeLibrary, ExactSpelling = true)] - public static extern MpReturnCode mp_GpuResources_Create__Pv(IntPtr externalContext, out IntPtr statusOrGpuResources); - - [DllImport(MediaPipeLibrary, ExactSpelling = true)] - public static extern void mp_StatusOrGpuResources__delete(IntPtr statusOrGpuResources); - - [DllImport(MediaPipeLibrary, ExactSpelling = true)] - public static extern MpReturnCode mp_StatusOrGpuResources__status(IntPtr statusOrGpuResources, out IntPtr status); - - [DllImport(MediaPipeLibrary, ExactSpelling = true)] - public static extern MpReturnCode mp_StatusOrGpuResources__value(IntPtr statusOrGpuResources, out IntPtr gpuResources); + public static extern MpReturnCode mp_GpuResources_Create__Pv(IntPtr externalContext, out IntPtr status, out IntPtr gpuResources); } } diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Unity/GpuManager.cs b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Unity/GpuManager.cs index 2d2d400c2..dd20243c7 100644 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Unity/GpuManager.cs +++ b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Unity/GpuManager.cs @@ -89,10 +89,7 @@ public static IEnumerator Initialize() try { Logger.LogInfo(_TAG, "Initializing GpuResources..."); - var statusOrGpuResources = GpuResources.Create(_CurrentContext); - - statusOrGpuResources.status.AssertOk(); - GpuResources = statusOrGpuResources.Value(); + GpuResources = GpuResources.Create(_CurrentContext); Logger.LogInfo(_TAG, "Initializing GlCalculatorHelper..."); GlCalculatorHelper = new GlCalculatorHelper(); diff --git a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Unity/OutputStream.cs b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Unity/OutputStream.cs index ebf90ebdd..e5a112774 100644 --- a/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Unity/OutputStream.cs +++ b/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Unity/OutputStream.cs @@ -5,7 +5,6 @@ // https://opensource.org/licenses/MIT. using System; -using System.Collections.Generic; namespace Mediapipe.Unity { @@ -111,31 +110,18 @@ public OutputStream(CalculatorGraph calculatorGraph, string streamName, string p this.presenceStreamName = presenceStreamName; } - public Status StartPolling() + public void StartPolling() { _outputPacket = new TPacket(); - - var statusOrPoller = calculatorGraph.AddOutputStreamPoller(streamName, observeTimestampBounds); - var status = statusOrPoller.status; - if (status.Ok()) - { - _poller = statusOrPoller.Value(); - } + _poller = calculatorGraph.AddOutputStreamPoller(streamName, observeTimestampBounds); if (presenceStreamName == null) { - return status; + return; } _presencePacket = new BoolPacket(); - - var statusOrPresencePoller = calculatorGraph.AddOutputStreamPoller(presenceStreamName, false); - status = statusOrPresencePoller.status; - if (status.Ok()) - { - _presencePoller = statusOrPresencePoller.Value(); - } - return status; + _presencePoller = calculatorGraph.AddOutputStreamPoller(presenceStreamName, false); } public void AddListener(EventHandler> callback) @@ -259,9 +245,15 @@ public bool TryConsumeNext(out TValue value, long timestampThreshold, bool allow } _lastTimestampMicrosec = timestampMicrosec; - var statusOrValue = _outputPacket.Consume(); - value = statusOrValue.ValueOr(); + try + { + value = _outputPacket.Consume(); + } + catch + { + value = default; + } return true; } @@ -364,9 +356,15 @@ protected bool TryConsumePacketValue(Packet packet, out TValue value, lo if (!packet.IsEmpty()) { _lastTimestampMicrosec = currentMicrosec; - var statusOrValue = packet.Consume(); - value = statusOrValue.ValueOr(); + try + { + value = packet.Consume(); + } + catch + { + value = default; + } return true; } diff --git a/Packages/com.github.homuler.mediapipe/Tests/EditMode/Framework/Packet/ImageFramePacketTest.cs b/Packages/com.github.homuler.mediapipe/Tests/EditMode/Framework/Packet/ImageFramePacketTest.cs index 359166daa..b34dd2e25 100644 --- a/Packages/com.github.homuler.mediapipe/Tests/EditMode/Framework/Packet/ImageFramePacketTest.cs +++ b/Packages/com.github.homuler.mediapipe/Tests/EditMode/Framework/Packet/ImageFramePacketTest.cs @@ -16,12 +16,10 @@ public void Ctor_ShouldInstantiatePacket_When_CalledWithNoArguments() { using (var packet = new ImageFramePacket()) { - using (var statusOrImageFrame = packet.Consume()) - { - Assert.AreEqual(Status.StatusCode.Internal, packet.ValidateAsType().Code()); - Assert.AreEqual(Status.StatusCode.Internal, statusOrImageFrame.status.Code()); - Assert.AreEqual(Timestamp.Unset(), packet.Timestamp()); - } + Assert.AreEqual(Status.StatusCode.Internal, packet.ValidateAsType().Code()); + var exception = Assert.Throws(() => { _ = packet.Consume(); }); + Assert.AreEqual(Status.StatusCode.Internal, exception.statusCode); + Assert.AreEqual(Timestamp.Unset(), packet.Timestamp()); } } @@ -36,15 +34,8 @@ public void Ctor_ShouldInstantiatePacket_When_CalledWithValue() Assert.True(packet.ValidateAsType().Ok()); Assert.AreEqual(Timestamp.Unset(), packet.Timestamp()); - using (var statusOrImageFrame = packet.Consume()) - { - Assert.True(statusOrImageFrame.Ok()); - - using (var imageFrame = statusOrImageFrame.Value()) - { - Assert.AreEqual(ImageFormat.Types.Format.Unknown, imageFrame.Format()); - } - } + var imageFrame = packet.Consume(); + Assert.AreEqual(ImageFormat.Types.Format.Unknown, imageFrame.Format()); } } @@ -60,16 +51,9 @@ public void Ctor_ShouldInstantiatePacket_When_CalledWithValueAndTimestamp() Assert.True(srcImageFrame.isDisposed); Assert.True(packet.ValidateAsType().Ok()); - using (var statusOrImageFrame = packet.Consume()) - { - Assert.True(statusOrImageFrame.Ok()); - - using (var imageFrame = statusOrImageFrame.Value()) - { - Assert.AreEqual(ImageFormat.Types.Format.Unknown, imageFrame.Format()); - Assert.AreEqual(timestamp, packet.Timestamp()); - } - } + var imageFrame = packet.Consume(); + Assert.AreEqual(ImageFormat.Types.Format.Unknown, imageFrame.Format()); + Assert.AreEqual(timestamp, packet.Timestamp()); } } } @@ -149,17 +133,10 @@ public void Consume_ShouldReturnImageFrame() { using (var packet = new ImageFramePacket(new ImageFrame(ImageFormat.Types.Format.Sbgra, 10, 10))) { - using (var statusOrImageFrame = packet.Consume()) - { - Assert.True(statusOrImageFrame.Ok()); - - using (var imageFrame = statusOrImageFrame.Value()) - { - Assert.AreEqual(ImageFormat.Types.Format.Sbgra, imageFrame.Format()); - Assert.AreEqual(10, imageFrame.Width()); - Assert.AreEqual(10, imageFrame.Height()); - } - } + var imageFrame = packet.Consume(); + Assert.AreEqual(ImageFormat.Types.Format.Sbgra, imageFrame.Format()); + Assert.AreEqual(10, imageFrame.Width()); + Assert.AreEqual(10, imageFrame.Height()); } } #endregion diff --git a/Packages/com.github.homuler.mediapipe/Tests/EditMode/Framework/Packet/StringPacketTest.cs b/Packages/com.github.homuler.mediapipe/Tests/EditMode/Framework/Packet/StringPacketTest.cs index f5b3ccc7e..687f3abd6 100644 --- a/Packages/com.github.homuler.mediapipe/Tests/EditMode/Framework/Packet/StringPacketTest.cs +++ b/Packages/com.github.homuler.mediapipe/Tests/EditMode/Framework/Packet/StringPacketTest.cs @@ -5,7 +5,6 @@ // https://opensource.org/licenses/MIT. using NUnit.Framework; -using System.Text.RegularExpressions; namespace Mediapipe.Tests { @@ -136,28 +135,22 @@ public void GetByteArray_ShouldReturnByteArray() #region #Consume [Test] - public void Consume_ShouldReturnStatusOrString_When_PacketIsEmpty() + public void Consume_ShouldThrowBadStatusException_When_PacketIsEmpty() { using (var packet = new StringPacket()) { - using (var statusOrString = packet.Consume()) - { - Assert.False(statusOrString.Ok()); - Assert.AreEqual(Status.StatusCode.Internal, statusOrString.status.Code()); - } + var exception = Assert.Throws(() => { _ = packet.Consume(); }); + Assert.AreEqual(Status.StatusCode.Internal, exception.statusCode); } } [Test] - public void Consume_ShouldReturnStatusOrString_When_PacketIsNotEmpty() + public void Consume_ShouldReturnString_When_PacketIsNotEmpty() { using (var packet = new StringPacket("abc")) { - using (var statusOrString = packet.Consume()) - { - Assert.True(statusOrString.Ok()); - Assert.AreEqual("abc", statusOrString.Value()); - } + var str = packet.Consume(); + Assert.AreEqual("abc", str); Assert.True(packet.IsEmpty()); } } diff --git a/Packages/com.github.homuler.mediapipe/Tests/EditMode/Framework/Port/StatusOrGpuResourcesTest.cs b/Packages/com.github.homuler.mediapipe/Tests/EditMode/Framework/Port/StatusOrGpuResourcesTest.cs deleted file mode 100644 index 1412e83dd..000000000 --- a/Packages/com.github.homuler.mediapipe/Tests/EditMode/Framework/Port/StatusOrGpuResourcesTest.cs +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright (c) 2021 homuler -// -// Use of this source code is governed by an MIT-style -// license that can be found in the LICENSE file or at -// https://opensource.org/licenses/MIT. - -using NUnit.Framework; - -namespace Mediapipe.Tests -{ - public class StatusOrGpuResourcesTest - { - #region #status - [Test, GpuOnly] - public void Status_ShouldReturnOk_When_StatusIsOk() - { - using (var statusOrGpuResources = GpuResources.Create()) - { - Assert.AreEqual(Status.StatusCode.Ok, statusOrGpuResources.status.Code()); - } - } - #endregion - - #region #isDisposed - [Test, GpuOnly] - public void IsDisposed_ShouldReturnFalse_When_NotDisposedYet() - { - using (var statusOrGpuResources = GpuResources.Create()) - { - Assert.False(statusOrGpuResources.isDisposed); - } - } - - [Test, GpuOnly] - public void IsDisposed_ShouldReturnTrue_When_AlreadyDisposed() - { - var statusOrGpuResources = GpuResources.Create(); - statusOrGpuResources.Dispose(); - - Assert.True(statusOrGpuResources.isDisposed); - } - #endregion - - #region #Value - [Test, GpuOnly] - public void Value_ShouldReturnGpuResources_When_StatusIsOk() - { - using (var statusOrGpuResources = GpuResources.Create()) - { - Assert.True(statusOrGpuResources.Ok()); - - using (var gpuResources = statusOrGpuResources.Value()) - { - Assert.IsInstanceOf(gpuResources); - Assert.True(statusOrGpuResources.isDisposed); - } - } - } - #endregion - } -} diff --git a/Packages/com.github.homuler.mediapipe/Tests/EditMode/Framework/Port/StatusOrGpuResourcesTest.cs.meta b/Packages/com.github.homuler.mediapipe/Tests/EditMode/Framework/Port/StatusOrGpuResourcesTest.cs.meta deleted file mode 100644 index e7545eae8..000000000 --- a/Packages/com.github.homuler.mediapipe/Tests/EditMode/Framework/Port/StatusOrGpuResourcesTest.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 744f3edd2e0a5c864b1e59a13c017bbd -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Packages/com.github.homuler.mediapipe/Tests/EditMode/Framework/Port/StatusOrImageFrameTest.cs b/Packages/com.github.homuler.mediapipe/Tests/EditMode/Framework/Port/StatusOrImageFrameTest.cs deleted file mode 100644 index 1d60df797..000000000 --- a/Packages/com.github.homuler.mediapipe/Tests/EditMode/Framework/Port/StatusOrImageFrameTest.cs +++ /dev/null @@ -1,71 +0,0 @@ -// Copyright (c) 2021 homuler -// -// Use of this source code is governed by an MIT-style -// license that can be found in the LICENSE file or at -// https://opensource.org/licenses/MIT. - -using NUnit.Framework; - -namespace Mediapipe.Tests -{ - public class StatusOrImageFrameTest - { - #region #status - [Test] - public void Status_ShouldReturnOk_When_StatusIsOk() - { - using (var statusOrImageFrame = InitializeSubject()) - { - Assert.True(statusOrImageFrame.Ok()); - Assert.AreEqual(Status.StatusCode.Ok, statusOrImageFrame.status.Code()); - } - } - #endregion - - #region #isDisposed - [Test] - public void IsDisposed_ShouldReturnFalse_When_NotDisposedYet() - { - using (var statusOrImageFrame = InitializeSubject()) - { - Assert.False(statusOrImageFrame.isDisposed); - } - } - - [Test] - public void IsDisposed_ShouldReturnTrue_When_AlreadyDisposed() - { - var statusOrImageFrame = InitializeSubject(); - statusOrImageFrame.Dispose(); - - Assert.True(statusOrImageFrame.isDisposed); - } - #endregion - - #region #Value - [Test] - public void Value_ShouldReturnImageFrame_When_StatusIsOk() - { - using (var statusOrImageFrame = InitializeSubject()) - { - Assert.True(statusOrImageFrame.Ok()); - - using (var imageFrame = statusOrImageFrame.Value()) - { - Assert.AreEqual(10, imageFrame.Width()); - Assert.AreEqual(10, imageFrame.Height()); - Assert.True(statusOrImageFrame.isDisposed); - } - } - } - #endregion - - private StatusOrImageFrame InitializeSubject() - { - var imageFrame = new ImageFrame(ImageFormat.Types.Format.Sbgra, 10, 10); - var packet = new ImageFramePacket(imageFrame, new Timestamp(1)); - - return (StatusOrImageFrame)packet.Consume(); - } - } -} diff --git a/Packages/com.github.homuler.mediapipe/Tests/EditMode/Framework/Port/StatusOrImageFrameTest.cs.meta b/Packages/com.github.homuler.mediapipe/Tests/EditMode/Framework/Port/StatusOrImageFrameTest.cs.meta deleted file mode 100644 index dd6cada8a..000000000 --- a/Packages/com.github.homuler.mediapipe/Tests/EditMode/Framework/Port/StatusOrImageFrameTest.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 466caabcab9db68b9bf6cd8b2ea6829a -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Packages/com.github.homuler.mediapipe/Tests/EditMode/Framework/Port/StatusOrStringTest.cs b/Packages/com.github.homuler.mediapipe/Tests/EditMode/Framework/Port/StatusOrStringTest.cs deleted file mode 100644 index 25c761d2d..000000000 --- a/Packages/com.github.homuler.mediapipe/Tests/EditMode/Framework/Port/StatusOrStringTest.cs +++ /dev/null @@ -1,87 +0,0 @@ -// Copyright (c) 2021 homuler -// -// Use of this source code is governed by an MIT-style -// license that can be found in the LICENSE file or at -// https://opensource.org/licenses/MIT. - -using NUnit.Framework; - -namespace Mediapipe.Tests -{ - public class StatusOrStringTest - { - #region #status - [Test] - public void Status_ShouldReturnOk_When_StatusIsOk() - { - using (var statusOrString = InitializeSubject("")) - { - Assert.True(statusOrString.Ok()); - Assert.AreEqual(Status.StatusCode.Ok, statusOrString.status.Code()); - } - } - #endregion - - #region #isDisposed - [Test] - public void IsDisposed_ShouldReturnFalse_When_NotDisposedYet() - { - using (var statusOrString = InitializeSubject("")) - { - Assert.False(statusOrString.isDisposed); - } - } - - [Test] - public void IsDisposed_ShouldReturnTrue_When_AlreadyDisposed() - { - var statusOrString = InitializeSubject(""); - statusOrString.Dispose(); - - Assert.True(statusOrString.isDisposed); - } - #endregion - - #region #Value - [Test] - public void Value_ShouldReturnString_When_StatusIsOk() - { - var bytes = new byte[] { (byte)'a', (byte)'b', 0, (byte)'c' }; - using (var statusOrString = InitializeSubject(bytes)) - { - Assert.True(statusOrString.Ok()); - Assert.AreEqual("ab", statusOrString.Value()); - } - } - #endregion - - #region #ValueAsByteArray - [Test] - public void ValueAsByteArray_ShouldReturnByteArray_When_StatusIsOk() - { - var bytes = new byte[] { (byte)'a', (byte)'b', 0, (byte)'c' }; - using (var statusOrString = InitializeSubject(bytes)) - { - Assert.True(statusOrString.Ok()); - Assert.AreEqual(bytes, statusOrString.ValueAsByteArray()); - } - } - #endregion - - private StatusOrString InitializeSubject(string str) - { - using (var packet = new StringPacket(str)) - { - return (StatusOrString)packet.Consume(); - } - } - - private StatusOrString InitializeSubject(byte[] bytes) - { - using (var packet = new StringPacket(bytes)) - { - return (StatusOrString)packet.Consume(); - } - } - } -} diff --git a/Packages/com.github.homuler.mediapipe/Tests/EditMode/Framework/Port/StatusOrStringTest.cs.meta b/Packages/com.github.homuler.mediapipe/Tests/EditMode/Framework/Port/StatusOrStringTest.cs.meta deleted file mode 100644 index e969bed18..000000000 --- a/Packages/com.github.homuler.mediapipe/Tests/EditMode/Framework/Port/StatusOrStringTest.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 033bc341009a18e46920a405cd163bfb -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Packages/com.github.homuler.mediapipe/Tests/EditMode/Framework/Port/StatusTest.cs b/Packages/com.github.homuler.mediapipe/Tests/EditMode/Framework/Port/StatusTest.cs index 49d0aaaac..3fe3f1c7e 100644 --- a/Packages/com.github.homuler.mediapipe/Tests/EditMode/Framework/Port/StatusTest.cs +++ b/Packages/com.github.homuler.mediapipe/Tests/EditMode/Framework/Port/StatusTest.cs @@ -105,9 +105,8 @@ public void AssertOk_ShouldThrow_When_StatusIsNotOk() { using (var status = Status.FailedPrecondition()) { -#pragma warning disable IDE0058 - Assert.Throws(() => { status.AssertOk(); }); -#pragma warning restore IDE0058 + var exception = Assert.Throws(() => { status.AssertOk(); }); + Assert.AreEqual(Status.StatusCode.FailedPrecondition, exception.statusCode); } } #endregion diff --git a/Packages/com.github.homuler.mediapipe/Tests/EditMode/Framework/ValidatedGraphConfigTest.cs b/Packages/com.github.homuler.mediapipe/Tests/EditMode/Framework/ValidatedGraphConfigTest.cs index 7e0bff10d..2966c8402 100644 --- a/Packages/com.github.homuler.mediapipe/Tests/EditMode/Framework/ValidatedGraphConfigTest.cs +++ b/Packages/com.github.homuler.mediapipe/Tests/EditMode/Framework/ValidatedGraphConfigTest.cs @@ -623,10 +623,8 @@ public void RegisteredSidePacketTypeName_ShouldReturnInvalidArgumentError_When_T { using (var config = new ValidatedGraphConfig()) { - using (var statusOrString = config.RegisteredSidePacketTypeName("max_in_flight")) - { - Assert.AreEqual(Status.StatusCode.InvalidArgument, statusOrString.status.Code()); - } + var exception = Assert.Throws(() => { _ = config.RegisteredSidePacketTypeName("max_in_flight"); }); + Assert.AreEqual(Status.StatusCode.InvalidArgument, exception.statusCode); } } @@ -636,10 +634,8 @@ public void RegisteredSidePacketTypeName_ShouldReturnUnknownError_When_TheSidePa using (var config = new ValidatedGraphConfig()) { config.Initialize(CalculatorGraphConfig.Parser.ParseFromTextFormat(_FlowLimiterConfigText)).AssertOk(); - using (var statusOrString = config.RegisteredSidePacketTypeName("max_in_flight")) - { - Assert.AreEqual(Status.StatusCode.Unknown, statusOrString.status.Code()); - } + var exception = Assert.Throws(() => { _ = config.RegisteredSidePacketTypeName("max_in_flight"); }); + Assert.AreEqual(Status.StatusCode.Unknown, exception.statusCode); } } #endregion @@ -650,10 +646,8 @@ public void RegisteredStreamTypeName_ShouldReturnInvalidArgumentError_When_TheSt { using (var config = new ValidatedGraphConfig()) { - using (var statusOrString = config.RegisteredStreamTypeName("in")) - { - Assert.AreEqual(Status.StatusCode.InvalidArgument, statusOrString.status.Code()); - } + var exception = Assert.Throws(() => { _ = config.RegisteredStreamTypeName("in"); }); + Assert.AreEqual(Status.StatusCode.InvalidArgument, exception.statusCode); } } @@ -663,10 +657,8 @@ public void RegisteredStreamTypeName_ShouldReturnUnknownError_When_TheStreamType using (var config = new ValidatedGraphConfig()) { config.Initialize(CalculatorGraphConfig.Parser.ParseFromTextFormat(_PassThroughConfigText)).AssertOk(); - using (var statusOrString = config.RegisteredStreamTypeName("in")) - { - Assert.AreEqual(Status.StatusCode.Unknown, statusOrString.status.Code()); - } + var exception = Assert.Throws(() => { _ = config.RegisteredStreamTypeName("in"); }); + Assert.AreEqual(Status.StatusCode.Unknown, exception.statusCode); } } #endregion diff --git a/Packages/com.github.homuler.mediapipe/Tests/EditMode/Gpu/GlCalculatorHelperTest.cs b/Packages/com.github.homuler.mediapipe/Tests/EditMode/Gpu/GlCalculatorHelperTest.cs index 5d3b7dc2e..61ad69170 100644 --- a/Packages/com.github.homuler.mediapipe/Tests/EditMode/Gpu/GlCalculatorHelperTest.cs +++ b/Packages/com.github.homuler.mediapipe/Tests/EditMode/Gpu/GlCalculatorHelperTest.cs @@ -49,7 +49,7 @@ public void InitializeForTest_ShouldInitialize() using (var glCalculatorHelper = new GlCalculatorHelper()) { Assert.False(glCalculatorHelper.Initialized()); - glCalculatorHelper.InitializeForTest(GpuResources.Create().Value()); + glCalculatorHelper.InitializeForTest(GpuResources.Create()); Assert.True(glCalculatorHelper.Initialized()); } } @@ -61,7 +61,7 @@ public void RunInGlContext_ShouldReturnOk_When_FunctionReturnsOk() { using (var glCalculatorHelper = new GlCalculatorHelper()) { - glCalculatorHelper.InitializeForTest(GpuResources.Create().Value()); + glCalculatorHelper.InitializeForTest(GpuResources.Create()); var status = glCalculatorHelper.RunInGlContext(() => { }); Assert.True(status.Ok()); @@ -73,7 +73,7 @@ public void RunInGlContext_ShouldReturnInternal_When_FunctionThrows() { using (var glCalculatorHelper = new GlCalculatorHelper()) { - glCalculatorHelper.InitializeForTest(GpuResources.Create().Value()); + glCalculatorHelper.InitializeForTest(GpuResources.Create()); var status = glCalculatorHelper.RunInGlContext((GlCalculatorHelper.GlFunction)(() => { throw new Exception("Function Throws"); })); Assert.AreEqual(Status.StatusCode.Internal, status.Code()); @@ -87,7 +87,7 @@ public void CreateSourceTexture_ShouldReturnGlTexture_When_CalledWithImageFrame( { using (var glCalculatorHelper = new GlCalculatorHelper()) { - glCalculatorHelper.InitializeForTest(GpuResources.Create().Value()); + glCalculatorHelper.InitializeForTest(GpuResources.Create()); using (var imageFrame = new ImageFrame(ImageFormat.Types.Format.Srgba, 32, 24)) { @@ -113,7 +113,7 @@ public void CreateSourceTexture_ShouldFail_When_ImageFrameFormatIsInvalid() { using (var glCalculatorHelper = new GlCalculatorHelper()) { - glCalculatorHelper.InitializeForTest(GpuResources.Create().Value()); + glCalculatorHelper.InitializeForTest(GpuResources.Create()); using (var imageFrame = new ImageFrame(ImageFormat.Types.Format.Sbgra, 32, 24)) { @@ -138,7 +138,7 @@ public void CreateDestinationTexture_ShouldReturnGlTexture_When_GpuBufferFormatI { using (var glCalculatorHelper = new GlCalculatorHelper()) { - glCalculatorHelper.InitializeForTest(GpuResources.Create().Value()); + glCalculatorHelper.InitializeForTest(GpuResources.Create()); var status = glCalculatorHelper.RunInGlContext(() => { @@ -159,7 +159,7 @@ public void Framebuffer_ShouldReturnGLName() { using (var glCalculatorHelper = new GlCalculatorHelper()) { - glCalculatorHelper.InitializeForTest(GpuResources.Create().Value()); + glCalculatorHelper.InitializeForTest(GpuResources.Create()); // default frame buffer Assert.AreEqual(0, glCalculatorHelper.framebuffer); @@ -173,7 +173,7 @@ public void GetGlContext_ShouldReturnCurrentContext() { using (var glCalculatorHelper = new GlCalculatorHelper()) { - glCalculatorHelper.InitializeForTest(GpuResources.Create().Value()); + glCalculatorHelper.InitializeForTest(GpuResources.Create()); using (var glContext = glCalculatorHelper.GetGlContext()) { diff --git a/Packages/com.github.homuler.mediapipe/Tests/EditMode/Gpu/GlContextTest.cs b/Packages/com.github.homuler.mediapipe/Tests/EditMode/Gpu/GlContextTest.cs index bdc44d66f..f10a83dfb 100644 --- a/Packages/com.github.homuler.mediapipe/Tests/EditMode/Gpu/GlContextTest.cs +++ b/Packages/com.github.homuler.mediapipe/Tests/EditMode/Gpu/GlContextTest.cs @@ -25,7 +25,7 @@ public void GetCurrent_ShouldReturnCurrentContext_When_CalledInGlContext() { using (var glCalculatorHelper = new GlCalculatorHelper()) { - glCalculatorHelper.InitializeForTest(GpuResources.Create().Value()); + glCalculatorHelper.InitializeForTest(GpuResources.Create()); glCalculatorHelper.RunInGlContext(() => { @@ -74,7 +74,7 @@ private GlContext GetGlContext() { using (var glCalculatorHelper = new GlCalculatorHelper()) { - glCalculatorHelper.InitializeForTest(GpuResources.Create().Value()); + glCalculatorHelper.InitializeForTest(GpuResources.Create()); return glCalculatorHelper.GetGlContext(); } diff --git a/Packages/com.github.homuler.mediapipe/Tests/EditMode/Gpu/GpuResourcesTest.cs b/Packages/com.github.homuler.mediapipe/Tests/EditMode/Gpu/GpuResourcesTest.cs index 6c2281bd3..aaec34e87 100644 --- a/Packages/com.github.homuler.mediapipe/Tests/EditMode/Gpu/GpuResourcesTest.cs +++ b/Packages/com.github.homuler.mediapipe/Tests/EditMode/Gpu/GpuResourcesTest.cs @@ -10,22 +10,11 @@ namespace Mediapipe.Tests { public class GpuResourcesTest { - #region Create - [Test, GpuOnly] - public void Create_ShouldReturnStatusOrGpuResources() - { - using (var statusOrGpuResources = GpuResources.Create()) - { - Assert.True(statusOrGpuResources.Ok()); - } - } - #endregion - #region #isDisposed [Test, GpuOnly] public void IsDisposed_ShouldReturnFalse_When_NotDisposedYet() { - using (var gpuResources = GpuResources.Create().Value()) + using (var gpuResources = GpuResources.Create()) { Assert.False(gpuResources.isDisposed); } @@ -34,7 +23,7 @@ public void IsDisposed_ShouldReturnFalse_When_NotDisposedYet() [Test, GpuOnly] public void IsDisposed_ShouldReturnTrue_When_AlreadyDisposed() { - var gpuResources = GpuResources.Create().Value(); + var gpuResources = GpuResources.Create(); gpuResources.Dispose(); Assert.True(gpuResources.isDisposed); diff --git a/Packages/com.github.homuler.mediapipe/Tests/EditMode/Tasks/Core/TaskRunnerTest.cs b/Packages/com.github.homuler.mediapipe/Tests/EditMode/Tasks/Core/TaskRunnerTest.cs index c10a85180..8b5f18ec1 100644 --- a/Packages/com.github.homuler.mediapipe/Tests/EditMode/Tasks/Core/TaskRunnerTest.cs +++ b/Packages/com.github.homuler.mediapipe/Tests/EditMode/Tasks/Core/TaskRunnerTest.cs @@ -32,9 +32,8 @@ public class TaskRunnerTest [Test] public void Create_ShouldThrowException_When_CalledWithInvalidConfig() { -#pragma warning disable IDE0058 - Assert.Throws(() => TaskRunner.Create(new CalculatorGraphConfig())); -#pragma warning restore IDE0058 + var exception = Assert.Throws(() => TaskRunner.Create(new CalculatorGraphConfig())); + Assert.AreEqual(Status.StatusCode.InvalidArgument, exception.statusCode); } [Test] @@ -76,9 +75,8 @@ public void Process_ShouldThrowException_When_InputIsInvalid() { using (var packetMap = new PacketMap()) { -#pragma warning disable IDE0058 - Assert.Throws(() => taskRunner.Process(packetMap)); -#pragma warning restore IDE0058 + var exception = Assert.Throws(() => taskRunner.Process(packetMap)); + Assert.AreEqual(Status.StatusCode.InvalidArgument, exception.statusCode); } } } @@ -107,9 +105,8 @@ public void Send_ShouldThrowException_When_CallbackIsNotSet() using (var packetMap = new PacketMap()) { packetMap.Emplace("in", new IntPacket(1, new Timestamp(1))); -#pragma warning disable IDE0058 - Assert.Throws(() => taskRunner.Send(packetMap)); -#pragma warning restore IDE0058 + var exception = Assert.Throws(() => taskRunner.Send(packetMap)); + Assert.AreEqual(Status.StatusCode.InvalidArgument, exception.statusCode); } } } @@ -121,9 +118,8 @@ public void Send_ShouldThrowException_When_InputIsInvalid() { using (var packetMap = new PacketMap()) { -#pragma warning disable IDE0058 - Assert.Throws(() => taskRunner.Send(packetMap)); -#pragma warning restore IDE0058 + var exception = Assert.Throws(() => taskRunner.Send(packetMap)); + Assert.AreEqual(Status.StatusCode.InvalidArgument, exception.statusCode); } } } @@ -158,9 +154,8 @@ public void Close_ShouldThrowException_When_AlreadyClosed() using (var taskRunner = TaskRunner.Create(passThroughConfig)) { taskRunner.Close(); -#pragma warning disable IDE0058 - Assert.Throws(() => taskRunner.Close()); -#pragma warning restore IDE0058 + var exception = Assert.Throws(() => taskRunner.Close()); + Assert.AreEqual(Status.StatusCode.InvalidArgument, exception.statusCode); } } #endregion @@ -181,9 +176,8 @@ public void Restart_ShouldThrowException_When_Closed() using (var taskRunner = TaskRunner.Create(passThroughConfig)) { taskRunner.Close(); -#pragma warning disable IDE0058 - Assert.Throws(() => taskRunner.Restart()); -#pragma warning restore IDE0058 + var exception = Assert.Throws(() => taskRunner.Restart()); + Assert.AreEqual(Status.StatusCode.InvalidArgument, exception.statusCode); } } #endregion diff --git a/mediapipe_api/external/absl/statusor.h b/mediapipe_api/external/absl/statusor.h index c5d4ca6b8..fb9bd0c87 100644 --- a/mediapipe_api/external/absl/statusor.h +++ b/mediapipe_api/external/absl/statusor.h @@ -12,33 +12,25 @@ #include "absl/status/statusor.h" #include "mediapipe_api/common.h" -template -inline bool absl_StatusOr__ok(absl::StatusOr* status_or) { - return status_or->ok(); +inline void copy_absl_StatusOrString(absl::StatusOr&& status_or_string, absl::Status** status_out, const char** string_out) { + *status_out = new absl::Status{status_or_string.status()}; + if (status_or_string.ok()) { + *string_out = strcpy_to_heap(status_or_string.value()); + } } -template -inline MpReturnCode absl_StatusOr__status(absl::StatusOr* status_or, absl::Status** status_out) { - TRY - *status_out = new absl::Status{status_or->status()}; - RETURN_CODE(MpReturnCode::Success); - CATCH_EXCEPTION +inline void copy_absl_StatusOrString(absl::StatusOr&& status_or_string, absl::Status** status_out, const char** string_out, int* size_out) { + *status_out = new absl::Status{status_or_string.status()}; + if (status_or_string.ok()) { + auto& str = status_or_string.value(); + auto length = str.size(); + auto bytes = new char[length]; + memcpy(bytes, str.c_str(), length); + + *string_out = bytes; + *size_out = length; + } } -template -inline MpReturnCode absl_StatusOr__value(absl::StatusOr* status_or, T* value_out) { - TRY_ALL - *value_out = std::move(*status_or).value(); - RETURN_CODE(MpReturnCode::Success); - CATCH_ALL -} - -template -inline MpReturnCode absl_StatusOr__value(absl::StatusOr* status_or, T** value_out) { - TRY_ALL - *value_out = new T{std::move(*status_or).value()}; - RETURN_CODE(MpReturnCode::Success); - CATCH_ALL -} #endif // MEDIAPIPE_API_EXTERNAL_ABSL_STATUSOR_H_ diff --git a/mediapipe_api/external/stdlib.cc b/mediapipe_api/external/stdlib.cc index 04dd686d9..1fd9a35ce 100644 --- a/mediapipe_api/external/stdlib.cc +++ b/mediapipe_api/external/stdlib.cc @@ -20,32 +20,3 @@ MpReturnCode std_string__PKc_i(const char* src, int size, std::string** str_out) } void std_string__swap__Rstr(std::string* src, std::string* dst) { src->swap(*dst); } - -void mp_StatusOrString__delete(absl::StatusOr* status_or_string) { delete status_or_string; } - -bool mp_StatusOrString__ok(absl::StatusOr* status_or_string) { return status_or_string->ok(); } - -MpReturnCode mp_StatusOrString__status(absl::StatusOr* status_or_string, absl::Status** status_out) { - return absl_StatusOr__status(status_or_string, status_out); -} - -MpReturnCode mp_StatusOrString__value(absl::StatusOr* status_or_string, const char** value_out) { - TRY_ALL - auto str = std::move(*status_or_string).value(); - *value_out = strcpy_to_heap(str); - RETURN_CODE(MpReturnCode::Success); - CATCH_ALL -} - -MpReturnCode mp_StatusOrString__bytearray(absl::StatusOr* status_or_string, const char** value_out, int* size_out) { - TRY_ALL - auto str = std::move(*status_or_string).value(); - auto length = str.size(); - auto bytes = new char[length]; - memcpy(bytes, str.c_str(), length); - - *value_out = bytes; - *size_out = length; - RETURN_CODE(MpReturnCode::Success); - CATCH_ALL -} diff --git a/mediapipe_api/external/stdlib.h b/mediapipe_api/external/stdlib.h index f5932fe8c..36b6d7b55 100644 --- a/mediapipe_api/external/stdlib.h +++ b/mediapipe_api/external/stdlib.h @@ -22,13 +22,6 @@ MP_CAPI(void) std_string__delete(std::string* str); MP_CAPI(MpReturnCode) std_string__PKc_i(const char* src, int size, std::string** str_out); MP_CAPI(void) std_string__swap__Rstr(std::string* src, std::string* dst); -// StatusOr API -MP_CAPI(void) mp_StatusOrString__delete(absl::StatusOr* status_or_string); -MP_CAPI(bool) mp_StatusOrString__ok(absl::StatusOr* status_or_string); -MP_CAPI(MpReturnCode) mp_StatusOrString__status(absl::StatusOr* status_or_string, absl::Status** status_out); -MP_CAPI(MpReturnCode) mp_StatusOrString__value(absl::StatusOr* status_or_string, const char** value_out); -MP_CAPI(MpReturnCode) mp_StatusOrString__bytearray(absl::StatusOr* status_or_string, const char** value_out, int* size_out); - } // extern "C" #endif // MEDIAPIPE_API_EXTERNAL_STDLIB_H_ diff --git a/mediapipe_api/framework/BUILD b/mediapipe_api/framework/BUILD index e5ae2d8b8..d97550b6c 100644 --- a/mediapipe_api/framework/BUILD +++ b/mediapipe_api/framework/BUILD @@ -31,7 +31,6 @@ cc_library( ":packet", "//mediapipe_api:common", "//mediapipe_api/external/absl:status", - "//mediapipe_api/external/absl:statusor", "@com_google_mediapipe//mediapipe/framework:calculator_framework", ] + select({ "@com_google_mediapipe//mediapipe/gpu:disable_gpu": [], @@ -49,7 +48,6 @@ cc_library( hdrs = ["output_stream_poller.h"], deps = [ "//mediapipe_api:common", - "//mediapipe_api/external/absl:statusor", "@com_google_mediapipe//mediapipe/framework:calculator_framework", ], alwayslink = True, @@ -85,6 +83,7 @@ cc_library( deps = [ "//mediapipe_api:common", "//mediapipe_api/external:protobuf", + "//mediapipe_api/external/absl:statusor", "@com_google_mediapipe//mediapipe/framework:validated_graph_config", ], alwayslink = True, diff --git a/mediapipe_api/framework/calculator_graph.cc b/mediapipe_api/framework/calculator_graph.cc index 5341211aa..74f34643d 100644 --- a/mediapipe_api/framework/calculator_graph.cc +++ b/mediapipe_api/framework/calculator_graph.cc @@ -69,10 +69,15 @@ MpReturnCode mp_CalculatorGraph__ObserveOutputStream__PKc_PF_b(mediapipe::Calcul CATCH_ALL } -MpReturnCode mp_CalculatorGraph__AddOutputStreamPoller__PKc_b(mediapipe::CalculatorGraph* graph, const char* stream_name, bool observe_timestamp_bounds, - mediapipe::StatusOrPoller** status_or_poller_out) { +MpReturnCode mp_CalculatorGraph__AddOutputStreamPoller__PKc_b(mediapipe::CalculatorGraph* graph, const char* stream_name, + bool observe_timestamp_bounds, + absl::Status** status_out, mediapipe::OutputStreamPoller** poller_out) { TRY - *status_or_poller_out = new mediapipe::StatusOrPoller{graph->AddOutputStreamPoller(stream_name, observe_timestamp_bounds)}; + auto status_or_poller = graph->AddOutputStreamPoller(stream_name, observe_timestamp_bounds); + *status_out = new absl::Status{status_or_poller.status()}; + if (status_or_poller.ok()) { + *poller_out = new mediapipe::OutputStreamPoller{std::move(status_or_poller).value()}; + } RETURN_CODE(MpReturnCode::Success); CATCH_EXCEPTION } diff --git a/mediapipe_api/framework/calculator_graph.h b/mediapipe_api/framework/calculator_graph.h index 19e544400..e7abc0300 100644 --- a/mediapipe_api/framework/calculator_graph.h +++ b/mediapipe_api/framework/calculator_graph.h @@ -14,7 +14,6 @@ #include "mediapipe/framework/calculator_graph.h" #include "mediapipe_api/common.h" #include "mediapipe_api/external/absl/status.h" -#include "mediapipe_api/external/absl/statusor.h" #include "mediapipe_api/external/protobuf.h" #include "mediapipe_api/framework/packet.h" @@ -43,8 +42,8 @@ MP_CAPI(MpReturnCode) mp_CalculatorGraph__ObserveOutputStream__PKc_PF_b(mediapip NativePacketCallback* packet_callback, bool observe_timestamp_bounds, absl::Status** status_out); -MP_CAPI(MpReturnCode) mp_CalculatorGraph__AddOutputStreamPoller__PKc_b(mediapipe::CalculatorGraph* graph, const char* stream_name, - bool observe_timestamp_bounds, mediapipe::StatusOrPoller** status_or_poller_out); +MP_CAPI(MpReturnCode) mp_CalculatorGraph__AddOutputStreamPoller__PKc_b(mediapipe::CalculatorGraph* graph, const char* stream_name, bool observe_timestamp_bounds, + absl::Status** status_out, mediapipe::OutputStreamPoller** poller_out); MP_CAPI(MpReturnCode) mp_CalculatorGraph__Run__Rsp(mediapipe::CalculatorGraph* graph, SidePackets* side_packets, absl::Status** status_out); diff --git a/mediapipe_api/framework/formats/BUILD b/mediapipe_api/framework/formats/BUILD index e3b28a09f..cbcf694a0 100644 --- a/mediapipe_api/framework/formats/BUILD +++ b/mediapipe_api/framework/formats/BUILD @@ -44,7 +44,6 @@ cc_library( deps = [ "//mediapipe_api:common", "//mediapipe_api/external/absl:status", - "//mediapipe_api/external/absl:statusor", "//mediapipe_api/framework:packet", "@com_google_mediapipe//mediapipe/framework/formats:image_frame", ], @@ -71,7 +70,6 @@ cc_library( deps = [ "//mediapipe_api:common", "//mediapipe_api/external/absl:status", - "//mediapipe_api/external/absl:statusor", "//mediapipe_api/framework:packet", "@com_google_mediapipe//mediapipe/framework/formats:matrix", "@com_google_mediapipe//mediapipe/framework/formats:matrix_data_cc_proto", diff --git a/mediapipe_api/framework/formats/image_frame.cc b/mediapipe_api/framework/formats/image_frame.cc index 07f54c0dd..7670453ed 100644 --- a/mediapipe_api/framework/formats/image_frame.cc +++ b/mediapipe_api/framework/formats/image_frame.cc @@ -87,19 +87,6 @@ MpReturnCode mp_ImageFrame__CopyToBuffer__Pf_i(mediapipe::ImageFrame* image_fram CATCH_ALL } -// StatusOr API -void mp_StatusOrImageFrame__delete(StatusOrImageFrame* status_or_image_frame) { delete status_or_image_frame; } - -bool mp_StatusOrImageFrame__ok(StatusOrImageFrame* status_or_image_frame) { return absl_StatusOr__ok(status_or_image_frame); } - -MpReturnCode mp_StatusOrImageFrame__status(StatusOrImageFrame* status_or_image_frame, absl::Status** status_out) { - return absl_StatusOr__status(status_or_image_frame, status_out); -} - -MpReturnCode mp_StatusOrImageFrame__value(StatusOrImageFrame* status_or_image_frame, mediapipe::ImageFrame** value_out) { - return absl_StatusOr__value(status_or_image_frame, value_out); -} - // Packet API MpReturnCode mp__MakeImageFramePacket__Pif(mediapipe::ImageFrame* image_frame, mediapipe::Packet** packet_out) { TRY @@ -115,8 +102,8 @@ MpReturnCode mp__MakeImageFramePacket_At__Pif_Rt(mediapipe::ImageFrame* image_fr CATCH_EXCEPTION } -MpReturnCode mp_Packet__ConsumeImageFrame(mediapipe::Packet* packet, StatusOrImageFrame** status_or_value_out) { - return mp_Packet__Consume(packet, status_or_value_out); +MpReturnCode mp_Packet__ConsumeImageFrame(mediapipe::Packet* packet, absl::Status** status_out, mediapipe::ImageFrame** value_out) { + return mp_Packet__Consume(packet, status_out, value_out); } MpReturnCode mp_Packet__GetImageFrame(mediapipe::Packet* packet, const mediapipe::ImageFrame** value_out) { return mp_Packet__Get(packet, value_out); } diff --git a/mediapipe_api/framework/formats/image_frame.h b/mediapipe_api/framework/formats/image_frame.h index 26fa62520..248383a88 100644 --- a/mediapipe_api/framework/formats/image_frame.h +++ b/mediapipe_api/framework/formats/image_frame.h @@ -13,12 +13,10 @@ #include "mediapipe/framework/formats/image_frame.h" #include "mediapipe_api/common.h" #include "mediapipe_api/external/absl/status.h" -#include "mediapipe_api/external/absl/statusor.h" #include "mediapipe_api/framework/packet.h" extern "C" { -typedef absl::StatusOr StatusOrImageFrame; typedef void(Deleter)(uint8*); MP_CAPI(MpReturnCode) mp_ImageFrame__(mediapipe::ImageFrame** image_frame_out); @@ -41,16 +39,10 @@ MP_CAPI(MpReturnCode) mp_ImageFrame__CopyToBuffer__Pui8_i(mediapipe::ImageFrame* MP_CAPI(MpReturnCode) mp_ImageFrame__CopyToBuffer__Pui16_i(mediapipe::ImageFrame* image_frame, uint16* buffer, int buffer_size); MP_CAPI(MpReturnCode) mp_ImageFrame__CopyToBuffer__Pf_i(mediapipe::ImageFrame* image_frame, float* buffer, int buffer_size); -// StatusOr API -MP_CAPI(void) mp_StatusOrImageFrame__delete(StatusOrImageFrame* status_or_image_frame); -MP_CAPI(bool) mp_StatusOrImageFrame__ok(StatusOrImageFrame* status_or_image_frame); -MP_CAPI(MpReturnCode) mp_StatusOrImageFrame__status(StatusOrImageFrame* status_or_image_frame, absl::Status** status_out); -MP_CAPI(MpReturnCode) mp_StatusOrImageFrame__value(StatusOrImageFrame* status_or_image_frame, mediapipe::ImageFrame** value_out); - // Packet API MP_CAPI(MpReturnCode) mp__MakeImageFramePacket__Pif(mediapipe::ImageFrame* image_frame, mediapipe::Packet** packet_out); MP_CAPI(MpReturnCode) mp__MakeImageFramePacket_At__Pif_Rt(mediapipe::ImageFrame* image_frame, mediapipe::Timestamp* timestamp, mediapipe::Packet** packet_out); -MP_CAPI(MpReturnCode) mp_Packet__ConsumeImageFrame(mediapipe::Packet* packet, StatusOrImageFrame** value_out); +MP_CAPI(MpReturnCode) mp_Packet__ConsumeImageFrame(mediapipe::Packet* packet, absl::Status** status_out, mediapipe::ImageFrame** value_out); MP_CAPI(MpReturnCode) mp_Packet__GetImageFrame(mediapipe::Packet* packet, const mediapipe::ImageFrame** value_out); MP_CAPI(MpReturnCode) mp_Packet__ValidateAsImageFrame(mediapipe::Packet* packet, absl::Status** status_out); diff --git a/mediapipe_api/framework/output_stream_poller.cc b/mediapipe_api/framework/output_stream_poller.cc index dee283ad8..3e9b179d2 100644 --- a/mediapipe_api/framework/output_stream_poller.cc +++ b/mediapipe_api/framework/output_stream_poller.cc @@ -6,8 +6,6 @@ #include "mediapipe_api/framework/output_stream_poller.h" -#include "mediapipe_api/external/absl/statusor.h" - void mp_OutputStreamPoller__delete(mediapipe::OutputStreamPoller* poller) { delete poller; } MpReturnCode mp_OutputStreamPoller__Reset(mediapipe::OutputStreamPoller* poller) { @@ -37,15 +35,3 @@ MpReturnCode mp_OutputStreamPoller__QueueSize(mediapipe::OutputStreamPoller* pol RETURN_CODE(MpReturnCode::Success); CATCH_ALL } - -void mp_StatusOrPoller__delete(mediapipe::StatusOrPoller* status_or_poller) { delete status_or_poller; } - -bool mp_StatusOrPoller__ok(mediapipe::StatusOrPoller* status_or_poller) { return absl_StatusOr__ok(status_or_poller); } - -MpReturnCode mp_StatusOrPoller__status(mediapipe::StatusOrPoller* status_or_poller, absl::Status** status_out) { - return absl_StatusOr__status(status_or_poller, status_out); -} - -MpReturnCode mp_StatusOrPoller__value(mediapipe::StatusOrPoller* poller, mediapipe::OutputStreamPoller** poller_out) { - return absl_StatusOr__value(poller, poller_out); -} diff --git a/mediapipe_api/framework/output_stream_poller.h b/mediapipe_api/framework/output_stream_poller.h index 35b07b0ef..4a8f803da 100644 --- a/mediapipe_api/framework/output_stream_poller.h +++ b/mediapipe_api/framework/output_stream_poller.h @@ -18,11 +18,6 @@ MP_CAPI(MpReturnCode) mp_OutputStreamPoller__Next_Ppacket(mediapipe::OutputStrea MP_CAPI(MpReturnCode) mp_OutputStreamPoller__SetMaxQueueSize(mediapipe::OutputStreamPoller* poller, int queue_size); MP_CAPI(MpReturnCode) mp_OutputStreamPoller__QueueSize(mediapipe::OutputStreamPoller* poller, int* queue_size_out); -MP_CAPI(void) mp_StatusOrPoller__delete(mediapipe::StatusOrPoller* poller); -MP_CAPI(bool) mp_StatusOrPoller__ok(mediapipe::StatusOrPoller* poller); -MP_CAPI(MpReturnCode) mp_StatusOrPoller__status(mediapipe::StatusOrPoller* poller, absl::Status** status_out); -MP_CAPI(MpReturnCode) mp_StatusOrPoller__value(mediapipe::StatusOrPoller* poller, mediapipe::OutputStreamPoller** poller_out); - } // extern "C" #endif // MEDIAPIPE_API_FRAMEWORK_OUTPUT_STREAM_POLLER_H_ diff --git a/mediapipe_api/framework/packet.cc b/mediapipe_api/framework/packet.cc index 792936bf7..0ec5ee592 100644 --- a/mediapipe_api/framework/packet.cc +++ b/mediapipe_api/framework/packet.cc @@ -253,14 +253,32 @@ MpReturnCode mp_Packet__GetByteString(mediapipe::Packet* packet, const char** va CATCH_ALL } -MpReturnCode mp_Packet__ConsumeString(mediapipe::Packet* packet, absl::StatusOr** status_or_value_out) { +MpReturnCode mp_Packet__ConsumeString(mediapipe::Packet* packet, absl::Status** status_out, const char** value_out) { TRY_ALL auto status_or_string = packet->Consume(); + *status_out = new absl::Status{status_or_string.status()}; if (status_or_string.ok()) { - *status_or_value_out = new absl::StatusOr{std::move(*status_or_string.value().release())}; - } else { - *status_or_value_out = new absl::StatusOr{status_or_string.status()}; + auto& str = status_or_string.value(); + *value_out = strcpy_to_heap(std::move(*str)); + } + RETURN_CODE(MpReturnCode::Success); + CATCH_ALL +} + +MpReturnCode mp_Packet__ConsumeByteString(mediapipe::Packet* packet, absl::Status** status_out, const char** value_out, int* size_out) { + TRY_ALL + auto status_or_string = packet->Consume(); + + *status_out = new absl::Status{status_or_string.status()}; + if (status_or_string.ok()) { + auto& str = status_or_string.value(); + auto length = str->size(); + auto bytes = new char[length]; + memcpy(bytes, str->c_str(), length); + + *value_out = bytes; + *size_out = length; } RETURN_CODE(MpReturnCode::Success); CATCH_ALL diff --git a/mediapipe_api/framework/packet.h b/mediapipe_api/framework/packet.h index c441ec221..fcb40ac82 100644 --- a/mediapipe_api/framework/packet.h +++ b/mediapipe_api/framework/packet.h @@ -81,7 +81,8 @@ MP_CAPI(MpReturnCode) mp__MakeStringPacket__PKc_i(const char* str, int size, med MP_CAPI(MpReturnCode) mp__MakeStringPacket_At__PKc_i_Rt(const char* str, int size, mediapipe::Timestamp* timestamp, mediapipe::Packet** packet_out); MP_CAPI(MpReturnCode) mp_Packet__GetString(mediapipe::Packet* packet, const char** value_out); MP_CAPI(MpReturnCode) mp_Packet__GetByteString(mediapipe::Packet* packet, const char** value_out, int* size_out); -MP_CAPI(MpReturnCode) mp_Packet__ConsumeString(mediapipe::Packet* packet, absl::StatusOr** status_or_value_out); +MP_CAPI(MpReturnCode) mp_Packet__ConsumeString(mediapipe::Packet* packet, absl::Status** status_out, const char** value_out); +MP_CAPI(MpReturnCode) mp_Packet__ConsumeByteString(mediapipe::Packet* packet, absl::Status** status_out, const char** value_out, int* size_out); MP_CAPI(MpReturnCode) mp_Packet__ValidateAsString(mediapipe::Packet* packet, absl::Status** status_out); /** PacketMap API */ @@ -96,14 +97,13 @@ MP_CAPI(int) mp_PacketMap__size(PacketMap* packet_map); } // extern "C" template -inline MpReturnCode mp_Packet__Consume(mediapipe::Packet* packet, absl::StatusOr** status_or_value_out) { +inline MpReturnCode mp_Packet__Consume(mediapipe::Packet* packet, absl::Status** status_out, T** value_out) { TRY_ALL auto status_or_unique_ptr = packet->Consume(); + *status_out = new absl::Status{status_or_unique_ptr.status()}; if (status_or_unique_ptr.ok()) { - *status_or_value_out = new absl::StatusOr{std::move(*status_or_unique_ptr.value().release())}; - } else { - *status_or_value_out = new absl::StatusOr{status_or_unique_ptr.status()}; + *value_out = new T{std::move(*status_or_unique_ptr.value().release())}; } RETURN_CODE(MpReturnCode::Success); CATCH_ALL diff --git a/mediapipe_api/framework/validated_graph_config.cc b/mediapipe_api/framework/validated_graph_config.cc index 46edd120f..5c3ab87d9 100644 --- a/mediapipe_api/framework/validated_graph_config.cc +++ b/mediapipe_api/framework/validated_graph_config.cc @@ -1,4 +1,5 @@ #include "mediapipe_api/framework/validated_graph_config.h" +#include "mediapipe_api/external/absl/statusor.h" MpReturnCode mp_ValidatedGraphConfig__(mediapipe::ValidatedGraphConfig** config_out) { TRY @@ -82,19 +83,19 @@ int mp_ValidatedGraphConfig__OutputSidePacketIndex__PKc(mediapipe::ValidatedGrap int mp_ValidatedGraphConfig__OutputStreamToNode__PKc(mediapipe::ValidatedGraphConfig* config, const char* name) { return config->OutputStreamToNode(name); } MpReturnCode mp_ValidatedGraphConfig__RegisteredSidePacketTypeName(mediapipe::ValidatedGraphConfig* config, const char* name, - absl::StatusOr** status_or_string_out) { + absl::Status** status_out, const char** string_out) { TRY auto status_or_string = config->RegisteredSidePacketTypeName(name); - *status_or_string_out = new absl::StatusOr{std::move(status_or_string)}; + copy_absl_StatusOrString(std::move(status_or_string), status_out, string_out); RETURN_CODE(MpReturnCode::Success); CATCH_EXCEPTION } MpReturnCode mp_ValidatedGraphConfig__RegisteredStreamTypeName(mediapipe::ValidatedGraphConfig* config, const char* name, - absl::StatusOr** status_or_string_out) { + absl::Status** status_out, const char** string_out) { TRY auto status_or_string = config->RegisteredStreamTypeName(name); - *status_or_string_out = new absl::StatusOr{std::move(status_or_string)}; + copy_absl_StatusOrString(std::move(status_or_string), status_out, string_out); RETURN_CODE(MpReturnCode::Success); CATCH_EXCEPTION } diff --git a/mediapipe_api/framework/validated_graph_config.h b/mediapipe_api/framework/validated_graph_config.h index 08325bdbf..e81b44bae 100644 --- a/mediapipe_api/framework/validated_graph_config.h +++ b/mediapipe_api/framework/validated_graph_config.h @@ -74,9 +74,9 @@ MP_CAPI(int) mp_ValidatedGraphConfig__OutputSidePacketIndex__PKc(mediapipe::Vali MP_CAPI(int) mp_ValidatedGraphConfig__OutputStreamToNode__PKc(mediapipe::ValidatedGraphConfig* config, const char* name); MP_CAPI(MpReturnCode) mp_ValidatedGraphConfig__RegisteredSidePacketTypeName(mediapipe::ValidatedGraphConfig* config, const char* name, - absl::StatusOr** status_or_string_out); + absl::Status** status_out, const char** string_out); MP_CAPI(MpReturnCode) mp_ValidatedGraphConfig__RegisteredStreamTypeName(mediapipe::ValidatedGraphConfig* config, const char* name, - absl::StatusOr** status_or_string_out); + absl::Status** status_out, const char** string_out); MP_CAPI(MpReturnCode) mp_ValidatedGraphConfig__Package(mediapipe::ValidatedGraphConfig* config, const char** str_out); diff --git a/mediapipe_api/gpu/BUILD b/mediapipe_api/gpu/BUILD index 54b68b125..5144d2c47 100644 --- a/mediapipe_api/gpu/BUILD +++ b/mediapipe_api/gpu/BUILD @@ -42,7 +42,6 @@ cc_library( hdrs = ["gl_context.h"], deps = [ "//mediapipe_api:common", - "//mediapipe_api/external/absl:statusor", "@com_google_mediapipe//mediapipe/gpu:gl_context", ], alwayslink = True, @@ -74,7 +73,6 @@ cc_library( ":gl_texture_buffer", "//mediapipe_api:common", "//mediapipe_api/external/absl:status", - "//mediapipe_api/external/absl:statusor", "//mediapipe_api/framework:packet", "@com_google_mediapipe//mediapipe/gpu:gpu_buffer", ], @@ -100,7 +98,6 @@ cc_library( ":gl_context", "//mediapipe_api:common", "//mediapipe_api/external/absl:status", - "//mediapipe_api/external/absl:statusor", "@com_google_mediapipe//mediapipe/gpu:gpu_shared_data_internal", ], alwayslink = True, diff --git a/mediapipe_api/gpu/gl_context.cc b/mediapipe_api/gpu/gl_context.cc index d2e6d6c92..fc9605025 100644 --- a/mediapipe_api/gpu/gl_context.cc +++ b/mediapipe_api/gpu/gl_context.cc @@ -25,37 +25,6 @@ MpReturnCode mp_GlContext_GetCurrent(SharedGlContext** shared_gl_context_out) { CATCH_EXCEPTION } -MpReturnCode mp_GlContext_Create__P_b(bool create_thread, StatusOrSharedGlContext** status_or_shared_gl_context_out) { - TRY - *status_or_shared_gl_context_out = new StatusOrSharedGlContext{mediapipe::GlContext::Create(nullptr, create_thread)}; - RETURN_CODE(MpReturnCode::Success); - CATCH_EXCEPTION -} - -MpReturnCode mp_GlContext_Create__Rgc_b(mediapipe::GlContext* share_context, bool create_thread, StatusOrSharedGlContext** status_or_shared_gl_context_out) { - TRY - *status_or_shared_gl_context_out = new StatusOrSharedGlContext{mediapipe::GlContext::Create(*share_context, create_thread)}; - RETURN_CODE(MpReturnCode::Success); - CATCH_EXCEPTION -} - -MpReturnCode mp_GlContext_Create__ui_b(mediapipe::PlatformGlContext share_context, bool create_thread, - StatusOrSharedGlContext** status_or_shared_gl_context_out) { - TRY - *status_or_shared_gl_context_out = new StatusOrSharedGlContext{mediapipe::GlContext::Create(share_context, create_thread)}; - RETURN_CODE(MpReturnCode::Success); - CATCH_EXCEPTION -} - -#if HAS_EAGL -MpReturnCode mp_GlContext_Create__Pes_b(EAGLSharegroup* sharegroup, bool create_thread, StatusOrSharedGlContext** status_or_shared_gl_context_out) { - TRY - *status_or_shared_gl_context_out = new StatusOrSharedGlContext{mediapipe::GlContext::Create(sharegroup, create_thread)}; - RETURN_CODE(MpReturnCode::Success); - CATCH_EXCEPTION -} -#endif // HAS_EAGL - #if defined(__EMSCRIPTEN__) #elif HAS_EGL EGLDisplay mp_GlContext__egl_display(mediapipe::GlContext* gl_context) { return gl_context->egl_display(); } diff --git a/mediapipe_api/gpu/gl_context.h b/mediapipe_api/gpu/gl_context.h index 1d94a0f5e..6a884d9ee 100644 --- a/mediapipe_api/gpu/gl_context.h +++ b/mediapipe_api/gpu/gl_context.h @@ -12,26 +12,16 @@ #include "mediapipe/gpu/gl_context.h" #include "mediapipe_api/common.h" -#include "mediapipe_api/external/absl/statusor.h" extern "C" { typedef std::shared_ptr SharedGlContext; -typedef absl::StatusOr StatusOrSharedGlContext; MP_CAPI(void) mp_SharedGlContext__delete(SharedGlContext* shared_gl_context); MP_CAPI(mediapipe::GlContext*) mp_SharedGlContext__get(SharedGlContext* shared_gl_context); MP_CAPI(void) mp_SharedGlContext__reset(SharedGlContext* shared_gl_context); MP_CAPI(MpReturnCode) mp_GlContext_GetCurrent(SharedGlContext** shared_gl_context_out); -MP_CAPI(MpReturnCode) mp_GlContext_Create__P_b(bool create_thread, StatusOrSharedGlContext** status_or_shared_gl_context_out); -MP_CAPI(MpReturnCode) mp_GlContext_Create__Rgc_b(mediapipe::GlContext* share_context, bool create_thread, - StatusOrSharedGlContext** status_or_shared_gl_context_out); -MP_CAPI(MpReturnCode) mp_GlContext_Create__ui_b(mediapipe::PlatformGlContext share_context, bool create_thread, - StatusOrSharedGlContext** status_or_shared_gl_context_out); -#if HAS_EAGL -MP_CAPI(MpReturnCode) mp_GlContext_Create__Pes_b(EAGLSharegroup* sharegroup, bool create_thread, StatusOrSharedGlContext** status_or_shared_gl_context_out); -#endif // HAS_EAGL #if defined(__EMSCRIPTEN__) #elif HAS_EGL diff --git a/mediapipe_api/gpu/gpu_buffer.cc b/mediapipe_api/gpu/gpu_buffer.cc index b8d5fd55e..648bf810b 100644 --- a/mediapipe_api/gpu/gpu_buffer.cc +++ b/mediapipe_api/gpu/gpu_buffer.cc @@ -26,18 +26,6 @@ int mp_GpuBuffer__height(mediapipe::GpuBuffer* gpu_buffer) { return gpu_buffer-> mediapipe::GpuBufferFormat mp_GpuBuffer__format(mediapipe::GpuBuffer* gpu_buffer) { return gpu_buffer->format(); } -void mp_StatusOrGpuBuffer__delete(StatusOrGpuBuffer* status_or_gpu_buffer) { delete status_or_gpu_buffer; } - -bool mp_StatusOrGpuBuffer__ok(StatusOrGpuBuffer* status_or_gpu_buffer) { return absl_StatusOr__ok(status_or_gpu_buffer); } - -MpReturnCode mp_StatusOrGpuBuffer__status(StatusOrGpuBuffer* status_or_gpu_buffer, absl::Status** status_out) { - return absl_StatusOr__status(status_or_gpu_buffer, status_out); -} - -MpReturnCode mp_StatusOrGpuBuffer__value(StatusOrGpuBuffer* status_or_gpu_buffer, mediapipe::GpuBuffer** value_out) { - return absl_StatusOr__value(status_or_gpu_buffer, value_out); -} - MpReturnCode mp__MakeGpuBufferPacket__Rgb(mediapipe::GpuBuffer* gpu_buffer, mediapipe::Packet** packet_out) { TRY *packet_out = new mediapipe::Packet{mediapipe::MakePacket(std::move(*gpu_buffer))}; @@ -52,8 +40,8 @@ MpReturnCode mp__MakeGpuBufferPacket_At__Rgb_Rts(mediapipe::GpuBuffer* gpu_buffe CATCH_EXCEPTION } -MpReturnCode mp_Packet__ConsumeGpuBuffer(mediapipe::Packet* packet, StatusOrGpuBuffer** status_or_value_out) { - return mp_Packet__Consume(packet, status_or_value_out); +MpReturnCode mp_Packet__ConsumeGpuBuffer(mediapipe::Packet* packet, absl::Status** status_out, mediapipe::GpuBuffer** value_out) { + return mp_Packet__Consume(packet, status_out, value_out); } MpReturnCode mp_Packet__GetGpuBuffer(mediapipe::Packet* packet, const mediapipe::GpuBuffer** value_out) { return mp_Packet__Get(packet, value_out); } diff --git a/mediapipe_api/gpu/gpu_buffer.h b/mediapipe_api/gpu/gpu_buffer.h index 68832c84a..90e657686 100644 --- a/mediapipe_api/gpu/gpu_buffer.h +++ b/mediapipe_api/gpu/gpu_buffer.h @@ -12,14 +12,11 @@ #include "mediapipe/gpu/gpu_buffer.h" #include "mediapipe_api/common.h" #include "mediapipe_api/external/absl/status.h" -#include "mediapipe_api/external/absl/statusor.h" #include "mediapipe_api/framework/packet.h" #include "mediapipe_api/gpu/gl_texture_buffer.h" extern "C" { -typedef absl::StatusOr StatusOrGpuBuffer; - MP_CAPI(void) mp_GpuBuffer__delete(mediapipe::GpuBuffer* gpu_buffer); #if MEDIAPIPE_GPU_BUFFER_USE_CV_PIXEL_BUFFER @@ -32,14 +29,9 @@ MP_CAPI(int) mp_GpuBuffer__width(mediapipe::GpuBuffer* gpu_buffer); MP_CAPI(int) mp_GpuBuffer__height(mediapipe::GpuBuffer* gpu_buffer); MP_CAPI(mediapipe::GpuBufferFormat) mp_GpuBuffer__format(mediapipe::GpuBuffer* gpu_buffer); -MP_CAPI(void) mp_StatusOrGpuBuffer__delete(StatusOrGpuBuffer* status_or_gpu_buffer); -MP_CAPI(bool) mp_StatusOrGpuBuffer__ok(StatusOrGpuBuffer* status_or_gpu_buffer); -MP_CAPI(MpReturnCode) mp_StatusOrGpuBuffer__status(StatusOrGpuBuffer* status_or_gpu_buffer, absl::Status** status_out); -MP_CAPI(MpReturnCode) mp_StatusOrGpuBuffer__value(StatusOrGpuBuffer* status_or_gpu_buffer, mediapipe::GpuBuffer** value_out); - MP_CAPI(MpReturnCode) mp__MakeGpuBufferPacket__Rgb(mediapipe::GpuBuffer* gpu_buffer, mediapipe::Packet** packet_out); MP_CAPI(MpReturnCode) mp__MakeGpuBufferPacket_At__Rgb_Rts(mediapipe::GpuBuffer* gpu_buffer, mediapipe::Timestamp* timestamp, mediapipe::Packet** packet_out); -MP_CAPI(MpReturnCode) mp_Packet__ConsumeGpuBuffer(mediapipe::Packet* packet, StatusOrGpuBuffer** status_or_value_out); +MP_CAPI(MpReturnCode) mp_Packet__ConsumeGpuBuffer(mediapipe::Packet* packet, absl::Status** status_out, mediapipe::GpuBuffer** value_out); MP_CAPI(MpReturnCode) mp_Packet__GetGpuBuffer(mediapipe::Packet* packet, const mediapipe::GpuBuffer** value_out); MP_CAPI(MpReturnCode) mp_Packet__ValidateAsGpuBuffer(mediapipe::Packet* packet, absl::Status** status_out); diff --git a/mediapipe_api/gpu/gpu_shared_data_internal.cc b/mediapipe_api/gpu/gpu_shared_data_internal.cc index e7892f6ca..61458762b 100644 --- a/mediapipe_api/gpu/gpu_shared_data_internal.cc +++ b/mediapipe_api/gpu/gpu_shared_data_internal.cc @@ -12,29 +12,25 @@ mediapipe::GpuResources* mp_SharedGpuResources__get(SharedGpuResources* gpu_reso void mp_SharedGpuResources__reset(SharedGpuResources* gpu_resources) { gpu_resources->reset(); } -MpReturnCode mp_GpuResources_Create(absl::StatusOr** status_or_gpu_resources_out) { +MpReturnCode mp_GpuResources_Create(absl::Status** status_out, SharedGpuResources** gpu_resources_out) { TRY - *status_or_gpu_resources_out = new absl::StatusOr{mediapipe::GpuResources::Create()}; + auto status_or_gpu_resources = mediapipe::GpuResources::Create(); + *status_out = new absl::Status{status_or_gpu_resources.status()}; + if (status_or_gpu_resources.ok()) { + *gpu_resources_out = new SharedGpuResources{status_or_gpu_resources.value()}; + } RETURN_CODE(MpReturnCode::Success); CATCH_EXCEPTION } MP_CAPI(MpReturnCode) mp_GpuResources_Create__Pv(mediapipe::PlatformGlContext external_context, - absl::StatusOr** status_or_gpu_resources_out) { + absl::Status** status_out, SharedGpuResources** gpu_resources_out) { TRY - *status_or_gpu_resources_out = new absl::StatusOr{mediapipe::GpuResources::Create(external_context)}; + auto status_or_gpur_resources = mediapipe::GpuResources::Create(external_context); + *status_out = new absl::Status{status_or_gpur_resources.status()}; + if (status_or_gpur_resources.ok()) { + *gpu_resources_out = new SharedGpuResources{status_or_gpur_resources.value()}; + } RETURN_CODE(MpReturnCode::Success); CATCH_EXCEPTION } - -void mp_StatusOrGpuResources__delete(absl::StatusOr* status_or_gpu_resources) { delete status_or_gpu_resources; } - -bool mp_StatusOrGpuResources__ok(absl::StatusOr* status_or_gpu_resources) { return absl_StatusOr__ok(status_or_gpu_resources); } - -MpReturnCode mp_StatusOrGpuResources__status(absl::StatusOr* status_or_gpu_resources, absl::Status** status_out) { - return absl_StatusOr__status(status_or_gpu_resources, status_out); -} - -MpReturnCode mp_StatusOrGpuResources__value(absl::StatusOr* status_or_gpu_resources, SharedGpuResources** value_out) { - return absl_StatusOr__value(status_or_gpu_resources, value_out); -} diff --git a/mediapipe_api/gpu/gpu_shared_data_internal.h b/mediapipe_api/gpu/gpu_shared_data_internal.h index 9d8fb5eef..b480cd2f0 100644 --- a/mediapipe_api/gpu/gpu_shared_data_internal.h +++ b/mediapipe_api/gpu/gpu_shared_data_internal.h @@ -12,7 +12,6 @@ #include "mediapipe/gpu/gpu_shared_data_internal.h" #include "mediapipe_api/common.h" -#include "mediapipe_api/external/absl/statusor.h" extern "C" { @@ -22,14 +21,9 @@ MP_CAPI(void) mp_SharedGpuResources__delete(SharedGpuResources* gpu_resources); MP_CAPI(mediapipe::GpuResources*) mp_SharedGpuResources__get(SharedGpuResources* gpu_resources); MP_CAPI(void) mp_SharedGpuResources__reset(SharedGpuResources* gpu_resources); -MP_CAPI(MpReturnCode) mp_GpuResources_Create(absl::StatusOr** status_or_gpu_resources_out); +MP_CAPI(MpReturnCode) mp_GpuResources_Create(absl::Status** status_out, SharedGpuResources** gpu_resources_out); MP_CAPI(MpReturnCode) mp_GpuResources_Create__Pv(mediapipe::PlatformGlContext external_context, - absl::StatusOr** status_or_gpu_resources_out); - -MP_CAPI(void) mp_StatusOrGpuResources__delete(absl::StatusOr* status_or_gpu_resources); -MP_CAPI(bool) mp_StatusOrGpuResources__ok(absl::StatusOr* status_or_gpu_resources); -MP_CAPI(MpReturnCode) mp_StatusOrGpuResources__status(absl::StatusOr* status_or_gpu_resources, absl::Status** status_out); -MP_CAPI(MpReturnCode) mp_StatusOrGpuResources__value(absl::StatusOr* status_or_gpu_resources, SharedGpuResources** value_out); + absl::Status** status_out, SharedGpuResources** gpu_resources_out); } // extern "C"