Using ZoomSDKRawDataSender

Description
We are having difficulty in starting the generate video as the source.

Which macOS Meeting SDK version?
zoom-sdk-macos-5.13.0.13865

Device:

  • Device: Apple MacBook Pro (13-inch, M1)
  • OS: macOS Ventura 13.0.1

Additional context

We are attempting to setup a sender with the following.

var controller = ZoomSDK.shared().getRawDataController()
var sourceController : ZoomSDKRawDataVideoSourceController! = nil
var sender : ZoomSDKRawDataSender! = nil

func setup()
{
zoomRawDataController?.controller?.getRawDataVideoSourceHelper(&sourceController)
		sourceController?.setExternalVideoSource(self)
		sourceController?.registerRawDataPreProcessor(self)
}

func loopFunc()
{
		let pixelbufferdata = pixelbufferdata()
		sender.sendRawData(pixelbufferdata)
}

func onInitialize(_ sender: ZoomSDKRawDataSender!, supportedCapabilityList capabilityList: [Any]!, suggestCapability suggestCap: ZoomSDKVideoCapabilityItem!)
	{
        print("VideoSource onInitialize")
		self.sender = sender
	}

We are getting the call to onInitalize, then onStartSend, but then it will shortly call onStopSend then onUnitialize.

We cannot seem to keep the stream active. And we would also like to know if this is even feasible. We are trying to send a CGImage up to Zoom to act like a camera.

Is this possible? Do we need to initialize anything else or what is the correct order to start things up?

We did get the sender to start sending. Now, we are finding it difficult to had off to ZoomSDKRawDataSender the correct format.

We have a CGImage that we want to send to ZoomSDKRawDataSender. If you have any tips on how to convert it, then we would be open and appreciative.

Here is a new update. We do now have the correct image being sent to Zoom, and it will show up in meeting. So, this works. However, we are stuck at 640x480 now. Enable Catch HD Video is set to true, and when I check to see if zoom knows that, the return on isCatchHDVideoOn() that returns true as well. So we are asking zoom to capture HD and it says that it will, and so when we send a 720 frame, the view is masking out anything more than 480.

This is the test picture

This is the resulting image we get back from zoom.

At long last this has been solved. You can do exactly what we was trying to do. However, for any developer that may need this information too, here is a brief fix for the above resolution issue.

Paid accounts can use 720p. The following button has to be set to allow your account to have HD.

After that, you need to open a ticket with Zoom support to have them also enable something on their side.
Never would have thought that unless I didnt stumble onto this video:
Complete process to enable HD video

Then when all of this is enabled. You will get a call to onInitialize(_) in the SDK. And you will receive back (if your computer and connection is good enough) the following…
compatibility

Hope this helps any other developer to understand how this stuff works.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.