Project import generated by Copybara.

GitOrigin-RevId: d073f8e21be2fcc0e503cb97c6695078b6b75310
This commit is contained in:
MediaPipe Team
2021-02-27 03:30:05 -05:00
committed by chuoling
parent 39309bedba
commit 350fbb2100
755 changed files with 16391 additions and 11075 deletions
+2 -2
View File
@@ -261,9 +261,9 @@ exports_files(
[
"testdata/googlelogo_color_272x92dp.png",
"testdata/googlelogo_color_272x92dp_luminance.png",
"testdata/sergey.png",
],
visibility = [
"//mediapipe/feature_extraction/video/video_effects:__pkg__",
"//mediapipe/gpu:__pkg__",
"//mediapipe:__subpackages__",
],
)
+2 -2
View File
@@ -23,7 +23,7 @@
CGImageRef CreateCGImageFromCVPixelBuffer(CVPixelBufferRef imageBuffer, NSError **error) {
CFHolder<CGImageRef> cg_image_holder;
::mediapipe::Status status = CreateCGImageFromCVPixelBuffer(imageBuffer, &cg_image_holder);
absl::Status status = CreateCGImageFromCVPixelBuffer(imageBuffer, &cg_image_holder);
if (!status.ok()) {
*error = [NSError gus_errorWithStatus:status];
return nil;
@@ -35,7 +35,7 @@ CGImageRef CreateCGImageFromCVPixelBuffer(CVPixelBufferRef imageBuffer, NSError
CVPixelBufferRef CreateCVPixelBufferFromCGImage(CGImageRef image, NSError **error) {
CFHolder<CVPixelBufferRef> pixel_buffer_holder;
::mediapipe::Status status = CreateCVPixelBufferFromCGImage(image, &pixel_buffer_holder);
absl::Status status = CreateCVPixelBufferFromCGImage(image, &pixel_buffer_holder);
if (!status.ok()) {
*error = [NSError gus_errorWithStatus:status];
return nil;
+3 -2
View File
@@ -33,8 +33,9 @@
#pragma mark - Public
- (void)displayLinkCallback:(CADisplayLink *)sender {
void (*display)(id, SEL, CADisplayLink *) = (void *)[_target methodForSelector:_selector];
display(_target, _selector, sender);
__strong id target = _target;
void (*display)(id, SEL, CADisplayLink *) = (void *)[target methodForSelector:_selector];
display(target, _selector, sender);
}
@end
+11 -11
View File
@@ -213,7 +213,7 @@ void CallFrameDelegate(void* wrapperVoid, const std::string& streamName,
}
- (BOOL)startWithError:(NSError**)error {
::mediapipe::Status status = [self performStart];
absl::Status status = [self performStart];
if (!status.ok()) {
if (error) {
*error = [NSError gus_errorWithStatus:status];
@@ -224,8 +224,8 @@ void CallFrameDelegate(void* wrapperVoid, const std::string& streamName,
return YES;
}
- (::mediapipe::Status)performStart {
::mediapipe::Status status = _graph->Initialize(_config);
- (absl::Status)performStart {
absl::Status status = _graph->Initialize(_config);
if (!status.ok()) {
return status;
}
@@ -251,13 +251,13 @@ void CallFrameDelegate(void* wrapperVoid, const std::string& streamName,
}
- (BOOL)closeInputStream:(const std::string&)inputName error:(NSError**)error {
::mediapipe::Status status = _graph->CloseInputStream(inputName);
absl::Status status = _graph->CloseInputStream(inputName);
if (!status.ok() && error) *error = [NSError gus_errorWithStatus:status];
return status.ok();
}
- (BOOL)closeAllInputStreamsWithError:(NSError**)error {
::mediapipe::Status status = _graph->CloseAllInputStreams();
absl::Status status = _graph->CloseAllInputStreams();
if (!status.ok() && error) *error = [NSError gus_errorWithStatus:status];
return status.ok();
}
@@ -268,14 +268,14 @@ void CallFrameDelegate(void* wrapperVoid, const std::string& streamName,
// TODO: is this too heavy-handed? Maybe a warning would be fine.
_GTMDevAssert(![NSThread isMainThread] || (NSClassFromString(@"XCTest")),
@"waitUntilDoneWithError: should not be called on the main thread");
::mediapipe::Status status = _graph->WaitUntilDone();
absl::Status status = _graph->WaitUntilDone();
_started = NO;
if (!status.ok() && error) *error = [NSError gus_errorWithStatus:status];
return status.ok();
}
- (BOOL)waitUntilIdleWithError:(NSError**)error {
::mediapipe::Status status = _graph->WaitUntilIdle();
absl::Status status = _graph->WaitUntilIdle();
if (!status.ok() && error) *error = [NSError gus_errorWithStatus:status];
return status.ok();
}
@@ -283,7 +283,7 @@ void CallFrameDelegate(void* wrapperVoid, const std::string& streamName,
- (BOOL)movePacket:(mediapipe::Packet&&)packet
intoStream:(const std::string&)streamName
error:(NSError**)error {
::mediapipe::Status status = _graph->AddPacketToInputStream(streamName, std::move(packet));
absl::Status status = _graph->AddPacketToInputStream(streamName, std::move(packet));
if (!status.ok() && error) *error = [NSError gus_errorWithStatus:status];
return status.ok();
}
@@ -291,7 +291,7 @@ void CallFrameDelegate(void* wrapperVoid, const std::string& streamName,
- (BOOL)sendPacket:(const mediapipe::Packet&)packet
intoStream:(const std::string&)streamName
error:(NSError**)error {
::mediapipe::Status status = _graph->AddPacketToInputStream(streamName, packet);
absl::Status status = _graph->AddPacketToInputStream(streamName, packet);
if (!status.ok() && error) *error = [NSError gus_errorWithStatus:status];
return status.ok();
}
@@ -299,7 +299,7 @@ void CallFrameDelegate(void* wrapperVoid, const std::string& streamName,
- (BOOL)setMaxQueueSize:(int)maxQueueSize
forStream:(const std::string&)streamName
error:(NSError**)error {
::mediapipe::Status status = _graph->SetInputStreamMaxQueueSize(streamName, maxQueueSize);
absl::Status status = _graph->SetInputStreamMaxQueueSize(streamName, maxQueueSize);
if (!status.ok() && error) *error = [NSError gus_errorWithStatus:status];
return status.ok();
}
@@ -396,7 +396,7 @@ void CallFrameDelegate(void* wrapperVoid, const std::string& streamName,
NSString* extensionString;
(void)gpu_resources->gl_context()->Run([&extensionString]{
extensionString = [NSString stringWithUTF8String:(char*)glGetString(GL_EXTENSIONS)];
return ::mediapipe::OkStatus();
return absl::OkStatus();
});
NSArray* extensions = [extensionString componentsSeparatedByCharactersInSet:
+3 -4
View File
@@ -19,7 +19,7 @@
static UIImage* UIImageWithPixelBuffer(CVPixelBufferRef pixelBuffer) {
CFHolder<CGImageRef> cgImage;
::mediapipe::Status status = CreateCGImageFromCVPixelBuffer(pixelBuffer, &cgImage);
absl::Status status = CreateCGImageFromCVPixelBuffer(pixelBuffer, &cgImage);
if (!status.ok()) {
return nil;
}
@@ -441,7 +441,7 @@ static void EnsureOutputDirFor(NSString *outputFile) {
for (NSString* inputStream in fileInputs) {
UIImage* inputImage = [self testImageNamed:fileInputs[inputStream] extension:nil];
XCTAssertNotNil(inputImage);
::mediapipe::Status status =
absl::Status status =
CreateCVPixelBufferFromCGImage(inputImage.CGImage, &inputBuffers[inputStream.UTF8String]);
XCTAssert(status.ok());
}
@@ -449,8 +449,7 @@ static void EnsureOutputDirFor(NSString *outputFile) {
UIImage* expectedImage = [self testImageNamed:expectedPath extension:nil];
XCTAssertNotNil(expectedImage);
CFHolder<CVPixelBufferRef> expectedBuffer;
::mediapipe::Status status =
CreateCVPixelBufferFromCGImage(expectedImage.CGImage, &expectedBuffer);
absl::Status status = CreateCVPixelBufferFromCGImage(expectedImage.CGImage, &expectedBuffer);
XCTAssert(status.ok());
CVPixelBufferRef outputBuffer = [self runGraph:graph
+22 -28
View File
@@ -28,15 +28,14 @@ namespace mediapipe {
class GrayscaleCalculator : public Calculator {
public:
static ::mediapipe::Status FillExpectations(const CalculatorOptions& options,
PacketTypeSet* inputs, PacketTypeSet* outputs,
PacketTypeSet* input_side_packets) {
static absl::Status FillExpectations(const CalculatorOptions& options, PacketTypeSet* inputs,
PacketTypeSet* outputs, PacketTypeSet* input_side_packets) {
inputs->Index(0).Set<ImageFrame>();
outputs->Index(0).Set<ImageFrame>();
return ::util::OkStatus();
return absl::OkStatus();
}
::mediapipe::Status Process() final {
absl::Status Process() final {
const auto& input = Input()->Get<ImageFrame>();
int w = input.Width();
int h = input.Height();
@@ -49,7 +48,7 @@ class GrayscaleCalculator : public Calculator {
NSCAssert(vErr == kvImageNoError, @"vImageRGBAToGray failed: %zd", vErr);
Output()->Add(output.release(), InputTimestamp());
return ::util::OkStatus();
return absl::OkStatus();
}
};
REGISTER_CALCULATOR(GrayscaleCalculator);
@@ -58,41 +57,37 @@ REGISTER_CALCULATOR(GrayscaleCalculator);
// if the video header is not present in the input stream.
class VideoHeaderCalculator : public Calculator {
public:
static ::mediapipe::Status FillExpectations(const CalculatorOptions& options,
PacketTypeSet* inputs, PacketTypeSet* outputs,
PacketTypeSet* input_side_packets) {
static absl::Status FillExpectations(const CalculatorOptions& options, PacketTypeSet* inputs,
PacketTypeSet* outputs, PacketTypeSet* input_side_packets) {
inputs->Index(0).Set<ImageFrame>();
outputs->Index(0).Set<ImageFrame>();
return ::util::OkStatus();
return absl::OkStatus();
}
::mediapipe::Status Open() final {
absl::Status Open() final {
if (Input()->Header().IsEmpty()) {
return ::util::UnknownError("No video header present.");
return absl::UnknownError("No video header present.");
}
return ::util::OkStatus();
return absl::OkStatus();
}
::mediapipe::Status Process() final {
absl::Status Process() final {
Output()->AddPacket(Input()->Value());
return ::util::OkStatus();
return absl::OkStatus();
}
};
REGISTER_CALCULATOR(VideoHeaderCalculator);
class ErrorCalculator : public Calculator {
public:
static ::mediapipe::Status FillExpectations(const CalculatorOptions& options,
PacketTypeSet* inputs, PacketTypeSet* outputs,
PacketTypeSet* input_side_packets) {
static absl::Status FillExpectations(const CalculatorOptions& options, PacketTypeSet* inputs,
PacketTypeSet* outputs, PacketTypeSet* input_side_packets) {
inputs->Index(0).SetAny();
outputs->Index(0).SetSameAs(&inputs->Index(0));
return ::util::OkStatus();
return absl::OkStatus();
}
::mediapipe::Status Process() final {
return ::mediapipe::Status(absl::StatusCode::kUnknown, kExpectedError);
}
absl::Status Process() final { return absl::Status(absl::StatusCode::kUnknown, kExpectedError); }
};
REGISTER_CALCULATOR(ErrorCalculator);
@@ -127,7 +122,7 @@ REGISTER_CALCULATOR(ErrorCalculator);
_graph = [[MPPGraph alloc] initWithGraphConfig:config];
[_graph addFrameOutputStream:"output_frames" outputPacketType:MPPPacketTypePixelBuffer];
CFHolder<CVPixelBufferRef> inputBuffer;
::mediapipe::Status status = CreateCVPixelBufferFromCGImage(_sourceImage.CGImage, &inputBuffer);
absl::Status status = CreateCVPixelBufferFromCGImage(_sourceImage.CGImage, &inputBuffer);
XCTAssert(status.ok());
CVPixelBufferRef outputBuffer = [self runGraph:_graph
withPixelBuffer:*inputBuffer
@@ -166,7 +161,7 @@ REGISTER_CALCULATOR(ErrorCalculator);
[_graph addFrameOutputStream:"gray_frames" outputPacketType:MPPPacketTypeImageFrame];
CFHolder<CVPixelBufferRef> inputBuffer;
::mediapipe::Status status = CreateCVPixelBufferFromCGImage(_sourceImage.CGImage, &inputBuffer);
absl::Status status = CreateCVPixelBufferFromCGImage(_sourceImage.CGImage, &inputBuffer);
XCTAssert(status.ok());
WEAKIFY(self);
@@ -204,7 +199,7 @@ REGISTER_CALCULATOR(ErrorCalculator);
_graph = [[MPPGraph alloc] initWithGraphConfig:config];
[_graph addFrameOutputStream:"output_frames" outputPacketType:MPPPacketTypeImageFrame];
CFHolder<CVPixelBufferRef> inputBuffer;
::mediapipe::Status status = CreateCVPixelBufferFromCGImage(grayImage.CGImage, &inputBuffer);
absl::Status status = CreateCVPixelBufferFromCGImage(grayImage.CGImage, &inputBuffer);
XCTAssert(status.ok());
CVPixelBufferRef outputBuffer = [self runGraph:_graph
withPixelBuffer:*inputBuffer
@@ -222,8 +217,7 @@ REGISTER_CALCULATOR(ErrorCalculator);
node->add_input_stream("input_frames");
node->add_output_stream("output_frames");
CFHolder<CVPixelBufferRef> srcPixelBuffer;
::mediapipe::Status status =
CreateCVPixelBufferFromCGImage(_sourceImage.CGImage, &srcPixelBuffer);
absl::Status status = CreateCVPixelBufferFromCGImage(_sourceImage.CGImage, &srcPixelBuffer);
XCTAssert(status.ok());
_graph = [[MPPGraph alloc] initWithGraphConfig:config];
[_graph addFrameOutputStream:"output_frames" outputPacketType:MPPPacketTypeImageFrame];
@@ -290,7 +284,7 @@ REGISTER_CALCULATOR(ErrorCalculator);
_graph = [[MPPGraph alloc] initWithGraphConfig:config];
[_graph addFrameOutputStream:"output_frames" outputPacketType:MPPPacketTypePixelBuffer];
CFHolder<CVPixelBufferRef> inputBuffer;
::mediapipe::Status status = CreateCVPixelBufferFromCGImage(_sourceImage.CGImage, &inputBuffer);
absl::Status status = CreateCVPixelBufferFromCGImage(_sourceImage.CGImage, &inputBuffer);
XCTAssert(status.ok());
CVPixelBufferRef outputBuffer = [self runGraph:_graph
withPixelBuffer:*inputBuffer
+12 -12
View File
@@ -16,33 +16,33 @@
#include "mediapipe/framework/port/status.h"
/// Error domain for ::mediapipe::Status errors.
/// Error domain for absl::Status errors.
extern NSString *const kGUSGoogleUtilStatusErrorDomain;
/// Key for the ::mediapipe::Status wrapper in an NSError's user info dictionary.
/// Key for the absl::Status wrapper in an NSError's user info dictionary.
extern NSString *const kGUSGoogleUtilStatusErrorKey;
/// This just wraps ::mediapipe::Status into an Objective-C object.
/// This just wraps absl::Status into an Objective-C object.
@interface GUSUtilStatusWrapper : NSObject
@property(nonatomic)::mediapipe::Status status;
@property(nonatomic) absl::Status status;
+ (instancetype)wrapStatus:(const ::mediapipe::Status &)status;
+ (instancetype)wrapStatus:(const absl::Status &)status;
@end
/// This category adds methods for generating NSError objects from ::mediapipe::Status
/// This category adds methods for generating NSError objects from absl::Status
/// objects, and vice versa.
@interface NSError (GUSGoogleUtilStatus)
/// Generates an NSError representing a ::mediapipe::Status. Note that NSError always
/// represents an error, so this should not be called with ::mediapipe::Status::OK.
+ (NSError *)gus_errorWithStatus:(const ::mediapipe::Status &)status;
/// Generates an NSError representing a absl::Status. Note that NSError always
/// represents an error, so this should not be called with absl::Status::OK.
+ (NSError *)gus_errorWithStatus:(const absl::Status &)status;
/// Returns a ::mediapipe::Status object representing an NSError. If the NSError was
/// generated from a ::mediapipe::Status, the ::mediapipe::Status returned is identical to
/// Returns a absl::Status object representing an NSError. If the NSError was
/// generated from a absl::Status, the absl::Status returned is identical to
/// the original. Otherwise, this returns a status with code ::util::error::UNKNOWN
/// and a message extracted from the NSError.
@property(nonatomic, readonly)::mediapipe::Status gus_status; // NOLINT(identifier-naming)
@property(nonatomic, readonly) absl::Status gus_status; // NOLINT(identifier-naming)
@end
+5 -5
View File
@@ -16,11 +16,11 @@
@implementation GUSUtilStatusWrapper
+ (instancetype)wrapStatus:(const ::mediapipe::Status &)status {
+ (instancetype)wrapStatus:(const absl::Status &)status {
return [[self alloc] initWithStatus:status];
}
- (instancetype)initWithStatus:(const ::mediapipe::Status &)status {
- (instancetype)initWithStatus:(const absl::Status &)status {
self = [super init];
if (self) {
_status = status;
@@ -40,7 +40,7 @@
NSString *const kGUSGoogleUtilStatusErrorDomain = @"GoogleUtilStatusErrorDomain";
NSString *const kGUSGoogleUtilStatusErrorKey = @"GUSGoogleUtilStatusErrorKey";
+ (NSError *)gus_errorWithStatus:(const ::mediapipe::Status &)status {
+ (NSError *)gus_errorWithStatus:(const absl::Status &)status {
NSDictionary *userInfo = @{
NSLocalizedDescriptionKey : @(status.message().data()),
kGUSGoogleUtilStatusErrorKey : [GUSUtilStatusWrapper wrapStatus:status],
@@ -51,7 +51,7 @@ NSString *const kGUSGoogleUtilStatusErrorKey = @"GUSGoogleUtilStatusErrorKey";
return error;
}
- (::mediapipe::Status)gus_status {
- (absl::Status)gus_status {
NSString *domain = self.domain;
if ([domain isEqual:kGUSGoogleUtilStatusErrorDomain]) {
GUSUtilStatusWrapper *wrapper = self.userInfo[kGUSGoogleUtilStatusErrorKey];
@@ -63,7 +63,7 @@ NSString *const kGUSGoogleUtilStatusErrorKey = @"GUSGoogleUtilStatusErrorKey";
return ::util::PosixErrorToStatus(self.code, self.localizedDescription.UTF8String);
#endif
}
return ::mediapipe::Status(mediapipe::StatusCode::kUnknown, self.localizedDescription.UTF8String);
return absl::Status(absl::StatusCode::kUnknown, self.localizedDescription.UTF8String);
}
@end
+9 -9
View File
@@ -249,20 +249,20 @@ void ReleaseMediaPipePacket(void* refcon, const void* base_address) {
CVPixelBufferRef CreateCVPixelBufferForImageFramePacket(
const mediapipe::Packet& image_frame_packet) {
CFHolder<CVPixelBufferRef> buffer;
::mediapipe::Status status =
absl::Status status =
CreateCVPixelBufferForImageFramePacket(image_frame_packet, &buffer);
MEDIAPIPE_CHECK_OK(status) << "Failed to create CVPixelBufferRef";
return (CVPixelBufferRef)CFRetain(*buffer);
}
::mediapipe::Status CreateCVPixelBufferForImageFramePacket(
absl::Status CreateCVPixelBufferForImageFramePacket(
const mediapipe::Packet& image_frame_packet,
CFHolder<CVPixelBufferRef>* out_buffer) {
return CreateCVPixelBufferForImageFramePacket(image_frame_packet, false,
out_buffer);
}
::mediapipe::Status CreateCVPixelBufferForImageFramePacket(
absl::Status CreateCVPixelBufferForImageFramePacket(
const mediapipe::Packet& image_frame_packet, bool can_overwrite,
CFHolder<CVPixelBufferRef>* out_buffer) {
if (!out_buffer) {
@@ -342,11 +342,11 @@ CVPixelBufferRef CreateCVPixelBufferForImageFramePacket(
}
*out_buffer = pixel_buffer;
return ::mediapipe::OkStatus();
return absl::OkStatus();
}
::mediapipe::Status CreateCGImageFromCVPixelBuffer(
CVPixelBufferRef image_buffer, CFHolder<CGImageRef>* image) {
absl::Status CreateCGImageFromCVPixelBuffer(CVPixelBufferRef image_buffer,
CFHolder<CGImageRef>* image) {
CVReturn status =
CVPixelBufferLockBaseAddress(image_buffer, kCVPixelBufferLock_ReadOnly);
RET_CHECK(status == kCVReturnSuccess)
@@ -390,10 +390,10 @@ CVPixelBufferRef CreateCVPixelBufferForImageFramePacket(
<< "CVPixelBufferUnlockBaseAddress failed: " << status;
*image = cg_image_holder;
return ::mediapipe::OkStatus();
return absl::OkStatus();
}
::mediapipe::Status CreateCVPixelBufferFromCGImage(
absl::Status CreateCVPixelBufferFromCGImage(
CGImageRef image, CFHolder<CVPixelBufferRef>* out_buffer) {
size_t width = CGImageGetWidth(image);
size_t height = CGImageGetHeight(image);
@@ -428,7 +428,7 @@ CVPixelBufferRef CreateCVPixelBufferForImageFramePacket(
<< "CVPixelBufferUnlockBaseAddress failed: " << status;
*out_buffer = pixel_buffer;
return ::mediapipe::OkStatus();
return absl::OkStatus();
}
std::unique_ptr<mediapipe::ImageFrame> CreateImageFrameForCVPixelBuffer(
+6 -6
View File
@@ -72,22 +72,22 @@ void ReleaseMediaPipePacket(void* refcon, const void* base_address);
/// necessary to convert the data. This is done by creating a new buffer.
/// If the optional can_overwrite parameter is true, the old buffer may be
/// modified instead.
::mediapipe::Status CreateCVPixelBufferForImageFramePacket(
absl::Status CreateCVPixelBufferForImageFramePacket(
const mediapipe::Packet& image_frame_packet,
CFHolder<CVPixelBufferRef>* out_buffer);
::mediapipe::Status CreateCVPixelBufferForImageFramePacket(
absl::Status CreateCVPixelBufferForImageFramePacket(
const mediapipe::Packet& image_frame_packet, bool can_overwrite,
CFHolder<CVPixelBufferRef>* out_buffer);
/// Creates a CVPixelBuffer with a copy of the contents of the CGImage.
::mediapipe::Status CreateCVPixelBufferFromCGImage(
absl::Status CreateCVPixelBufferFromCGImage(
CGImageRef image, CFHolder<CVPixelBufferRef>* out_buffer);
/// Creates a CGImage with a copy of the contents of the CVPixelBuffer.
::mediapipe::Status CreateCGImageFromCVPixelBuffer(
CVPixelBufferRef image_buffer, CFHolder<CGImageRef>* image);
absl::Status CreateCGImageFromCVPixelBuffer(CVPixelBufferRef image_buffer,
CFHolder<CGImageRef>* image);
/// DEPRECATED: use the version that returns ::mediapipe::Status instead.
/// DEPRECATED: use the version that returns absl::Status instead.
CVPixelBufferRef CreateCVPixelBufferForImageFramePacket(
const mediapipe::Packet& image_frame_packet);