Tool/software:
Hi,
I have a custom pipeline pictured below:

EDIT: I have made a new picture that more accurately resembles the pipeline that I am testing with

I'm having trouble with the Mosaic node. I'm building these two pipelines by hand (similar to app single cam twice). They have the same resolution and the same bit depth. I put the output of MSC0 and MSC1 into their own unique object arrays. I'm configuring the mosaic node as follows:
static void set_img_mosaic_params(ImgMosaicObj *imgMosaicObj, vx_uint32 in_width, vx_uint32 in_height, vx_int32 numCh)
{
vx_int32 idx, ch;
vx_int32 grid_size = 2;
imgMosaicObj->out_width = 1920;
imgMosaicObj->out_height = 1080;
imgMosaicObj->num_inputs = numCh;
idx = 0;
tivxImgMosaicParamsSetDefaults(&imgMosaicObj->params);
for(ch = 0; ch < numCh; ch++)
{
vx_int32 winX = ch%grid_size;
vx_int32 winY = ch/grid_size;
imgMosaicObj->params.windows[idx].startX = (winX * (in_width/grid_size));
imgMosaicObj->params.windows[idx].startY = (winY * (in_height/grid_size));
imgMosaicObj->params.windows[idx].width = in_width/grid_size;
imgMosaicObj->params.windows[idx].height = in_height/grid_size;
imgMosaicObj->params.windows[idx].input_select = ch;
imgMosaicObj->params.windows[idx].channel_select = 0;
idx++;
}
imgMosaicObj->params.num_windows = idx;
/* Number of time to clear the output buffer before it gets reused */
imgMosaicObj->params.clear_count = NUM_BUFS;
}
// In the main method:
{
// ...
vx_uint16 resized_width, resized_height;
appIssGetResizeParams(IMX728_OUT_WIDTH, IMX728_OUT_HEIGHT, 1920, 1080, &resized_width, &resized_height);
set_img_mosaic_params(&obj->graph_obj->mosiacObj, resized_width, resized_height, 2);
status = app_init(obj->graph_obj);
// ...
}// Later - in create graph
vx_uint16 resized_width, resized_height;
appIssGetResizeParams(IMX728_OUT_WIDTH, IMX728_OUT_HEIGHT, 1920, 1080, &resized_width, &resized_height);
vx_image output_template = vxCreateImage(obj->context, resized_width, resized_height, VX_DF_IMAGE_NV12);
obj->mosiacObj.input_arr[0] = vxCreateObjectArray(obj->context, (vx_reference) output_template, 1);
vxReleaseImage(&output_template);
vx_image output_template2 = vxCreateImage(obj->context, resized_width, resized_height, VX_DF_IMAGE_NV12);
obj->mosiacObj.input_arr[1] = vxCreateObjectArray(obj->context, (vx_reference) output_template2, 1);
vxReleaseImage(&output_template2);
...
app_create_graph_img_mosaic(obj->graph, &obj->mosiacObj, NULL);
tivxSetNodeParameterNumBufByIndex(obj->mosiacObj.node, 1, NUM_BUFS);
and I get this output:
```
[MCU2_0] 86.341393 s: VX_ZONE_ERROR: [tivxMemRegionTranslate:52] Invalid memtype
[MCU2_0] 86.341436 s: VX_ZONE_ERROR: [tivxMemShared2PhysPtr:334] Invalid mem_heap_region -1662795120
[MCU2_0] 86.341556 s: VX_ZONE_ERROR: [tivxKernelImgMosaicMscDrvSubmit:1075] Failed to Submit Request: -2
[MCU2_0] 86.407941 s: VX_ZONE_ERROR: [tivxMemRegionTranslate:52] Invalid memtype
[MCU2_0] 86.407983 s: VX_ZONE_ERROR: [tivxMemShared2PhysPtr:334] Invalid mem_heap_region -1662795120
[MCU2_0] 86.408129 s: VX_ZONE_ERROR: [tivxMemRegionTranslate:52] Invalid memtype
[MCU2_0] 86.408156 s: VX_ZONE_ERROR: [tivxMemShared2PhysPtr:334] Invalid mem_heap_region -1662795120
[MCU2_0] 86.408197 s: VX_ZONE_ERROR: [tivxKernelImgMosaicMscDrvSubmit:1075] Failed to Submit Request: -2
```
Have I misunderstood how the mosaic node works?




