Unbind plugin from assistant
stang2019 opened this issue · 5 comments
Is there anyway to untie with DPA? if the virualcam doesn't need access hardware, the kext will not be necessary, I also don't want DPA, according the document, looks like the DP plugin shall work with it self without DPA and kext (I use TCP/IP for the source of the video frames).
If you could provide pure working plugin which could find by app (WebRTC, Zoom etc), it will be great!!!!
If you don't want/have to share state between plugin instances then there is indeed no need for the DPA. As for how to unbind, the code is pretty complicated at places as you can see, my suggestion for you would be to start by looking at the calls to DPA::Sample::...
on the plugin side and simply replace them with whatever fits your needs. I'm not planning to implement this because of lack of time and personal interest but feel free to fork the repo and change it for yourself as you like.
Thank you sir, that's really quick response. In the SDK plugin export (AppleCMIODPSampleNewPlugIn), looks like almost every line of code has assistant involved, do we just need:
CMIO::DP::Sample::PlugIn* plugIn = new CMIO::DP::Sample::PlugIn(requestedTypeUUID);
plugIn->Retain();
return plugIn->GetInterface();
BTW, does this method works with Mojave? I tried several prebuild tarball, none of them shows on Zoom, Photo Booth, WebRtc etc, but your tool can see something.
Great appreciate your response.
-Steven
Right, in AppleCMIODPSampleNewPlugIn
you can throw out all the mach_*
and bootstrap_*
stuff.
I believe the plugin should work just fine* on Mojave as well, but make sure that the device/stream properties whose values were provided by the assistant are set to something meaningful, otherwise CMIO may reject it.
*Caveat: notarized apps with hardened runtime which didn't explicitly opt out from the "library validation" feature WILL NOT LOAD 3rd party code, CMIO plugins included. Since Photo Booth and FaceTime already ship hardened on Mojave, your plugin may be discovered by them but they will refuse to use it. Similarly, if e.g. Zoom decides to release an update in which they ship a notarized, hardened app, then that's the end of the line for your plugin. I've already tried to get information about this from Apple but they refused to provide any insights on the future of plugins. Hopefully the upcoming WWDC will clarify some bits.
Thanks a lot, that's very helpful.
Hi stang,
Have got success in unbinding assistant and kext from plugin.
I am stuck in that.
Any help is thankable.