Added check to prevent live stream method call if packets callback is not provided.

This commit is contained in:
Prianka Liz Kariat 2023-06-30 15:32:31 +05:30
parent 6c7aa8a0d6
commit c81fd19810
2 changed files with 17 additions and 0 deletions

View File

@ -87,6 +87,7 @@ objc_library(
"//mediapipe/framework:calculator_cc_proto",
"//mediapipe/tasks/cc/core:mediapipe_builtin_op_resolver",
"//mediapipe/tasks/cc/core:task_runner",
"//mediapipe/tasks/ios/common:MPPCommon",
"//mediapipe/tasks/ios/common/utils:MPPCommonUtils",
],
)

View File

@ -13,6 +13,7 @@
// limitations under the License.
#import "mediapipe/tasks/ios/core/sources/MPPTaskRunner.h"
#import "mediapipe/tasks/ios/common/sources/MPPCommon.h"
#import "mediapipe/tasks/ios/common/utils/sources/MPPCommonUtils.h"
#include "mediapipe/tasks/cc/core/mediapipe_builtin_op_resolver.h"
@ -28,6 +29,7 @@ using TaskRunnerCpp = ::mediapipe::tasks::core::TaskRunner;
@interface MPPTaskRunner () {
// Cpp Task Runner
std::unique_ptr<TaskRunnerCpp> _cppTaskRunner;
BOOL _initializedWithPacketsCallback;
}
@end
@ -46,6 +48,7 @@ using TaskRunnerCpp = ::mediapipe::tasks::core::TaskRunner;
return nil;
}
_cppTaskRunner = std::move(taskRunnerResult.value());
_initializedWithPacketsCallback = packetsCallback ? YES : NO;
}
return self;
}
@ -59,7 +62,20 @@ using TaskRunnerCpp = ::mediapipe::tasks::core::TaskRunner;
}
- (BOOL)sendPacketMap:(const PacketMap &)packetMap error:(NSError **)error {
if (!_initializedWithPacketsCallback) {
[MPPCommonUtils
createCustomError:error
withCode:MPPTasksErrorCodeFailedPreconditionError
description:[NSString
stringWithFormat:@"This method can only be called if the task is "
@"running in a stream mode and an object of a class "
@"is provided as the delegate in the task options "
@"to receive the results asynchronously."]];
return NO;
}
absl::Status sendStatus = _cppTaskRunner->Send(packetMap);
return [MPPCommonUtils checkCppError:sendStatus toError:error];
}