• Frédéric Devernay's avatar
    fix cap_qtkit.mm for multithreaded applications · 4ad12a68
    Frédéric Devernay authored
    cap_qtkit does not work when the capture is run outside of the main
    thread.
    If the capture is launched in a separate thread, then [NSRunLoop
    currentRunLoop] is not the same as in the main thread, and has no timer.
    see
    https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/F
    oundation/Classes/nsrunloop_Class/Reference/Reference.html
    "If no input sources or timers are attached to the run loop, this
    method exits immediately"
    
    Using usleep() (which I previously proposed, and was reverted) is not a
    good alternative, because it may block the GUI.
    
    Here is the new proposed solution:
    - create a dummy timer so that runUntilDate does not exit immediately
    - simplify the loop by using runUntilDate instead of runMode:beforeDate
    - fix potential memory leaks (pointed out by Xcode's static analysis)
    - fix init to follow Objective-C guidelines
    - fax warnings about conversions from size_t to int
    4ad12a68
Name
Last commit
Last update
..
doc Loading commit data...
include/opencv2/highgui Loading commit data...
perf Loading commit data...
src Loading commit data...
test Loading commit data...
CMakeLists.txt Loading commit data...