Calculators communicate by sending and receiving packets. Typically a single packet is sent along each input stream at each input timestamp. A packet can contain any kind of data, such as a single frame of video or a single integer detection count.
Packets are generally created with
mediapipe::Adopt() (from packet.h).
// Create a packet containing some new data. Packet p = MakePacket<MyDataClass>("constructor_argument"); // Make a new packet with the same data and a different timestamp. Packet p2 = p.At(Timestamp::PostStream());
// Create some new data. auto data = absl::make_unique<MyDataClass>("constructor_argument"); // Create a packet to own the data. Packet p = Adopt(data.release()).At(Timestamp::PostStream());
Data within a packet is accessed with