Merge pull request #3974 from priankakariatyml:ios-task-updates
PiperOrigin-RevId: 500323180
This commit is contained in:
		
						commit
						e11ba95adf
					
				|  | @ -18,7 +18,7 @@ NS_ASSUME_NONNULL_BEGIN | |||
| 
 | ||||
| /**
 | ||||
|  * @enum MPPTasksErrorCode | ||||
|  * This enum specifies  error codes for Mediapipe Task Library. | ||||
|  * This enum specifies  error codes for MediaPipe Task Library. | ||||
|  * It maintains a 1:1 mapping to MediaPipeTasksStatus of the C ++libray. | ||||
|  */ | ||||
| typedef NS_ENUM(NSUInteger, MPPTasksErrorCode) { | ||||
|  |  | |||
|  | @ -18,7 +18,7 @@ | |||
| 
 | ||||
| NS_ASSUME_NONNULL_BEGIN | ||||
| 
 | ||||
| /** Error domain of Mediapipe Task related errors. */ | ||||
| /** Error domain of MediaPipe Task related errors. */ | ||||
| extern NSString *const MPPTasksErrorDomain; | ||||
| 
 | ||||
| /** Helper utility for the all tasks which encapsulates common functionality. */ | ||||
|  |  | |||
|  | @ -96,7 +96,7 @@ NSString *const MPPTasksErrorDomain = @"com.google.mediapipe.tasks"; | |||
|   // The mapping to absl::Status::code() is done to generate a more specific error code than | ||||
|   // MPPTasksErrorCodeError in cases when the payload can't be mapped to | ||||
|   // MPPTasksErrorCode. This can happen when absl::Status returned by TFLite library are in turn | ||||
|   // returned without modification by Mediapipe cc library methods. | ||||
|   // returned without modification by MediaPipe cc library methods. | ||||
|   if (errorCode > MPPTasksErrorCodeLast || errorCode <= MPPTasksErrorCodeFirst) { | ||||
|     switch (status.code()) { | ||||
|       case absl::StatusCode::kInternal: | ||||
|  |  | |||
|  | @ -69,59 +69,59 @@ using ::mediapipe::InputStreamInfo; | |||
| } | ||||
| 
 | ||||
| - (CalculatorGraphConfig)generateGraphConfig { | ||||
|   CalculatorGraphConfig graph_config; | ||||
|   CalculatorGraphConfig graphConfig; | ||||
| 
 | ||||
|   Node *task_subgraph_node = graph_config.add_node(); | ||||
|   task_subgraph_node->set_calculator(self.taskGraphName.cppString); | ||||
|   [self.taskOptions copyToProto:task_subgraph_node->mutable_options()]; | ||||
|   Node *taskSubgraphNode = graphConfig.add_node(); | ||||
|   taskSubgraphNode->set_calculator(self.taskGraphName.cppString); | ||||
|   [self.taskOptions copyToProto:taskSubgraphNode->mutable_options()]; | ||||
| 
 | ||||
|   for (NSString *outputStream in self.outputStreams) { | ||||
|     auto cpp_output_stream = std::string(outputStream.cppString); | ||||
|     task_subgraph_node->add_output_stream(cpp_output_stream); | ||||
|     graph_config.add_output_stream(cpp_output_stream); | ||||
|     auto cppOutputStream = std::string(outputStream.cppString); | ||||
|     taskSubgraphNode->add_output_stream(cppOutputStream); | ||||
|     graphConfig.add_output_stream(cppOutputStream); | ||||
|   } | ||||
| 
 | ||||
|   if (!self.enableFlowLimiting) { | ||||
|     for (NSString *inputStream in self.inputStreams) { | ||||
|       auto cpp_input_stream = inputStream.cppString; | ||||
|       task_subgraph_node->add_input_stream(cpp_input_stream); | ||||
|       graph_config.add_input_stream(cpp_input_stream); | ||||
|       auto cppInputStream = inputStream.cppString; | ||||
|       taskSubgraphNode->add_input_stream(cppInputStream); | ||||
|       graphConfig.add_input_stream(cppInputStream); | ||||
|     } | ||||
|     return graph_config; | ||||
|     return graphConfig; | ||||
|   } | ||||
| 
 | ||||
|   Node *flow_limit_calculator_node = graph_config.add_node(); | ||||
|   Node *flowLimitCalculatorNode = graphConfig.add_node(); | ||||
| 
 | ||||
|   flow_limit_calculator_node->set_calculator("FlowLimiterCalculator"); | ||||
|   flowLimitCalculatorNode->set_calculator("FlowLimiterCalculator"); | ||||
| 
 | ||||
|   InputStreamInfo *input_stream_info = flow_limit_calculator_node->add_input_stream_info(); | ||||
|   input_stream_info->set_tag_index("FINISHED"); | ||||
|   input_stream_info->set_back_edge(true); | ||||
|   InputStreamInfo *inputStreamInfo = flowLimitCalculatorNode->add_input_stream_info(); | ||||
|   inputStreamInfo->set_tag_index("FINISHED"); | ||||
|   inputStreamInfo->set_back_edge(true); | ||||
| 
 | ||||
|   FlowLimiterCalculatorOptions *flow_limit_calculator_options = | ||||
|       flow_limit_calculator_node->mutable_options()->MutableExtension( | ||||
|   FlowLimiterCalculatorOptions *flowLimitCalculatorOptions = | ||||
|       flowLimitCalculatorNode->mutable_options()->MutableExtension( | ||||
|           FlowLimiterCalculatorOptions::ext); | ||||
|   flow_limit_calculator_options->set_max_in_flight(1); | ||||
|   flow_limit_calculator_options->set_max_in_queue(1); | ||||
|   flowLimitCalculatorOptions->set_max_in_flight(1); | ||||
|   flowLimitCalculatorOptions->set_max_in_queue(1); | ||||
| 
 | ||||
|   for (NSString *inputStream in self.inputStreams) { | ||||
|     graph_config.add_input_stream(inputStream.cppString); | ||||
|     graphConfig.add_input_stream(inputStream.cppString); | ||||
| 
 | ||||
|     NSString *strippedInputStream = [MPPTaskInfo stripTagIndex:inputStream]; | ||||
|     flow_limit_calculator_node->add_input_stream(strippedInputStream.cppString); | ||||
|     flowLimitCalculatorNode->add_input_stream(strippedInputStream.cppString); | ||||
| 
 | ||||
|     NSString *taskInputStream = [MPPTaskInfo addStreamNamePrefix:inputStream]; | ||||
|     task_subgraph_node->add_input_stream(taskInputStream.cppString); | ||||
|     taskSubgraphNode->add_input_stream(taskInputStream.cppString); | ||||
| 
 | ||||
|     NSString *strippedTaskInputStream = [MPPTaskInfo stripTagIndex:taskInputStream]; | ||||
|     flow_limit_calculator_node->add_output_stream(strippedTaskInputStream.cppString); | ||||
|     flowLimitCalculatorNode->add_output_stream(strippedTaskInputStream.cppString); | ||||
|   } | ||||
| 
 | ||||
|   NSString *firstOutputStream = self.outputStreams[0]; | ||||
|   auto finished_output_stream = "FINISHED:" + firstOutputStream.cppString; | ||||
|   flow_limit_calculator_node->add_input_stream(finished_output_stream); | ||||
|   auto finishedOutputStream = "FINISHED:" + firstOutputStream.cppString; | ||||
|   flowLimitCalculatorNode->add_input_stream(finishedOutputStream); | ||||
| 
 | ||||
|   return graph_config; | ||||
|   return graphConfig; | ||||
| } | ||||
| 
 | ||||
| + (NSString *)stripTagIndex:(NSString *)tagIndexName { | ||||
|  |  | |||
|  | @ -25,7 +25,7 @@ NS_SWIFT_NAME(TaskOptions) | |||
| 
 | ||||
| @interface MPPTaskOptions : NSObject <NSCopying> | ||||
| /**
 | ||||
|  * Base options for configuring the Mediapipe task. | ||||
|  * Base options for configuring the MediaPipe task. | ||||
|  */ | ||||
| @property(nonatomic, copy) MPPBaseOptions *baseOptions; | ||||
| 
 | ||||
|  |  | |||
|  | @ -26,11 +26,11 @@ NS_SWIFT_NAME(TaskResult) | |||
| /**
 | ||||
|  * Timestamp that is associated with the task result object. | ||||
|  */ | ||||
| @property(nonatomic, assign, readonly) long timestamp; | ||||
| @property(nonatomic, assign, readonly) NSInteger timestampMs; | ||||
| 
 | ||||
| - (instancetype)init NS_UNAVAILABLE; | ||||
| 
 | ||||
| - (instancetype)initWithTimestamp:(long)timestamp NS_DESIGNATED_INITIALIZER; | ||||
| - (instancetype)initWithTimestampMs:(NSInteger)timestampMs NS_DESIGNATED_INITIALIZER; | ||||
| 
 | ||||
| @end | ||||
| 
 | ||||
|  |  | |||
|  | @ -16,16 +16,16 @@ | |||
| 
 | ||||
| @implementation MPPTaskResult | ||||
| 
 | ||||
| - (instancetype)initWithTimestamp:(long)timestamp { | ||||
| - (instancetype)initWithTimestampMs:(NSInteger)timestampMs { | ||||
|   self = [super init]; | ||||
|   if (self) { | ||||
|     _timestamp = timestamp; | ||||
|     _timestampMs = timestampMs; | ||||
|   } | ||||
|   return self; | ||||
| } | ||||
| 
 | ||||
| - (id)copyWithZone:(NSZone *)zone { | ||||
|   return [[MPPTaskResult alloc] initWithTimestamp:self.timestamp]; | ||||
|   return [[MPPTaskResult alloc] initWithTimestampMs:self.timestampMs]; | ||||
| } | ||||
| 
 | ||||
| @end | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user