Project import generated by Copybara.

GitOrigin-RevId: d8caa66de45839696f5bd0786ad3bfbcb9cff632
This commit is contained in:
MediaPipe Team
2020-12-09 22:43:33 -05:00
committed by chuoling
parent f15da632de
commit 2b58cceec9
750 changed files with 22901 additions and 9478 deletions
@@ -37,7 +37,7 @@ class BarrierInputStreamHandler : public InputStreamHandler {
std::function<void()> headers_ready_callback,
std::function<void()> notification_callback,
std::function<void(CalculatorContext*)> schedule_callback,
std::function<void(::mediapipe::Status)> error_callback) override {
std::function<void(mediapipe::Status)> error_callback) override {
InputStreamHandler::PrepareForRun(
std::move(headers_ready_callback), std::move(notification_callback),
std::move(schedule_callback), std::move(error_callback));
@@ -109,12 +109,10 @@ class BarrierInputStreamHandlerTest : public ::testing::Test {
calculator_context_ = calculator_context;
}
void RecordError(const ::mediapipe::Status& error) {
errors_.push_back(error);
}
void RecordError(const mediapipe::Status& error) { errors_.push_back(error); }
::mediapipe::Status SetupShardsNoOp(CalculatorContext* calculator_context) {
return ::mediapipe::OkStatus();
mediapipe::Status SetupShardsNoOp(CalculatorContext* calculator_context) {
return mediapipe::OkStatus();
}
void ReportQueueNoOp(InputStreamManager* stream, bool* stream_was_full) {}
@@ -123,13 +121,13 @@ class BarrierInputStreamHandlerTest : public ::testing::Test {
std::function<void()> headers_ready_callback_;
std::function<void()> notification_callback_;
std::function<void(CalculatorContext*)> schedule_callback_;
std::function<void(::mediapipe::Status)> error_callback_;
std::function<::mediapipe::Status(CalculatorContext*)> setup_shards_callback_;
std::function<void(mediapipe::Status)> error_callback_;
std::function<mediapipe::Status(CalculatorContext*)> setup_shards_callback_;
InputStreamManager::QueueSizeCallback queue_full_callback_;
InputStreamManager::QueueSizeCallback queue_not_full_callback_;
// Vector of errors encountered while using the stream.
std::vector<::mediapipe::Status> errors_;
std::vector<mediapipe::Status> errors_;
std::unique_ptr<CalculatorState> calculator_state_;
CalculatorContextManager calculator_context_manager_;
@@ -49,7 +49,7 @@ void DefaultInputStreamHandler::PrepareForRun(
std::function<void()> headers_ready_callback,
std::function<void()> notification_callback,
std::function<void(CalculatorContext*)> schedule_callback,
std::function<void(::mediapipe::Status)> error_callback) {
std::function<void(mediapipe::Status)> error_callback) {
sync_set_.PrepareForRun();
InputStreamHandler::PrepareForRun(
std::move(headers_ready_callback), std::move(notification_callback),
@@ -40,7 +40,7 @@ class DefaultInputStreamHandler : public InputStreamHandler {
std::function<void()> headers_ready_callback,
std::function<void()> notification_callback,
std::function<void(CalculatorContext*)> schedule_callback,
std::function<void(::mediapipe::Status)> error_callback) override;
std::function<void(mediapipe::Status)> error_callback) override;
// In DefaultInputStreamHandler, a node is "ready" if:
// - all streams are done (need to call Close() in this case), or
@@ -30,7 +30,7 @@ TEST(DefaultInputStreamHandlerTest, NoBatchingWorks) {
// A single calculator with two input streams, and two output streams. This
// calculator passes all the input packets along.
CalculatorGraphConfig config =
::mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"(
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"(
input_stream: "input0"
input_stream: "input1"
node {
@@ -88,7 +88,7 @@ TEST(DefaultInputStreamHandlerTest, Batches) {
// A single batching calculator with one input stream and one output stream.
// This calculator passes all the input packets onto the output streams.
CalculatorGraphConfig config =
::mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"(
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"(
input_stream: "input0"
node {
calculator: "PassThroughCalculator"
@@ -152,7 +152,7 @@ TEST(DefaultInputStreamHandlerTest, BatchIsFlushedWhenClosing) {
// A single batching calculator with one input stream and one output stream.
// This calculator passes all the input packets onto the output streams.
CalculatorGraphConfig config =
::mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"(
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"(
input_stream: "input0"
node {
calculator: "PassThroughCalculator"
@@ -211,7 +211,7 @@ TEST(DefaultInputStreamHandlerTest, BatchIsFlushedWhenClosing) {
// batching except for the first timestamp of the batch.
TEST(DefaultInputStreamHandlerTest, DoesntPropagateTimestampWhenBatching) {
CalculatorGraphConfig config =
::mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"(
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"(
input_stream: "input0"
input_stream: "input1"
node {
@@ -46,17 +46,17 @@ bool g_source_done ABSL_GUARDED_BY(g_source_mutex);
class TestSourceCalculator : public CalculatorBase {
public:
TestSourceCalculator() : current_packet_id_(0) {}
static ::mediapipe::Status GetContract(CalculatorContract* cc) {
static mediapipe::Status GetContract(CalculatorContract* cc) {
cc->Outputs().Index(0).Set<int64>();
return ::mediapipe::OkStatus();
return mediapipe::OkStatus();
}
::mediapipe::Status Open(CalculatorContext* cc) override {
mediapipe::Status Open(CalculatorContext* cc) override {
absl::MutexLock lock(&g_source_mutex);
g_source_counter = 0;
g_source_done = false;
return ::mediapipe::OkStatus();
return mediapipe::OkStatus();
}
::mediapipe::Status Process(CalculatorContext* cc) override {
mediapipe::Status Process(CalculatorContext* cc) override {
if (current_packet_id_ == kMaxPacketId) {
absl::MutexLock lock(&g_source_mutex);
g_source_done = true;
@@ -70,7 +70,7 @@ class TestSourceCalculator : public CalculatorBase {
g_source_mutex.Await(
absl::Condition(this, &TestSourceCalculator::CanProceed));
}
return ::mediapipe::OkStatus();
return mediapipe::OkStatus();
}
private:
@@ -86,17 +86,17 @@ REGISTER_CALCULATOR(TestSourceCalculator);
class TestSlowCalculator : public CalculatorBase {
public:
TestSlowCalculator() = default;
static ::mediapipe::Status GetContract(CalculatorContract* cc) {
static mediapipe::Status GetContract(CalculatorContract* cc) {
cc->Inputs().Index(0).Set<int64>();
cc->Outputs().Index(0).Set<int64>();
return ::mediapipe::OkStatus();
return mediapipe::OkStatus();
}
::mediapipe::Status Open(CalculatorContext* cc) override {
mediapipe::Status Open(CalculatorContext* cc) override {
absl::MutexLock lock(&g_source_mutex);
g_slow_counter = 0;
return ::mediapipe::OkStatus();
return mediapipe::OkStatus();
}
::mediapipe::Status Process(CalculatorContext* cc) override {
mediapipe::Status Process(CalculatorContext* cc) override {
cc->Outputs().Index(0).Add(new int64(0),
cc->Inputs().Index(0).Value().Timestamp());
{
@@ -105,7 +105,7 @@ class TestSlowCalculator : public CalculatorBase {
g_source_mutex.Await(
absl::Condition(this, &TestSlowCalculator::CanProceed));
}
return ::mediapipe::OkStatus();
return mediapipe::OkStatus();
}
private:
@@ -253,7 +253,7 @@ TEST_P(FixedSizeInputStreamHandlerTest, ParallelWriteAndRead) {
MP_ASSERT_OK(graph.StartRun({}));
{
::mediapipe::ThreadPool pool(3);
mediapipe::ThreadPool pool(3);
pool.StartWorkers();
// Start 3 writers.
@@ -45,7 +45,7 @@ class ImmediateInputStreamHandler : public InputStreamHandler {
std::function<void()> headers_ready_callback,
std::function<void()> notification_callback,
std::function<void(CalculatorContext*)> schedule_callback,
std::function<void(::mediapipe::Status)> error_callback) override;
std::function<void(mediapipe::Status)> error_callback) override;
// Returns kReadyForProcess whenever a Packet is available at any of
// the input streams, or any input stream becomes done.
@@ -83,7 +83,7 @@ void ImmediateInputStreamHandler::PrepareForRun(
std::function<void()> headers_ready_callback,
std::function<void()> notification_callback,
std::function<void(CalculatorContext*)> schedule_callback,
std::function<void(::mediapipe::Status)> error_callback) {
std::function<void(mediapipe::Status)> error_callback) {
{
absl::MutexLock lock(&mutex_);
for (int i = 0; i < sync_sets_.size(); ++i) {
@@ -108,12 +108,10 @@ class ImmediateInputStreamHandlerTest : public ::testing::Test {
cc_ = cc;
}
void RecordError(const ::mediapipe::Status& error) {
errors_.push_back(error);
}
void RecordError(const mediapipe::Status& error) { errors_.push_back(error); }
::mediapipe::Status SetupShardsNoOp(CalculatorContext* calculator_context) {
return ::mediapipe::OkStatus();
mediapipe::Status SetupShardsNoOp(CalculatorContext* calculator_context) {
return mediapipe::OkStatus();
}
void ReportQueueNoOp(InputStreamManager* stream, bool* stream_was_full) {}
@@ -123,10 +121,10 @@ class ImmediateInputStreamHandlerTest : public ::testing::Test {
const std::map<std::string, std::string>& expected_values) {
for (const auto& name_and_id : name_to_id_) {
const InputStream& input_stream = input_set.Get(name_and_id.second);
if (::mediapipe::ContainsKey(expected_values, name_and_id.first)) {
if (mediapipe::ContainsKey(expected_values, name_and_id.first)) {
ASSERT_FALSE(input_stream.Value().IsEmpty());
EXPECT_EQ(input_stream.Value().Get<std::string>(),
::mediapipe::FindOrDie(expected_values, name_and_id.first));
mediapipe::FindOrDie(expected_values, name_and_id.first));
} else {
EXPECT_TRUE(input_stream.Value().IsEmpty());
}
@@ -142,13 +140,13 @@ class ImmediateInputStreamHandlerTest : public ::testing::Test {
std::function<void()> headers_ready_callback_;
std::function<void()> notification_callback_;
std::function<void(CalculatorContext*)> schedule_callback_;
std::function<void(::mediapipe::Status)> error_callback_;
std::function<::mediapipe::Status(CalculatorContext*)> setup_shards_callback_;
std::function<void(mediapipe::Status)> error_callback_;
std::function<mediapipe::Status(CalculatorContext*)> setup_shards_callback_;
InputStreamManager::QueueSizeCallback queue_full_callback_;
InputStreamManager::QueueSizeCallback queue_not_full_callback_;
// Vector of errors encountered while using the stream.
std::vector<::mediapipe::Status> errors_;
std::vector<mediapipe::Status> errors_;
std::unique_ptr<CalculatorState> calculator_state_;
CalculatorContextManager cc_manager_;
@@ -28,7 +28,7 @@ namespace {
// MuxInputStreamHandler should fail when running this test.
TEST(MuxInputStreamHandlerTest, AtomicAccessToControlAndDataStreams) {
CalculatorGraphConfig config =
::mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"(
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"(
input_stream: "input"
node {
calculator: "RoundRobinDemuxCalculator"
@@ -35,7 +35,7 @@ namespace {
// MuxInputStreamHandler should fail when running this test.
TEST(MuxInputStreamHandlerTest, AtomicAccessToControlAndDataStreams) {
CalculatorGraphConfig config =
::mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"(
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"(
input_stream: "input"
node {
calculator: "RoundRobinDemuxCalculator"
@@ -108,9 +108,9 @@ TEST(MuxInputStreamHandlerTest, AtomicAccessToControlAndDataStreams) {
// ignored.
class FixedPassThroughCalculator : public CalculatorBase {
public:
static ::mediapipe::Status GetContract(CalculatorContract* cc) {
static mediapipe::Status GetContract(CalculatorContract* cc) {
if (!cc->Inputs().TagMap()->SameAs(*cc->Outputs().TagMap())) {
return ::mediapipe::InvalidArgumentError(
return mediapipe::InvalidArgumentError(
"Input and output streams to PassThroughCalculator must use "
"matching tags and indexes.");
}
@@ -126,7 +126,7 @@ class FixedPassThroughCalculator : public CalculatorBase {
if (cc->OutputSidePackets().NumEntries() != 0) {
if (!cc->InputSidePackets().TagMap()->SameAs(
*cc->OutputSidePackets().TagMap())) {
return ::mediapipe::InvalidArgumentError(
return mediapipe::InvalidArgumentError(
"Input and output side packets to PassThroughCalculator must use "
"matching tags and indexes.");
}
@@ -148,10 +148,10 @@ class FixedPassThroughCalculator : public CalculatorBase {
->set_target_queue_size(2);
cc->SetInputStreamHandlerOptions(options);
return ::mediapipe::OkStatus();
return mediapipe::OkStatus();
}
::mediapipe::Status Open(CalculatorContext* cc) final {
mediapipe::Status Open(CalculatorContext* cc) final {
for (CollectionItemId id = cc->Inputs().BeginId();
id < cc->Inputs().EndId(); ++id) {
if (!cc->Inputs().Get(id).Header().IsEmpty()) {
@@ -165,10 +165,10 @@ class FixedPassThroughCalculator : public CalculatorBase {
}
}
cc->SetOffset(TimestampDiff(0));
return ::mediapipe::OkStatus();
return mediapipe::OkStatus();
}
::mediapipe::Status Process(CalculatorContext* cc) final {
mediapipe::Status Process(CalculatorContext* cc) final {
cc->GetCounter("PassThrough")->Increment();
if (cc->Inputs().NumEntries() == 0) {
return tool::StatusStop();
@@ -182,7 +182,7 @@ class FixedPassThroughCalculator : public CalculatorBase {
cc->Outputs().Get(id).AddPacket(cc->Inputs().Get(id).Value());
}
}
return ::mediapipe::OkStatus();
return mediapipe::OkStatus();
}
};
REGISTER_CALCULATOR(FixedPassThroughCalculator);
@@ -194,7 +194,7 @@ REGISTER_CALCULATOR(FixedPassThroughCalculator);
TEST(FixedSizeInputStreamHandlerTest, ParallelWriteAndRead) {
#define NUM_STREAMS 4
CalculatorGraphConfig graph_config =
::mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(
R"(
input_stream: "in_0"
input_stream: "in_1"
@@ -222,7 +222,7 @@ TEST(FixedSizeInputStreamHandlerTest, ParallelWriteAndRead) {
MP_ASSERT_OK(graph.StartRun({}));
{
::mediapipe::ThreadPool pool(NUM_STREAMS);
mediapipe::ThreadPool pool(NUM_STREAMS);
pool.StartWorkers();
// Start writers.
@@ -48,7 +48,7 @@ class SyncSetInputStreamHandler : public InputStreamHandler {
std::function<void()> headers_ready_callback,
std::function<void()> notification_callback,
std::function<void(CalculatorContext*)> schedule_callback,
std::function<void(::mediapipe::Status)> error_callback) override;
std::function<void(mediapipe::Status)> error_callback) override;
protected:
// In SyncSetInputStreamHandler, a node is "ready" if any
@@ -94,7 +94,7 @@ void SyncSetInputStreamHandler::PrepareForRun(
std::function<void()> headers_ready_callback,
std::function<void()> notification_callback,
std::function<void(CalculatorContext*)> schedule_callback,
std::function<void(::mediapipe::Status)> error_callback) {
std::function<void(mediapipe::Status)> error_callback) {
const auto& handler_options =
options_.GetExtension(SyncSetInputStreamHandlerOptions::ext);
{
@@ -110,7 +110,7 @@ void SyncSetInputStreamHandler::PrepareForRun(
MEDIAPIPE_CHECK_OK(tool::ParseTagIndex(tag_index, &tag, &index));
CollectionItemId id = input_stream_managers_.GetId(tag, index);
CHECK(id.IsValid()) << "stream \"" << tag_index << "\" is not found.";
CHECK(!::mediapipe::ContainsKey(used_ids, id))
CHECK(!mediapipe::ContainsKey(used_ids, id))
<< "stream \"" << tag_index << "\" is in more than one sync set.";
used_ids.insert(id);
stream_ids.push_back(id);
@@ -120,7 +120,7 @@ void SyncSetInputStreamHandler::PrepareForRun(
std::vector<CollectionItemId> remaining_ids;
for (CollectionItemId id = input_stream_managers_.BeginId();
id < input_stream_managers_.EndId(); ++id) {
if (!::mediapipe::ContainsKey(used_ids, id)) {
if (!mediapipe::ContainsKey(used_ids, id)) {
remaining_ids.push_back(id);
}
}
@@ -36,8 +36,8 @@ namespace mediapipe {
namespace {
// The type LambdaCalculator takes.
typedef std::function<::mediapipe::Status(const InputStreamShardSet&,
OutputStreamShardSet*)>
typedef std::function<mediapipe::Status(const InputStreamShardSet&,
OutputStreamShardSet*)>
ProcessFunction;
// Helper function to create a tuple (inside an initializer list).
@@ -50,8 +50,8 @@ std::tuple<std::string, Timestamp, std::vector<std::string>> CommandTuple(
// Function to take the inputs and produce a diagnostic output std::string
// and output a packet with a diagnostic output std::string which includes
// the input timestamp and the ids of each input which is present.
::mediapipe::Status InputsToDebugString(const InputStreamShardSet& inputs,
OutputStreamShardSet* outputs) {
mediapipe::Status InputsToDebugString(const InputStreamShardSet& inputs,
OutputStreamShardSet* outputs) {
std::string output;
Timestamp output_timestamp;
for (CollectionItemId id = inputs.BeginId(); id < inputs.EndId(); ++id) {
@@ -79,7 +79,7 @@ std::tuple<std::string, Timestamp, std::vector<std::string>> CommandTuple(
// TODO Output at output_timestamp once unordered output stream
// handlers are allowed.
outputs->Index(0).AddPacket(output_packet);
return ::mediapipe::OkStatus();
return mediapipe::OkStatus();
}
TEST(SyncSetInputStreamHandlerTest, OrdinaryOperation) {
@@ -273,7 +273,7 @@ TEST(SyncSetInputStreamHandlerTest, OrdinaryOperation) {
MP_ASSERT_OK(
graph.ObserveOutputStream("output", [&outputs](const Packet& packet) {
outputs.push_back(packet);
return ::mediapipe::OkStatus();
return mediapipe::OkStatus();
}));
MP_ASSERT_OK(graph.StartRun({}));
for (int command_index = 0; command_index < shuffled_commands.size();
@@ -56,7 +56,7 @@ class TimestampAlignInputStreamHandler : public InputStreamHandler {
std::function<void()> headers_ready_callback,
std::function<void()> notification_callback,
std::function<void(CalculatorContext*)> schedule_callback,
std::function<void(::mediapipe::Status)> error_callback) override;
std::function<void(mediapipe::Status)> error_callback) override;
protected:
// In TimestampAlignInputStreamHandler, a node is "ready" if:
@@ -107,7 +107,7 @@ void TimestampAlignInputStreamHandler::PrepareForRun(
std::function<void()> headers_ready_callback,
std::function<void()> notification_callback,
std::function<void(CalculatorContext*)> schedule_callback,
std::function<void(::mediapipe::Status)> error_callback) {
std::function<void(mediapipe::Status)> error_callback) {
{
absl::MutexLock lock(&mutex_);
offsets_initialized_ = (input_stream_managers_.NumEntries() == 1);
@@ -26,7 +26,7 @@ namespace {
TEST(TimestampAlignInputStreamHandlerTest, Initialization) {
CalculatorGraphConfig config =
::mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"(
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"(
input_stream: "input_video"
input_stream: "input_camera"
node {
@@ -121,7 +121,7 @@ TEST(TimestampAlignInputStreamHandlerTest, Initialization) {
TEST(TimestampAlignInputStreamHandlerTest, TickRate) {
CalculatorGraphConfig config =
::mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"(
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"(
input_stream: "input_video"
input_stream: "input_camera"
node {