API 2: Do not redirect from MEDIAPIPE_REGISTER_NODE to REGISTER_CALCULATOR
The problem with redirecting is that the calling code has to include API 1 code (often third_party/mediapipe/framework/calculator_framework.h), even though they are only using API 2 functionality (albeit deprecated). This can lead to weird issues, e.g. MakePacket<T> confusingly does not return a Packet<T>, but a Packet, because it's using the API 1 version. PiperOrigin-RevId: 588798455
This commit is contained in:
parent
fad3785721
commit
66655a15b2
|
@ -81,15 +81,13 @@ cc_library(
|
|||
srcs = ["node.cc"],
|
||||
hdrs = ["node.h"],
|
||||
deps = [
|
||||
":const_str",
|
||||
":contract",
|
||||
":packet",
|
||||
":port",
|
||||
"//mediapipe/framework:calculator_base",
|
||||
"//mediapipe/framework:calculator_context",
|
||||
"//mediapipe/framework:calculator_contract",
|
||||
"//mediapipe/framework:subgraph",
|
||||
"//mediapipe/framework/deps:no_destructor",
|
||||
"//mediapipe/framework/deps:registration",
|
||||
"@com_google_absl//absl/status",
|
||||
],
|
||||
)
|
||||
|
||||
|
|
|
@ -1,17 +1,15 @@
|
|||
#ifndef MEDIAPIPE_FRAMEWORK_API2_NODE_H_
|
||||
#define MEDIAPIPE_FRAMEWORK_API2_NODE_H_
|
||||
|
||||
#include <functional>
|
||||
#include <string>
|
||||
#include <memory>
|
||||
#include <type_traits>
|
||||
|
||||
#include "mediapipe/framework/api2/const_str.h"
|
||||
#include "absl/status/status.h"
|
||||
#include "mediapipe/framework/api2/contract.h"
|
||||
#include "mediapipe/framework/api2/packet.h"
|
||||
#include "mediapipe/framework/api2/port.h"
|
||||
#include "mediapipe/framework/calculator_base.h"
|
||||
#include "mediapipe/framework/calculator_context.h"
|
||||
#include "mediapipe/framework/calculator_contract.h"
|
||||
#include "mediapipe/framework/deps/no_destructor.h"
|
||||
#include "mediapipe/framework/deps/registration.h"
|
||||
#include "mediapipe/framework/subgraph.h"
|
||||
|
||||
namespace mediapipe {
|
||||
|
@ -178,7 +176,10 @@ class SubgraphImpl : public Subgraph,
|
|||
absl::make_unique<mediapipe::internal::CalculatorBaseFactoryFor<Impl>>)
|
||||
|
||||
// This macro is used to register a non-split-contract calculator. Deprecated.
|
||||
#define MEDIAPIPE_REGISTER_NODE(name) REGISTER_CALCULATOR(name)
|
||||
#define MEDIAPIPE_REGISTER_NODE(name) \
|
||||
MEDIAPIPE_REGISTER_FACTORY_FUNCTION_QUALIFIED( \
|
||||
mediapipe::CalculatorBaseRegistry, calculator_registration, #name, \
|
||||
absl::make_unique<mediapipe::internal::CalculatorBaseFactoryFor<name>>)
|
||||
|
||||
// This macro is used to define a subgraph that does not use automatic
|
||||
// registration. Deprecated.
|
||||
|
|
Loading…
Reference in New Issue
Block a user