Hi,
I have a use case where I need to take the output of capture node "tivxCaptureNode" and send it to a custom module. Depending on some condition, this module has to either bypass its input or do some processing on it and then output it. Basically, this module will give two different types of output (direct bypassed one or the processed one). Lets call these output as ModOutput0 and ModOutput1. These two outputs have to be processed separately by different instances of VISS (The VISS has to run with two different set of configurations internally since the image formats and tuning parameters are completely different).
|-------------------------------------|
|----[ModOutput0]--------------------------->| VISS0 |------------[VISSOP0]-------> Display
| | | |
Capture Node Output -----[RawOutput]------> Custom Module------ |-----[ModOutput1]--------------------------> |VISS1? (VISS) |-------------{VISSOP1]---|----> Another Module
|-------------------------------------|
1) I can create a vx_object_array of two elements(ModOutput0 and ModOutput1) and give it to VISS and call replicate node on it. The problem is the above two(ModOutput0 and ModOutput1) paths are not supposed to run in parallel : at a time either ModOutpu0 is valid or ModOutput1 is valid(to be more precise alternate frames need to go to respective VISS). If I use replicate node, VISS will simultaneously process both the outputs which is not required.
2) How can I change the tuning parameters for each instance of VISS(VISS0 main node and VISS1 replicate node). Or should I create single instance of VISS(without replication), but change the configuration parameters of VISS dynamically (In that case I wont have ModOutput0 & ModOutput1, instead a single ModOutput ) for the respective alternate frames ?
3) Since ModOutput1 is a direct bypass (this is equivalent to the camera Output [RawOutput]), is there any way I can avoid memcpy inside the Custom Module i.e. can I send output buffer of capture node to VISS?
Regards,
Krishna

