I am currently unable to run any code using processing.video's Capture object- including the basic Example sketches.
It seems that instantiating the Capture object is where the crash occurs, and it happens regardless of using new Capture(this, width, height); or when attempting to specify with new Capture(this, cameras);, because it also seems to crash on Capture.list().
Any insight would be greatly appreciated, thanks!
2019-10-14 13:20:36.015 java[24743:1078170] -[__NSArray0 addObjectsFromArray:]: unrecognized selector sent to instance 0x7fff8bc482a0 2019-10-14 13:20:36.016 java[24743:1078170] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArray0 addObjectsFromArray:]: unrecognized selector sent to instance 0x7fff8bc482a0'
Indeed. This is a serious problem for my students! I tried unsuccessfully to implement the workarounds suggested in the GitHub (swap out library with beta, and use terminal to change files). I wish I could help in fixing this issue but I just don’t have that knowledge – sorry. But I’m very keen that this gets fixed and the video library gets updated asap – we have a project coming up in the new year which uses a lot of live camera tracking techniques.
BTW – my workaround here to get live video into Processing has been to either use a Kinect, or opening a live camera window in Quicktime and using Syphoner to send it to Processing via Syphon.
I can play movies but not capture video after Catalina update. Some of my students using Catalina reported that they could not play movies either. 1 of them reported he solved it by uninstalling the Video library and then reinstalling it again – apparently.
Hey Neil. Thanks for getting back. It may well be something like this – it would be great if it was simple. While I understand what is required, I am not in a position to implement anything within any codebase. I’m dependent upon good people like yourself! If there was something I could call from Processing to force the permission that would be fine. Or a flag I could set (like in Android mode), or something.
If this is the answer I think it just involves adding the NSCameraUsageDescription key (with some String value) in to the Info.plist file inside the Processing app download (eg. Processing.app/Contents/Info.plist ) No coding, just a couple of lines of XML.
Hi all. Thanks for your help in trying to get video capture working. enigmeta I followed you excellent instructions but instead of GettingStartedCapture failing by reporting:
libc++abi.dylib: terminating with uncaught exception of type NSException
… it now reports there being no cameras available:
Processing video library using GStreamer 1.12.4
There are no cameras available for capture.
String cameras = Capture.list();
I checked my System Prefs in Privacy and ensured Processing is granted access to the camera. I’m using Processing 3.5.4 and the ‘Video Library Release 6 (version 2.0-beta4)’ on MacOS Catalina (10.15.3)