OutputFrameJoin Class


Output frame join.

It is used to aggregate output frame from multiple components in parallel.

All members of this class is thread-safe.

It shall be noticed that connections and disconnections to the inputs shall not be performed during the flowing of data, or it may stuck in a state that no frame can be output. (It is recommended to complete dataflow connection before start a camera.)


Input port.

C: void easyar_OutputFrameJoin_input(easyar_OutputFrameJoin * This, int index, easyar_OutputFrameSink * * Return)
C++17: std::shared_ptr<OutputFrameSink> input(int index)
Traditional C++: void input(int index, OutputFrameSink * * Return)
Java: public @Nonnull OutputFrameSink input(int index)
Kotlin: fun input(index: Int): OutputFrameSink
Objective-C: - (easyar_OutputFrameSink *)input:(int)index
Swift: public func input(_ index: Int32) -> OutputFrameSink
C#: public virtual OutputFrameSink input(int index)


Output port.

C: void easyar_OutputFrameJoin_output(easyar_OutputFrameJoin * This, easyar_OutputFrameSource * * Return)
C++17: std::shared_ptr<OutputFrameSource> output()
Traditional C++: void output(OutputFrameSource * * Return)
Java: public @Nonnull OutputFrameSource output()
Kotlin: fun output(): OutputFrameSource
Objective-C: - (easyar_OutputFrameSource *)output
Swift: public func output() -> OutputFrameSource
C#: public virtual OutputFrameSource output()


Input count.

C: int easyar_OutputFrameJoin_inputCount(easyar_OutputFrameJoin * This)
C++17: int inputCount()
Traditional C++: int inputCount()
Java: public int inputCount()
Kotlin: fun inputCount(): Int
Objective-C: - (int)inputCount
Swift: public func inputCount() -> Int32
C#: public virtual int inputCount()


Creates an instance. The default joiner will be used, which takes input frame from the first input and first result or null of each input. The first result of every input will be placed at the corresponding input index of results of the final output frame.

C: void easyar_OutputFrameJoin_create(int inputCount, easyar_OutputFrameJoin * * Return)
C++17: static std::shared_ptr<OutputFrameJoin> create(int inputCount)
Traditional C++: static void create(int inputCount, OutputFrameJoin * * Return)
Java: public static @Nonnull OutputFrameJoin create(int inputCount)
Kotlin: companion object fun create(inputCount: Int): OutputFrameJoin
Objective-C: + (easyar_OutputFrameJoin *)create:(int)inputCount
Swift: public static func create(_ inputCount: Int32) -> OutputFrameJoin
C#: public static OutputFrameJoin create(int inputCount)


Creates an instance. A custom joiner is specified.

C: void easyar_OutputFrameJoin_createWithJoiner(int inputCount, easyar_FunctorOfOutputFrameFromListOfOutputFrame joiner, easyar_OutputFrameJoin * * Return)
C++17: static std::shared_ptr<OutputFrameJoin> createWithJoiner(int inputCount, std::function<std::shared_ptr<OutputFrame>(std::vector<std::shared_ptr<OutputFrame>>)> joiner)
Traditional C++: static void createWithJoiner(int inputCount, FunctorOfOutputFrameFromListOfOutputFrame joiner, OutputFrameJoin * * Return)
Java: public static @Nonnull OutputFrameJoin createWithJoiner(int inputCount, @Nonnull FunctorOfOutputFrameFromListOfOutputFrame joiner)
Kotlin: companion object fun createWithJoiner(inputCount: Int, joiner: FunctorOfOutputFrameFromListOfOutputFrame): OutputFrameJoin
Objective-C: + (easyar_OutputFrameJoin *)createWithJoiner:(int)inputCount joiner:(easyar_OutputFrame * (^)(NSArray<easyar_OutputFrame *> *))joiner
Swift: public static func createWithJoiner(_ inputCount: Int32, _ joiner: @escaping ([OutputFrame]) -> OutputFrame) -> OutputFrameJoin
C#: public static OutputFrameJoin createWithJoiner(int inputCount, Func<List<OutputFrame>, OutputFrame> joiner)