• 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
3rdparty Loading commit data...
apps Loading commit data...
cmake Loading commit data...
data Loading commit data...
doc Loading commit data...
include Loading commit data...
modules Loading commit data...
platforms Loading commit data...
samples Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
CMakeLists.txt Loading commit data...
README Loading commit data...
index.rst Loading commit data...