Hello @loom,
See:
The camera frame rate is slower than draw() and your print statement will print when it is not available.
This print statement would better reflect the condition:
println("new frame from the device is NOT available to read.");
This will help to visualize when a frame is not available and show a red background between updated cam frames:
void draw()
{
background(255, 0, 0); // Try with and without this line
if (cam.available() == true)
{
cam.read();
image(cam, 0, 0, width, height); // Try with this here or below
}
//image(cam, 0, 0, width, height); // Try with this here or below
}
Keep in mind that image() is displaying the last frame that was captured and only updated when a new one is available.
This may be of interest:
Another related topic:
It helps to resolve problems if you share which Processing version, Video library and operating system you are using.
I am using:
- Processing 4.2
- Video Library for Processing 2.2.2
- Windows 10
This shows up in the console with your code (else printl() removed):
:)