Custom camera with AVFoundation