face_detector.py strange behavior
It seems that setMinFrameDuration is in camera.captureOutput object ('AVCaptureVideoDataOutput').
But there is also setActiveVideoMinFrameDuration in camera.captureDevice ('AVCaptureDevice').
I couldn't make them working too both.
JonB last edited by
increase FRAME_PROC_INTERVAL until you stop seeing FrameLate constantly. or set to 1 to go as fast as possible. you will probably see FrameLate, but if you start seeing OutOfBuffers or something like that, it means you are doing some processing and forgetting to release the capture buffer.
there are many hoops to jump through to get the actual min frame interval set, i think i have all the steps correct, though am on an older device. see if it works for you. I have a DESIRED_FPS that you can change to see if you can get <30 fps..
does this one hang? if so, what message do you get on the first frame when it comes back?
This one works: link
from ctypes import * from objc_util import * class CMTime(Structure): _fields_ = [('value', c_int64), ('timescale', c_int32), ('flags', c_uint32), ('epoch', c_int64)] AVCaptureDevice = ObjCClass('AVCaptureDevice') _device = AVCaptureDevice.defaultDeviceWithDeviceType_mediaType_position_( 'AVCaptureDeviceTypeBuiltInWideAngleCamera', 'vide', 1) dur = _device.activeVideoMinFrameDuration(restype=CMTime, argtypes=) dur.value *= 3 _device.lockForConfiguration_(None) _device.setActiveVideoMinFrameDuration_(dur, restype=None, argtypes=[CMTime]) _device.unlockForConfiguration()
@JonB 350 passes and still works. I'll play with parameters to see how it will go.