I am getting an error –9405, couldntGetRequiredComponent, with
SGNewChannel(m_Grabber, VideoMediaType, &m_Channel)
on Mac system 10.9.1. This code works on older systems. Is anyone else having this issue?
Edit - Initialization code:
// standard SG initialization
err = OpenADefaultComponent(SeqGrabComponentType, 0, &m_Grabber);
err = SGInitialize(m_Grabber);
err = SGSetDataRef(m_Grabber, 0, 0, seqGrabDontMakeMovie);
After spending some time reverse engineering what
SGNewChanneldoes on both OS X 10.8 and 10.9 I have found what might be the cause of the new behavior on 10.9.The
SGNewChannelfunction tries to open a video digitizer component with some code roughly equivalent to this (minus the logs):If you run this on 10.9, you will get this result:
The three calls to
OpenAComponentfail (once with error -9408 and twice with error 704).If you run this on 10.8, you will get this result:
Notice that the last calls succeeds!
The Apple USB Video Class Video Digitizer component is located at
/System/Library/QuickTime/QuickTimeUSBVDCDigitizer.component. So I looked at what’s different on 10.8 and 10.9 in this component by setting a symbolic breakpoint in lldb onAPWVDOUSBVDCDigitizerEntrywhich is the entry point of this component.It turns out it may be a sandbox related issue. On 10.9, there is a call to
sandbox_checkfordevice-camerathat doesn’t exist on 10.8. So I suggest that you try to add an entitlement to access the camera and see if that solves the problem.