[LOGGED] Max JavaScript Actor Outputs Increase
-
I am using Bernie's ( @peuclid ) wonderful Javascript actor for calculating the position of anyone on a Zoom call from a gallery input and some live ZoomOSC data. The maximum number of video feeds in the gallery view currently supported by Zoom is 49. The JS actor needs 3 outputs reserved for metadata (number of videos, width of each box, height of each box) and then two additional outputs for every video feed to provide horizontal and vertical pans. For a full Zoom call, this is 3 + 2 * 49 = 102, which is in excess of the 99 outputs allowed by a JS actor. Can we increase the limit so that this workflow can function for Zoom calls of any size? I've got a client who wants to use Isadora to power a video matrix for some broadcast events, and they'll need all 49 it seems.
-
@liminal_andy said:
Can we increase the limit so that this workflow can function for Zoom calls of any size?
Since that's not going to happen overnight, what about changing the way the actor functions:
1) First output is JSON record with calls + width + height { "calls":3, "width":100, "height":75 }
2) Subsequent outputs are horz and vert { "horz":1, "vert":1 }Could be JSON arrays as well if that's simpler:
1) First output is JSON array with calls + width + height [ 3, 100, 75 ]
2) Subsequent outputs are horz and vert [ 1, 1 ]Then you could use the JSON Parser actor to extract the values.
If this could happen, the existing 99 outputs could accommodate 98 people on the call.
For this use case, if you simply did #1, you'd have enough for 49 people on the call. (1st output with three items leaves 98 more outputs, divided by 2 gives 49 people.)
Best Wishes,
Mark -
@mark Yep, 1 is my current workaround. Just logging this for the future I suppose, if it's possible. Thanks!
-
@liminal_andy said:
just logging this for the future I suppose, if it's possible. Thanks!
It's totally possible... 99 was an arbitrary limitation. I didn't think we'd ever get to the point where people would need that many. But Isadora users continue to amaze.
Best Wishes,
Mark -
@mark I hadn't heard of the JSON Parser actor until now. That's really helpful and makes output cleaner. Rather than a big array where we need to keep track of what element is where, we can have nice names associated with everything.
Thanks,
Bernie
-
@peuclid said:
I hadn't heard of the JSON Parser actor until now. That's really helpful and makes output cleaner.
Just take note that it's not included with the main application; people need to download those plugins.
Best Wishes,
Mark -
@mark Yup, I saw that. That's a nice one to have. Perhaps some day it can get included in the product.
I just updated my repo with the sample code to do it that way but left an escape hatch to revert to the old version.
There's now a variable `OLDSTYLE` that can be set to `true` to return the play array, but the new default is to return values like:
[ { count: <# frames in gallary>, width: <width of each of the frames>, height: <height of each of the frames> }, { panH: <H position for frame 1>, panV: <V position for frame 1> }, { panH: <H position for frame 2>, panV: <v position for frame 2> }, { panH: <H position for frame 3>, panV: <V position for frame 3> } ... ]
-
<3 ;-)