Project import generated by Copybara.
GitOrigin-RevId: 27c70b5fe62ab71189d358ca122ee4b19c817a8f
This commit is contained in:
@@ -59,6 +59,11 @@ using mediapipe::SwitchContainerOptions;
|
||||
// or contained_node 1, given "ENABLE:false" or "ENABLE:true" respectively.
|
||||
// Input-side-packet "ENABLE" and input-stream "SELECT" can also be used
|
||||
// similarly to specify the active channel.
|
||||
//
|
||||
// Note that this container defaults to use ImmediateInputStreamHandler,
|
||||
// which can be used to accept infrequent "enable" packets asynchronously.
|
||||
// However, it can be overridden to work with DefaultInputStreamHandler,
|
||||
// which can be used to accept frequent "enable" packets synchronously.
|
||||
class SwitchContainer : public Subgraph {
|
||||
public:
|
||||
SwitchContainer() = default;
|
||||
@@ -79,11 +84,16 @@ std::string ChannelName(const std::string& name, int channel) {
|
||||
// Returns a SwitchDemuxCalculator node.
|
||||
CalculatorGraphConfig::Node* BuildDemuxNode(
|
||||
const std::map<TagIndex, std::string>& input_tags,
|
||||
const CalculatorGraphConfig::Node& container_node,
|
||||
CalculatorGraphConfig* config) {
|
||||
CalculatorGraphConfig::Node* result = config->add_node();
|
||||
*result->mutable_calculator() = "SwitchDemuxCalculator";
|
||||
*result->mutable_input_stream_handler()->mutable_input_stream_handler() =
|
||||
"ImmediateInputStreamHandler";
|
||||
if (container_node.has_input_stream_handler()) {
|
||||
*result->mutable_input_stream_handler() =
|
||||
container_node.input_stream_handler();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -233,7 +243,7 @@ absl::StatusOr<CalculatorGraphConfig> SwitchContainer::GetConfig(
|
||||
ParseTags(container_streams.output_side_packet(), &side_output_tags);
|
||||
|
||||
// Add a graph node for the demux, mux.
|
||||
auto demux = BuildDemuxNode(input_tags, &config);
|
||||
auto demux = BuildDemuxNode(input_tags, container_node, &config);
|
||||
CopyOptions(container_node, demux);
|
||||
ClearContainerOptions(demux);
|
||||
demux->add_input_stream("SELECT:gate_select");
|
||||
|
||||
Reference in New Issue
Block a user