mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-17 11:45:25 +00:00
qtkitvideosrc: run the mainRunLoop for a while if not running.
QTCaptureSession::addInput and QTCaptureSession::addOutput call NSObject::performSelectorOnMainThread internally so they need the mainRunLoop to run at least for a while to complete.
This commit is contained in:
parent
b6d5763e05
commit
ec6c307334
1 changed files with 11 additions and 0 deletions
|
@ -241,6 +241,7 @@ openFailed:
|
|||
GstStructure *s;
|
||||
NSDictionary *outputAttrs;
|
||||
BOOL success;
|
||||
NSRunLoop *mainRunLoop;
|
||||
|
||||
g_assert (device != nil);
|
||||
|
||||
|
@ -276,6 +277,16 @@ openFailed:
|
|||
[output setDelegate:self];
|
||||
[session startRunning];
|
||||
|
||||
mainRunLoop = [NSRunLoop mainRunLoop];
|
||||
if ([mainRunLoop currentMode] == nil) {
|
||||
/* QTCaptureSession::addInput and QTCaptureSession::addOutput call
|
||||
* NSObject::performSelectorOnMainThread internally. If the mainRunLoop is
|
||||
* not running we need to run it for a while for those methods to complete
|
||||
*/
|
||||
GST_INFO ("mainRunLoop not running");
|
||||
[[NSRunLoop mainRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:1]];
|
||||
}
|
||||
|
||||
return YES;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue