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
@@ -92,11 +92,11 @@ class BoxDetectorCalculator : public CalculatorBase {
public:
~BoxDetectorCalculator() override = default;
static mediapipe::Status GetContract(CalculatorContract* cc);
static absl::Status GetContract(CalculatorContract* cc);
mediapipe::Status Open(CalculatorContext* cc) override;
mediapipe::Status Process(CalculatorContext* cc) override;
mediapipe::Status Close(CalculatorContext* cc) override;
absl::Status Open(CalculatorContext* cc) override;
absl::Status Process(CalculatorContext* cc) override;
absl::Status Close(CalculatorContext* cc) override;
private:
BoxDetectorCalculatorOptions options_;
@@ -109,7 +109,7 @@ class BoxDetectorCalculator : public CalculatorBase {
REGISTER_CALCULATOR(BoxDetectorCalculator);
mediapipe::Status BoxDetectorCalculator::GetContract(CalculatorContract* cc) {
absl::Status BoxDetectorCalculator::GetContract(CalculatorContract* cc) {
if (cc->Inputs().HasTag("TRACKING")) {
cc->Inputs().Tag("TRACKING").Set<TrackingData>();
}
@@ -172,10 +172,10 @@ mediapipe::Status BoxDetectorCalculator::GetContract(CalculatorContract* cc) {
cc->InputSidePackets().Tag("FRAME_ALIGNMENT").Set<int>();
}
return mediapipe::OkStatus();
return absl::OkStatus();
}
mediapipe::Status BoxDetectorCalculator::Open(CalculatorContext* cc) {
absl::Status BoxDetectorCalculator::Open(CalculatorContext* cc) {
options_ = cc->Options<BoxDetectorCalculatorOptions>();
box_detector_ = BoxDetectorInterface::Create(options_.detector_options());
@@ -210,10 +210,10 @@ mediapipe::Status BoxDetectorCalculator::Open(CalculatorContext* cc) {
frame_alignment_ = cc->InputSidePackets().Tag("FRAME_ALIGNMENT").Get<int>();
}
return mediapipe::OkStatus();
return absl::OkStatus();
}
mediapipe::Status BoxDetectorCalculator::Process(CalculatorContext* cc) {
absl::Status BoxDetectorCalculator::Process(CalculatorContext* cc) {
const Timestamp timestamp = cc->InputTimestamp();
const int64 timestamp_msec = timestamp.Value() / 1000;
@@ -246,7 +246,7 @@ mediapipe::Status BoxDetectorCalculator::Process(CalculatorContext* cc) {
}
if (!detector_switch_) {
return mediapipe::OkStatus();
return absl::OkStatus();
}
InputStream* track_stream = cc->Inputs().HasTag("TRACKING")
@@ -274,7 +274,7 @@ mediapipe::Status BoxDetectorCalculator::Process(CalculatorContext* cc) {
if (track_stream != nullptr) {
// Detect from tracking data
if (track_stream->IsEmpty()) {
return mediapipe::OkStatus();
return absl::OkStatus();
}
const TrackingData& tracking_data = track_stream->Get<TrackingData>();
@@ -289,7 +289,7 @@ mediapipe::Status BoxDetectorCalculator::Process(CalculatorContext* cc) {
} else if (video_stream != nullptr) {
// Detect from input frame
if (video_stream->IsEmpty()) {
return mediapipe::OkStatus();
return absl::OkStatus();
}
TimedBoxProtoList tracked_boxes;
@@ -305,7 +305,7 @@ mediapipe::Status BoxDetectorCalculator::Process(CalculatorContext* cc) {
detected_boxes.get());
} else {
if (feature_stream->IsEmpty() || descriptor_stream->IsEmpty()) {
return mediapipe::OkStatus();
return absl::OkStatus();
}
const auto& image_size =
@@ -377,17 +377,17 @@ mediapipe::Status BoxDetectorCalculator::Process(CalculatorContext* cc) {
cc->Outputs().Tag("BOXES").Add(detected_boxes.release(), timestamp);
}
return mediapipe::OkStatus();
return absl::OkStatus();
}
mediapipe::Status BoxDetectorCalculator::Close(CalculatorContext* cc) {
absl::Status BoxDetectorCalculator::Close(CalculatorContext* cc) {
if (write_index_) {
BoxDetectorIndex index = box_detector_->ObtainBoxDetectorIndex();
MEDIAPIPE_CHECK_OK(mediapipe::file::SetContents(
cc->InputSidePackets().Tag("OUTPUT_INDEX_FILENAME").Get<std::string>(),
index.SerializeAsString()));
}
return mediapipe::OkStatus();
return absl::OkStatus();
}
} // namespace mediapipe
@@ -123,10 +123,10 @@ class BoxTrackerCalculator : public CalculatorBase {
public:
~BoxTrackerCalculator() override = default;
static mediapipe::Status GetContract(CalculatorContract* cc);
static absl::Status GetContract(CalculatorContract* cc);
mediapipe::Status Open(CalculatorContext* cc) override;
mediapipe::Status Process(CalculatorContext* cc) override;
absl::Status Open(CalculatorContext* cc) override;
absl::Status Process(CalculatorContext* cc) override;
protected:
void RenderStates(const std::vector<MotionBoxState>& states, cv::Mat* mat);
@@ -373,7 +373,7 @@ void AddStateToPath(const MotionBoxState& state, int64 time_msec,
} // namespace.
mediapipe::Status BoxTrackerCalculator::GetContract(CalculatorContract* cc) {
absl::Status BoxTrackerCalculator::GetContract(CalculatorContract* cc) {
if (cc->Inputs().HasTag("TRACKING")) {
cc->Inputs().Tag("TRACKING").Set<TrackingData>();
}
@@ -452,10 +452,10 @@ mediapipe::Status BoxTrackerCalculator::GetContract(CalculatorContract* cc) {
cc->InputSidePackets().Tag(kOptionsTag).Set<CalculatorOptions>();
}
return mediapipe::OkStatus();
return absl::OkStatus();
}
mediapipe::Status BoxTrackerCalculator::Open(CalculatorContext* cc) {
absl::Status BoxTrackerCalculator::Open(CalculatorContext* cc) {
options_ = tool::RetrieveOptions(cc->Options<BoxTrackerCalculatorOptions>(),
cc->InputSidePackets(), kOptionsTag);
@@ -515,10 +515,10 @@ mediapipe::Status BoxTrackerCalculator::Open(CalculatorContext* cc) {
<< "Streaming mode not compatible with cache dir.";
}
return mediapipe::OkStatus();
return absl::OkStatus();
}
mediapipe::Status BoxTrackerCalculator::Process(CalculatorContext* cc) {
absl::Status BoxTrackerCalculator::Process(CalculatorContext* cc) {
// Batch mode, issue tracking requests.
if (box_tracker_ && !tracking_issued_) {
for (const auto& pos : initial_pos_.box()) {
@@ -530,7 +530,7 @@ mediapipe::Status BoxTrackerCalculator::Process(CalculatorContext* cc) {
const Timestamp& timestamp = cc->InputTimestamp();
if (timestamp == Timestamp::PreStream()) {
// Indicator packet.
return mediapipe::OkStatus();
return absl::OkStatus();
}
InputStream* track_stream = cc->Inputs().HasTag("TRACKING")
@@ -892,7 +892,7 @@ mediapipe::Status BoxTrackerCalculator::Process(CalculatorContext* cc) {
cc->Outputs().Tag("VIZ").Add(viz_frame.release(), timestamp);
}
return mediapipe::OkStatus();
return absl::OkStatus();
}
void BoxTrackerCalculator::AddSmoothTransitionToOutputBox(
@@ -59,11 +59,11 @@ class FlowPackagerCalculator : public CalculatorBase {
public:
~FlowPackagerCalculator() override = default;
static mediapipe::Status GetContract(CalculatorContract* cc);
static absl::Status GetContract(CalculatorContract* cc);
mediapipe::Status Open(CalculatorContext* cc) override;
mediapipe::Status Process(CalculatorContext* cc) override;
mediapipe::Status Close(CalculatorContext* cc) override;
absl::Status Open(CalculatorContext* cc) override;
absl::Status Process(CalculatorContext* cc) override;
absl::Status Close(CalculatorContext* cc) override;
// Writes passed chunk to disk.
void WriteChunk(const TrackingDataChunk& chunk) const;
@@ -90,7 +90,7 @@ class FlowPackagerCalculator : public CalculatorBase {
REGISTER_CALCULATOR(FlowPackagerCalculator);
mediapipe::Status FlowPackagerCalculator::GetContract(CalculatorContract* cc) {
absl::Status FlowPackagerCalculator::GetContract(CalculatorContract* cc) {
if (!cc->Inputs().HasTag("FLOW")) {
return tool::StatusFail("No input flow was specified.");
}
@@ -114,10 +114,10 @@ mediapipe::Status FlowPackagerCalculator::GetContract(CalculatorContract* cc) {
cc->InputSidePackets().Tag("CACHE_DIR").Set<std::string>();
}
return mediapipe::OkStatus();
return absl::OkStatus();
}
mediapipe::Status FlowPackagerCalculator::Open(CalculatorContext* cc) {
absl::Status FlowPackagerCalculator::Open(CalculatorContext* cc) {
options_ = cc->Options<FlowPackagerCalculatorOptions>();
flow_packager_.reset(new FlowPackager(options_.flow_packager_options()));
@@ -128,10 +128,10 @@ mediapipe::Status FlowPackagerCalculator::Open(CalculatorContext* cc) {
cache_dir_ = cc->InputSidePackets().Tag("CACHE_DIR").Get<std::string>();
}
return mediapipe::OkStatus();
return absl::OkStatus();
}
mediapipe::Status FlowPackagerCalculator::Process(CalculatorContext* cc) {
absl::Status FlowPackagerCalculator::Process(CalculatorContext* cc) {
InputStream* flow_stream = &(cc->Inputs().Tag("FLOW"));
const RegionFlowFeatureList& flow = flow_stream->Get<RegionFlowFeatureList>();
@@ -193,10 +193,10 @@ mediapipe::Status FlowPackagerCalculator::Process(CalculatorContext* cc) {
prev_timestamp_ = timestamp;
++frame_idx_;
return mediapipe::OkStatus();
return absl::OkStatus();
}
mediapipe::Status FlowPackagerCalculator::Close(CalculatorContext* cc) {
absl::Status FlowPackagerCalculator::Close(CalculatorContext* cc) {
if (frame_idx_ > 0) {
tracking_chunk_.set_last_chunk(true);
if (cc->Outputs().HasTag("TRACKING_CHUNK")) {
@@ -215,7 +215,7 @@ mediapipe::Status FlowPackagerCalculator::Close(CalculatorContext* cc) {
cc->Outputs().Tag("COMPLETE").Add(new bool(true), Timestamp::PreStream());
}
return mediapipe::OkStatus();
return absl::OkStatus();
}
void FlowPackagerCalculator::WriteChunk(const TrackingDataChunk& chunk) const {
@@ -56,27 +56,27 @@ class FlowToImageCalculator : public CalculatorBase {
public:
FlowToImageCalculator() {}
~FlowToImageCalculator() override {}
static mediapipe::Status GetContract(CalculatorContract* cc);
mediapipe::Status Open(CalculatorContext* cc) override;
mediapipe::Status Process(CalculatorContext* cc) override;
static absl::Status GetContract(CalculatorContract* cc);
absl::Status Open(CalculatorContext* cc) override;
absl::Status Process(CalculatorContext* cc) override;
private:
FlowQuantizerModel model_;
};
mediapipe::Status FlowToImageCalculator::GetContract(CalculatorContract* cc) {
absl::Status FlowToImageCalculator::GetContract(CalculatorContract* cc) {
cc->Inputs().Index(0).Set<OpticalFlowField>();
cc->Outputs().Index(0).Set<ImageFrame>();
// Model sanity check
const auto& options = cc->Options<FlowToImageCalculatorOptions>();
if (options.min_value() >= options.max_value()) {
return mediapipe::InvalidArgumentError("Invalid quantizer model.");
return absl::InvalidArgumentError("Invalid quantizer model.");
}
return mediapipe::OkStatus();
return absl::OkStatus();
}
mediapipe::Status FlowToImageCalculator::Open(CalculatorContext* cc) {
absl::Status FlowToImageCalculator::Open(CalculatorContext* cc) {
const auto& options = cc->Options<FlowToImageCalculatorOptions>();
// Fill the the model_data, ideally we want to train the model, but we omit
// the step for now, and takes the (min, max) range from protobuf.
@@ -86,10 +86,10 @@ mediapipe::Status FlowToImageCalculator::Open(CalculatorContext* cc) {
options.min_value(), options.min_value(),
options.max_value(), options.max_value()));
model_.LoadFromProto(model_data);
return mediapipe::OkStatus();
return absl::OkStatus();
}
mediapipe::Status FlowToImageCalculator::Process(CalculatorContext* cc) {
absl::Status FlowToImageCalculator::Process(CalculatorContext* cc) {
const auto& input = cc->Inputs().Index(0).Get<OpticalFlowField>();
// Input flow is 2-channel with x-dim flow and y-dim flow.
// Convert it to a ImageFrame in SRGB space, the 3rd channel is not used (0).
@@ -106,7 +106,7 @@ mediapipe::Status FlowToImageCalculator::Process(CalculatorContext* cc) {
}
}
cc->Outputs().Index(0).Add(output.release(), cc->InputTimestamp());
return mediapipe::OkStatus();
return absl::OkStatus();
}
REGISTER_CALCULATOR(FlowToImageCalculator);
@@ -95,11 +95,11 @@ class MotionAnalysisCalculator : public CalculatorBase {
public:
~MotionAnalysisCalculator() override = default;
static mediapipe::Status GetContract(CalculatorContract* cc);
static absl::Status GetContract(CalculatorContract* cc);
mediapipe::Status Open(CalculatorContext* cc) override;
mediapipe::Status Process(CalculatorContext* cc) override;
mediapipe::Status Close(CalculatorContext* cc) override;
absl::Status Open(CalculatorContext* cc) override;
absl::Status Process(CalculatorContext* cc) override;
absl::Status Close(CalculatorContext* cc) override;
private:
// Outputs results to Outputs() if MotionAnalysis buffered sufficient results.
@@ -107,8 +107,8 @@ class MotionAnalysisCalculator : public CalculatorBase {
void OutputMotionAnalyzedFrames(bool flush, CalculatorContext* cc);
// Lazy init function to be called on Process.
mediapipe::Status InitOnProcess(InputStream* video_stream,
InputStream* selection_stream);
absl::Status InitOnProcess(InputStream* video_stream,
InputStream* selection_stream);
// Parses CSV file contents to homographies.
bool ParseModelCSV(const std::string& contents,
@@ -189,8 +189,7 @@ class MotionAnalysisCalculator : public CalculatorBase {
REGISTER_CALCULATOR(MotionAnalysisCalculator);
mediapipe::Status MotionAnalysisCalculator::GetContract(
CalculatorContract* cc) {
absl::Status MotionAnalysisCalculator::GetContract(CalculatorContract* cc) {
if (cc->Inputs().HasTag("VIDEO")) {
cc->Inputs().Tag("VIDEO").Set<ImageFrame>();
}
@@ -246,10 +245,10 @@ mediapipe::Status MotionAnalysisCalculator::GetContract(
cc->InputSidePackets().Tag(kOptionsTag).Set<CalculatorOptions>();
}
return mediapipe::OkStatus();
return absl::OkStatus();
}
mediapipe::Status MotionAnalysisCalculator::Open(CalculatorContext* cc) {
absl::Status MotionAnalysisCalculator::Open(CalculatorContext* cc) {
options_ =
tool::RetrieveOptions(cc->Options<MotionAnalysisCalculatorOptions>(),
cc->InputSidePackets(), kOptionsTag);
@@ -364,7 +363,7 @@ mediapipe::Status MotionAnalysisCalculator::Open(CalculatorContext* cc) {
// If no video header is provided, just return and initialize on the first
// Process() call.
if (video_header == nullptr) {
return mediapipe::OkStatus();
return absl::OkStatus();
}
////////////// EARLY RETURN; ONLY HEADER OUTPUT SHOULD GO HERE ///////////////
@@ -397,12 +396,12 @@ mediapipe::Status MotionAnalysisCalculator::Open(CalculatorContext* cc) {
.SetHeader(Adopt(new VideoHeader(*video_header)));
}
return mediapipe::OkStatus();
return absl::OkStatus();
}
mediapipe::Status MotionAnalysisCalculator::Process(CalculatorContext* cc) {
absl::Status MotionAnalysisCalculator::Process(CalculatorContext* cc) {
if (options_.bypass_mode()) {
return mediapipe::OkStatus();
return absl::OkStatus();
}
InputStream* video_stream =
@@ -441,7 +440,7 @@ mediapipe::Status MotionAnalysisCalculator::Process(CalculatorContext* cc) {
}
++frame_idx_;
return mediapipe::OkStatus();
return absl::OkStatus();
}
if (motion_analysis_ == nullptr) {
@@ -491,7 +490,7 @@ mediapipe::Status MotionAnalysisCalculator::Process(CalculatorContext* cc) {
cc->Outputs().Tag("VIDEO_OUT").AddPacket(video_stream->Value());
}
return mediapipe::OkStatus();
return absl::OkStatus();
}
if (use_frame) {
@@ -574,10 +573,10 @@ mediapipe::Status MotionAnalysisCalculator::Process(CalculatorContext* cc) {
OutputMotionAnalyzedFrames(false, cc);
}
return mediapipe::OkStatus();
return absl::OkStatus();
}
mediapipe::Status MotionAnalysisCalculator::Close(CalculatorContext* cc) {
absl::Status MotionAnalysisCalculator::Close(CalculatorContext* cc) {
// Guard against empty videos.
if (motion_analysis_) {
OutputMotionAnalyzedFrames(true, cc);
@@ -588,7 +587,7 @@ mediapipe::Status MotionAnalysisCalculator::Close(CalculatorContext* cc) {
<< meta_motions_.size();
}
}
return mediapipe::OkStatus();
return absl::OkStatus();
}
void MotionAnalysisCalculator::OutputMotionAnalyzedFrames(
@@ -688,7 +687,7 @@ void MotionAnalysisCalculator::OutputMotionAnalyzedFrames(
}
}
mediapipe::Status MotionAnalysisCalculator::InitOnProcess(
absl::Status MotionAnalysisCalculator::InitOnProcess(
InputStream* video_stream, InputStream* selection_stream) {
if (video_stream) {
frame_width_ = video_stream->Get<ImageFrame>().Width();
@@ -761,7 +760,7 @@ mediapipe::Status MotionAnalysisCalculator::InitOnProcess(
motion_options->set_filter_initialized_irls_weights(true);
}
return mediapipe::OkStatus();
return absl::OkStatus();
}
bool MotionAnalysisCalculator::ParseModelCSV(
@@ -86,7 +86,7 @@ ImageFormat::Format GetImageFormat(int num_channels) {
//
class OpenCvVideoDecoderCalculator : public CalculatorBase {
public:
static mediapipe::Status GetContract(CalculatorContract* cc) {
static absl::Status GetContract(CalculatorContract* cc) {
cc->InputSidePackets().Tag("INPUT_FILE_PATH").Set<std::string>();
cc->Outputs().Tag("VIDEO").Set<ImageFrame>();
if (cc->Outputs().HasTag("VIDEO_PRESTREAM")) {
@@ -95,10 +95,10 @@ class OpenCvVideoDecoderCalculator : public CalculatorBase {
if (cc->OutputSidePackets().HasTag("SAVED_AUDIO_PATH")) {
cc->OutputSidePackets().Tag("SAVED_AUDIO_PATH").Set<std::string>();
}
return mediapipe::OkStatus();
return absl::OkStatus();
}
mediapipe::Status Open(CalculatorContext* cc) override {
absl::Status Open(CalculatorContext* cc) override {
const std::string& input_file_path =
cc->InputSidePackets().Tag("INPUT_FILE_PATH").Get<std::string>();
cap_ = absl::make_unique<cv::VideoCapture>(input_file_path);
@@ -177,10 +177,10 @@ class OpenCvVideoDecoderCalculator : public CalculatorBase {
"config.";
#endif
}
return mediapipe::OkStatus();
return absl::OkStatus();
}
mediapipe::Status Process(CalculatorContext* cc) override {
absl::Status Process(CalculatorContext* cc) override {
auto image_frame = absl::make_unique<ImageFrame>(format_, width_, height_,
/*alignment_boundary=*/1);
// Use microsecond as the unit of time.
@@ -213,10 +213,10 @@ class OpenCvVideoDecoderCalculator : public CalculatorBase {
decoded_frames_++;
}
return mediapipe::OkStatus();
return absl::OkStatus();
}
mediapipe::Status Close(CalculatorContext* cc) override {
absl::Status Close(CalculatorContext* cc) override {
if (cap_ && cap_->isOpened()) {
cap_->release();
}
@@ -225,7 +225,7 @@ class OpenCvVideoDecoderCalculator : public CalculatorBase {
<< frame_count_ << " vs decoded frames: " << decoded_frames_
<< ").";
}
return mediapipe::OkStatus();
return absl::OkStatus();
}
private:
@@ -76,21 +76,20 @@ namespace mediapipe {
//
class OpenCvVideoEncoderCalculator : public CalculatorBase {
public:
static mediapipe::Status GetContract(CalculatorContract* cc);
mediapipe::Status Open(CalculatorContext* cc) override;
mediapipe::Status Process(CalculatorContext* cc) override;
mediapipe::Status Close(CalculatorContext* cc) override;
static absl::Status GetContract(CalculatorContract* cc);
absl::Status Open(CalculatorContext* cc) override;
absl::Status Process(CalculatorContext* cc) override;
absl::Status Close(CalculatorContext* cc) override;
private:
mediapipe::Status SetUpVideoWriter(float frame_rate, int width, int height);
absl::Status SetUpVideoWriter(float frame_rate, int width, int height);
std::string output_file_path_;
int four_cc_;
std::unique_ptr<cv::VideoWriter> writer_;
};
mediapipe::Status OpenCvVideoEncoderCalculator::GetContract(
CalculatorContract* cc) {
absl::Status OpenCvVideoEncoderCalculator::GetContract(CalculatorContract* cc) {
RET_CHECK(cc->Inputs().HasTag("VIDEO"));
cc->Inputs().Tag("VIDEO").Set<ImageFrame>();
if (cc->Inputs().HasTag("VIDEO_PRESTREAM")) {
@@ -101,10 +100,10 @@ mediapipe::Status OpenCvVideoEncoderCalculator::GetContract(
if (cc->InputSidePackets().HasTag("AUDIO_FILE_PATH")) {
cc->InputSidePackets().Tag("AUDIO_FILE_PATH").Set<std::string>();
}
return mediapipe::OkStatus();
return absl::OkStatus();
}
mediapipe::Status OpenCvVideoEncoderCalculator::Open(CalculatorContext* cc) {
absl::Status OpenCvVideoEncoderCalculator::Open(CalculatorContext* cc) {
OpenCvVideoEncoderCalculatorOptions options =
cc->Options<OpenCvVideoEncoderCalculatorOptions>();
RET_CHECK(options.has_codec() && options.codec().length() == 4)
@@ -128,12 +127,12 @@ mediapipe::Status OpenCvVideoEncoderCalculator::Open(CalculatorContext* cc) {
// from the video header directly. The calculator will receive the video
// header packet at timestamp prestream.
if (cc->Inputs().HasTag("VIDEO_PRESTREAM")) {
return mediapipe::OkStatus();
return absl::OkStatus();
}
return SetUpVideoWriter(options.fps(), options.width(), options.height());
}
mediapipe::Status OpenCvVideoEncoderCalculator::Process(CalculatorContext* cc) {
absl::Status OpenCvVideoEncoderCalculator::Process(CalculatorContext* cc) {
if (cc->InputTimestamp() == Timestamp::PreStream()) {
const VideoHeader& video_header =
cc->Inputs().Tag("VIDEO_PRESTREAM").Get<VideoHeader>();
@@ -171,10 +170,10 @@ mediapipe::Status OpenCvVideoEncoderCalculator::Process(CalculatorContext* cc) {
}
}
writer_->write(frame);
return mediapipe::OkStatus();
return absl::OkStatus();
}
mediapipe::Status OpenCvVideoEncoderCalculator::Close(CalculatorContext* cc) {
absl::Status OpenCvVideoEncoderCalculator::Close(CalculatorContext* cc) {
if (writer_ && writer_->isOpened()) {
writer_->release();
}
@@ -205,11 +204,12 @@ mediapipe::Status OpenCvVideoEncoderCalculator::Close(CalculatorContext* cc) {
"config.";
#endif
}
return mediapipe::OkStatus();
return absl::OkStatus();
}
mediapipe::Status OpenCvVideoEncoderCalculator::SetUpVideoWriter(
float frame_rate, int width, int height) {
absl::Status OpenCvVideoEncoderCalculator::SetUpVideoWriter(float frame_rate,
int width,
int height) {
RET_CHECK(frame_rate > 0 && width > 0 && height > 0)
<< "Invalid video metadata: frame_rate=" << frame_rate
<< ", width=" << width << ", height=" << height;
@@ -219,7 +219,7 @@ mediapipe::Status OpenCvVideoEncoderCalculator::SetUpVideoWriter(
return mediapipe::InvalidArgumentErrorBuilder(MEDIAPIPE_LOC)
<< "Fail to open file at " << output_file_path_;
}
return mediapipe::OkStatus();
return absl::OkStatus();
}
REGISTER_CALCULATOR(OpenCvVideoEncoderCalculator);
@@ -70,7 +70,7 @@ TEST(OpenCvVideoEncoderCalculatorTest, DISABLED_TestMp4Avc720pVideo) {
StatusOrPoller status_or_poller =
graph.AddOutputStreamPoller("video_prestream");
ASSERT_TRUE(status_or_poller.ok());
OutputStreamPoller poller = std::move(status_or_poller.ValueOrDie());
OutputStreamPoller poller = std::move(status_or_poller.value());
MP_ASSERT_OK(graph.StartRun({}));
Packet packet;
@@ -129,7 +129,7 @@ TEST(OpenCvVideoEncoderCalculatorTest, TestFlvH264Video) {
StatusOrPoller status_or_poller =
graph.AddOutputStreamPoller("video_prestream");
ASSERT_TRUE(status_or_poller.ok());
OutputStreamPoller poller = std::move(status_or_poller.ValueOrDie());
OutputStreamPoller poller = std::move(status_or_poller.value());
MP_ASSERT_OK(graph.StartRun({}));
Packet packet;
@@ -190,7 +190,7 @@ TEST(OpenCvVideoEncoderCalculatorTest, TestMkvVp8Video) {
StatusOrPoller status_or_poller =
graph.AddOutputStreamPoller("video_prestream");
ASSERT_TRUE(status_or_poller.ok());
OutputStreamPoller poller = std::move(status_or_poller.ValueOrDie());
OutputStreamPoller poller = std::move(status_or_poller.value());
MP_ASSERT_OK(graph.StartRun({}));
Packet packet;
@@ -106,7 +106,15 @@ Detection GetAxisAlignedDetectionFromTrackedDetection(
} else {
detection.set_detection_id(tracked_detection.unique_id());
}
// Sort the labels by descending scores.
std::vector<std::pair<std::string, float>> labels_and_scores;
for (const auto& label_and_score : tracked_detection.label_to_score_map()) {
labels_and_scores.push_back(label_and_score);
}
std::sort(labels_and_scores.begin(), labels_and_scores.end(),
[](const auto& a, const auto& b) { return a.second > b.second; });
for (const auto& label_and_score : labels_and_scores) {
detection.add_label(label_and_score.first);
detection.add_score(label_and_score.second);
}
@@ -139,10 +147,10 @@ Detection GetAxisAlignedDetectionFromTrackedDetection(
// }
class TrackedDetectionManagerCalculator : public CalculatorBase {
public:
static mediapipe::Status GetContract(CalculatorContract* cc);
mediapipe::Status Open(CalculatorContext* cc) override;
static absl::Status GetContract(CalculatorContract* cc);
absl::Status Open(CalculatorContext* cc) override;
mediapipe::Status Process(CalculatorContext* cc) override;
absl::Status Process(CalculatorContext* cc) override;
private:
// Adds new list of detections to |waiting_for_update_detections_|.
@@ -161,7 +169,7 @@ class TrackedDetectionManagerCalculator : public CalculatorBase {
};
REGISTER_CALCULATOR(TrackedDetectionManagerCalculator);
mediapipe::Status TrackedDetectionManagerCalculator::GetContract(
absl::Status TrackedDetectionManagerCalculator::GetContract(
CalculatorContract* cc) {
if (cc->Inputs().HasTag(kDetectionsTag)) {
cc->Inputs().Tag(kDetectionsTag).Set<std::vector<Detection>>();
@@ -183,20 +191,18 @@ mediapipe::Status TrackedDetectionManagerCalculator::GetContract(
cc->Outputs().Tag(kDetectionBoxesTag).Set<std::vector<NormalizedRect>>();
}
return mediapipe::OkStatus();
return absl::OkStatus();
}
mediapipe::Status TrackedDetectionManagerCalculator::Open(
CalculatorContext* cc) {
absl::Status TrackedDetectionManagerCalculator::Open(CalculatorContext* cc) {
mediapipe::TrackedDetectionManagerCalculatorOptions options =
cc->Options<mediapipe::TrackedDetectionManagerCalculatorOptions>();
tracked_detection_manager_.SetConfig(
options.tracked_detection_manager_options());
return mediapipe::OkStatus();
return absl::OkStatus();
}
mediapipe::Status TrackedDetectionManagerCalculator::Process(
CalculatorContext* cc) {
absl::Status TrackedDetectionManagerCalculator::Process(CalculatorContext* cc) {
if (cc->Inputs().HasTag(kTrackingBoxesTag) &&
!cc->Inputs().Tag(kTrackingBoxesTag).IsEmpty()) {
const TimedBoxProtoList& tracked_boxes =
@@ -296,7 +302,7 @@ mediapipe::Status TrackedDetectionManagerCalculator::Process(
AddDetectionList(detection_list, cc);
}
return mediapipe::OkStatus();
return absl::OkStatus();
}
void TrackedDetectionManagerCalculator::AddDetectionList(
@@ -74,14 +74,14 @@ cv::Mat ConvertToGrayscale(const cv::Mat& image) {
// num_threads: 10
class Tvl1OpticalFlowCalculator : public CalculatorBase {
public:
static mediapipe::Status GetContract(CalculatorContract* cc);
mediapipe::Status Open(CalculatorContext* cc) override;
mediapipe::Status Process(CalculatorContext* cc) override;
static absl::Status GetContract(CalculatorContract* cc);
absl::Status Open(CalculatorContext* cc) override;
absl::Status Process(CalculatorContext* cc) override;
private:
mediapipe::Status CalculateOpticalFlow(const ImageFrame& current_frame,
const ImageFrame& next_frame,
OpticalFlowField* flow);
absl::Status CalculateOpticalFlow(const ImageFrame& current_frame,
const ImageFrame& next_frame,
OpticalFlowField* flow);
bool forward_requested_ = false;
bool backward_requested_ = false;
// Stores the idle DenseOpticalFlow objects.
@@ -93,11 +93,10 @@ class Tvl1OpticalFlowCalculator : public CalculatorBase {
absl::Mutex mutex_;
};
mediapipe::Status Tvl1OpticalFlowCalculator::GetContract(
CalculatorContract* cc) {
absl::Status Tvl1OpticalFlowCalculator::GetContract(CalculatorContract* cc) {
if (!cc->Inputs().HasTag("FIRST_FRAME") ||
!cc->Inputs().HasTag("SECOND_FRAME")) {
return mediapipe::InvalidArgumentError(
return absl::InvalidArgumentError(
"Missing required input streams. Both FIRST_FRAME and SECOND_FRAME "
"must be specified.");
}
@@ -109,10 +108,10 @@ mediapipe::Status Tvl1OpticalFlowCalculator::GetContract(
if (cc->Outputs().HasTag("BACKWARD_FLOW")) {
cc->Outputs().Tag("BACKWARD_FLOW").Set<OpticalFlowField>();
}
return mediapipe::OkStatus();
return absl::OkStatus();
}
mediapipe::Status Tvl1OpticalFlowCalculator::Open(CalculatorContext* cc) {
absl::Status Tvl1OpticalFlowCalculator::Open(CalculatorContext* cc) {
{
absl::MutexLock lock(&mutex_);
tvl1_computers_.emplace_back(cv::createOptFlow_DualTVL1());
@@ -124,10 +123,10 @@ mediapipe::Status Tvl1OpticalFlowCalculator::Open(CalculatorContext* cc) {
backward_requested_ = true;
}
return mediapipe::OkStatus();
return absl::OkStatus();
}
mediapipe::Status Tvl1OpticalFlowCalculator::Process(CalculatorContext* cc) {
absl::Status Tvl1OpticalFlowCalculator::Process(CalculatorContext* cc) {
const ImageFrame& first_frame =
cc->Inputs().Tag("FIRST_FRAME").Value().Get<ImageFrame>();
const ImageFrame& second_frame =
@@ -148,10 +147,10 @@ mediapipe::Status Tvl1OpticalFlowCalculator::Process(CalculatorContext* cc) {
.Tag("BACKWARD_FLOW")
.Add(backward_optical_flow_field.release(), cc->InputTimestamp());
}
return mediapipe::OkStatus();
return absl::OkStatus();
}
mediapipe::Status Tvl1OpticalFlowCalculator::CalculateOpticalFlow(
absl::Status Tvl1OpticalFlowCalculator::CalculateOpticalFlow(
const ImageFrame& current_frame, const ImageFrame& next_frame,
OpticalFlowField* flow) {
CHECK(flow);
@@ -184,7 +183,7 @@ mediapipe::Status Tvl1OpticalFlowCalculator::CalculateOpticalFlow(
absl::MutexLock lock(&mutex_);
tvl1_computers_.push_back(tvl1_computer);
}
return mediapipe::OkStatus();
return absl::OkStatus();
}
REGISTER_CALCULATOR(Tvl1OpticalFlowCalculator);
@@ -78,11 +78,11 @@ void RunTest(int num_input_packets, int max_in_flight) {
StatusOrPoller status_or_poller1 =
graph.AddOutputStreamPoller("forward_flow");
ASSERT_TRUE(status_or_poller1.ok());
OutputStreamPoller poller1 = std::move(status_or_poller1.ValueOrDie());
OutputStreamPoller poller1 = std::move(status_or_poller1.value());
StatusOrPoller status_or_poller2 =
graph.AddOutputStreamPoller("backward_flow");
ASSERT_TRUE(status_or_poller2.ok());
OutputStreamPoller poller2 = std::move(status_or_poller2.ValueOrDie());
OutputStreamPoller poller2 = std::move(status_or_poller2.value());
MP_ASSERT_OK(graph.StartRun({}));
AddInputPackets(num_input_packets, &graph);
@@ -45,13 +45,13 @@ namespace mediapipe {
// }
class VideoPreStreamCalculator : public CalculatorBase {
public:
static mediapipe::Status GetContract(CalculatorContract* cc);
mediapipe::Status Open(CalculatorContext* cc) override;
mediapipe::Status Process(CalculatorContext* cc) override;
static absl::Status GetContract(CalculatorContract* cc);
absl::Status Open(CalculatorContext* cc) override;
absl::Status Process(CalculatorContext* cc) override;
private:
mediapipe::Status ProcessWithFrameRateInPreStream(CalculatorContext* cc);
mediapipe::Status ProcessWithFrameRateInOptions(CalculatorContext* cc);
absl::Status ProcessWithFrameRateInPreStream(CalculatorContext* cc);
absl::Status ProcessWithFrameRateInOptions(CalculatorContext* cc);
std::unique_ptr<VideoHeader> header_;
bool frame_rate_in_prestream_ = false;
@@ -60,8 +60,7 @@ class VideoPreStreamCalculator : public CalculatorBase {
REGISTER_CALCULATOR(VideoPreStreamCalculator);
mediapipe::Status VideoPreStreamCalculator::GetContract(
CalculatorContract* cc) {
absl::Status VideoPreStreamCalculator::GetContract(CalculatorContract* cc) {
if (!cc->Inputs().UsesTags()) {
cc->Inputs().Index(0).Set<ImageFrame>();
} else {
@@ -69,17 +68,17 @@ mediapipe::Status VideoPreStreamCalculator::GetContract(
cc->Inputs().Tag("VIDEO_PRESTREAM").Set<VideoHeader>();
}
cc->Outputs().Index(0).Set<VideoHeader>();
return mediapipe::OkStatus();
return absl::OkStatus();
}
mediapipe::Status VideoPreStreamCalculator::Open(CalculatorContext* cc) {
absl::Status VideoPreStreamCalculator::Open(CalculatorContext* cc) {
frame_rate_in_prestream_ = cc->Inputs().UsesTags() &&
cc->Inputs().HasTag("FRAME") &&
cc->Inputs().HasTag("VIDEO_PRESTREAM");
header_ = absl::make_unique<VideoHeader>();
return mediapipe::OkStatus();
return absl::OkStatus();
}
mediapipe::Status VideoPreStreamCalculator::ProcessWithFrameRateInPreStream(
absl::Status VideoPreStreamCalculator::ProcessWithFrameRateInPreStream(
CalculatorContext* cc) {
cc->GetCounter("ProcessWithFrameRateInPreStream")->Increment();
if (cc->InputTimestamp() == Timestamp::PreStream()) {
@@ -99,13 +98,13 @@ mediapipe::Status VideoPreStreamCalculator::ProcessWithFrameRateInPreStream(
cc->Outputs().Index(0).Add(header_.release(), Timestamp::PreStream());
emitted_ = true;
}
return mediapipe::OkStatus();
return absl::OkStatus();
}
mediapipe::Status VideoPreStreamCalculator::Process(CalculatorContext* cc) {
absl::Status VideoPreStreamCalculator::Process(CalculatorContext* cc) {
cc->GetCounter("Process")->Increment();
if (emitted_) {
return mediapipe::OkStatus();
return absl::OkStatus();
}
if (frame_rate_in_prestream_) {
return ProcessWithFrameRateInPreStream(cc);
@@ -114,7 +113,7 @@ mediapipe::Status VideoPreStreamCalculator::Process(CalculatorContext* cc) {
}
}
mediapipe::Status VideoPreStreamCalculator::ProcessWithFrameRateInOptions(
absl::Status VideoPreStreamCalculator::ProcessWithFrameRateInOptions(
CalculatorContext* cc) {
cc->GetCounter("ProcessWithFrameRateInOptions")->Increment();
RET_CHECK_NE(cc->InputTimestamp(), Timestamp::PreStream());
@@ -136,7 +135,7 @@ mediapipe::Status VideoPreStreamCalculator::ProcessWithFrameRateInOptions(
RET_CHECK_NE(header_->frame_rate, 0.0) << "frame rate should be non-zero";
cc->Outputs().Index(0).Add(header_.release(), Timestamp::PreStream());
emitted_ = true;
return mediapipe::OkStatus();
return absl::OkStatus();
}
} // namespace mediapipe
@@ -39,7 +39,7 @@ TEST(VideoPreStreamCalculatorTest, ProcessesWithFrameRateInOptions) {
MP_ASSERT_OK(graph.Initialize(config));
auto poller_status = graph.AddOutputStreamPoller("output");
MP_ASSERT_OK(poller_status.status());
OutputStreamPoller& poller = poller_status.ValueOrDie();
OutputStreamPoller& poller = poller_status.value();
MP_ASSERT_OK(graph.StartRun({}));
MP_ASSERT_OK(graph.AddPacketToInputStream(
"input",
@@ -79,7 +79,7 @@ TEST(VideoPreStreamCalculatorTest, ProcessesWithFrameRateInPreStream) {
MP_ASSERT_OK(graph.Initialize(config));
auto poller_status = graph.AddOutputStreamPoller("output_header");
MP_ASSERT_OK(poller_status.status());
OutputStreamPoller& poller = poller_status.ValueOrDie();
OutputStreamPoller& poller = poller_status.value();
MP_ASSERT_OK(graph.StartRun({}));
auto input_header = absl::make_unique<VideoHeader>();
input_header->frame_rate = 3.0;
@@ -118,7 +118,7 @@ TEST(VideoPreStreamCalculatorTest, FailsWithoutFrameRateInOptions) {
"frame",
Adopt(new ImageFrame(ImageFormat::SRGB, 1, 2)).At(Timestamp(0))));
MP_ASSERT_OK(graph.CloseInputStream("frame"));
mediapipe::Status status = graph.WaitUntilDone();
absl::Status status = graph.WaitUntilDone();
EXPECT_FALSE(status.ok());
EXPECT_THAT(status.ToString(),
testing::HasSubstr("frame rate should be non-zero"));
@@ -144,7 +144,7 @@ TEST(VideoPreStreamCalculatorTest, FailsWithoutFrameRateInPreStream1) {
Adopt(new ImageFrame(ImageFormat::SRGB, 1, 2)).At(Timestamp(0))));
MP_ASSERT_OK(graph.CloseInputStream("frame"));
MP_ASSERT_OK(graph.CloseInputStream("input_header"));
mediapipe::Status status = graph.WaitUntilDone();
absl::Status status = graph.WaitUntilDone();
EXPECT_FALSE(status.ok());
EXPECT_THAT(status.ToString(),
testing::HasSubstr("frame rate should be non-zero"));
@@ -177,7 +177,7 @@ TEST(VideoPreStreamCalculatorTest, FailsWithoutFrameRateInPreStream2) {
"frame",
Adopt(new ImageFrame(ImageFormat::SRGB, 1, 2)).At(Timestamp(0))));
MP_ASSERT_OK(graph.CloseInputStream("frame"));
mediapipe::Status status = graph.WaitUntilDone();
absl::Status status = graph.WaitUntilDone();
EXPECT_FALSE(status.ok());
}
}