13.1 Ventura CMIO multiple-client connections confuse the CMIO system.

I have solved most of the obvious challenges with CMIO Extensions but am finding some strange edge cases that are proving difficult to debug.

I have a CMIO Extension which is essentially the straight boilerplate code from the Xcode template. I always return here when I have strange behaviour just in case it's my strange behaviour and not the system.

The problem appears on Ventura 13.1 (Apple Silicon - I'll also check Monterey when I'm back at that machine later tonight).

The CMIO Extension is installed and recognized. If I launch QuickTime Player and start a recording, everything looks good. If I also launch Photo Booth while QuickTime is running, the camera frames are also streaming. However, if I start quitting and launching QuickTime and Photo Booth to force disconnection/connection events in the extension eventually there are some messages spewed into the os_log by CMIO, the frames stop running and QuickTime hangs when I try to quit.

Getting this os_log message sporadically while running QuickTime Player only (record ready mode) and switching back and forth between two different CMIO Extensions.

__CMIO_Unit_Input_HAL.cpp:1724:DoInputRenderCallback Dropping 512 frames, because we're out of buffers __

If you see this problem in your extension using Photo Booth as a client try creating the CVPixelBufferRef as an individual allocation rather than from a pool.

13.1 Ventura CMIO multiple-client connections confuse the CMIO system.
 
 
Q