Eventually the only workaround here I could find was to save the image data into an image file and then use gateway server handle in order to read it back to a frame buffer and then save it to and actual clip. It is a bit silly but seem to work for now though might need a bit wider testing.
the code loos something like this:
gateway_server_id = WireTapServerId("Gateway", "localhost")
gateway_server_handle = WireTapServerHandle(gateway_server_id)
clip_node_handle = WireTapNodeHandle(gateway_server_handle, file_path + '@CLIP')
fmt = WireTapClipFormat()
if not clip_node_handle.getClipFormat(fmt):
raise Exception("Unable to obtain clip format: %s." % clip_node_handle.lastError())
buff = "0" * fmt.frameBufferSize()
if not clip_node_handle.readFrame(0, buff, fmt.frameBufferSize()):
raise Exception(
'Unable to obtain read frame %i: %s.' % (frame_number, clip_node_handle.lastError())
)
server_handle = WireTapServerHandle('localhost')
destination_node_handle = WireTapNodeHandle(server_handle, self.destination_node_id)
dest_fmt = WireTapClipFormat()
if not destination_node_handle.getClipFormat(dest_fmt):
raise Exception('Unable to obtain clip format: %s.' % clip_node_handle.lastError())
if not destination_node_handle.writeFrame(
frame_number, buff, dest_fmt.frameBufferSize()
):
raise Exception(
"Unable to obtain write frame %i: %s."
% (frame_number, destination_node_handle.lastError())
)
os.remove(file_path)