-
Add a global property controlling whether or not GUI functions are enabled
-
Qt prefers calling abort to throwing exceptions, so there's no use trying to recover from a failed attempt to create a QApplication. Add an optional bool use_gui paramter to br_intialize in case people want to set that value without going through the command line arguments.
-
Rename Show2 to Show, remove special casing of Parallelism=0 (not ready to merge yet)
-
Also, remove some extraneous curly braces.
-
Default parallelism to IdealThreadCount+1, remove checks for input parallelism > IdealThreadCount, since we find that a higher thread count can help in some circumstances. Don't use release/reserve thread to increase the size of the thread pool in init, instead just set the max pool size directly.
-
Drop most special casing of parallelism=0, if parallelism=0 is received, set the max number of threads to 1, and go through the same code as when more threads are available. Some outstanding issues, the following transforms are blocked out since they aren't consistent with this change: EditTransform ElicitMetaDataTransform StasmTransform In stasm's case, a global mutex must be used, similarly ElicitMetaData reads from stdin, and would also require a global lock. EditTransform can probably be reimplemented through Qt similarly to Show
-
Also, change the default waitKey value to be consistent with original Show
-
When doing a const project, using the default CompositeTransform implementation (with time-varying child transforms), don't make twice as many copies of things as necessary. Also, allow stream to use the CompositeTransform const project method.
-
Now that we are explicitly cloning every frame that we get, releasing VideoCaptures no longer causes segfaults.
-
We can just send a close event, then we don't have to worry about new display events showing the window after we hid it.
-
Make show2 hide its window if finalize is called, also change the update image signal to a blocking type to allow this to work correctly (this will actually lock the frame rate of a stream to whatever speed qt can update windows at, so maybe should be optional) After calling VideoCapture::read, make a clone of the returned matrix since it has become clear that in at least some cases, the returned matrix is an alias of some internal buffer of the VideoCapture.
-
Move TimeInvariantTransformWrapper to openbr_internal.h, add a default way for composite transforms to handle const project calls when they have time-varying child transforms.
-
Rather than showing the (empty) window after init is called, wait until actually told to display an image to show the window.
-
-algorithm something[distribute=false] prevents the default DistributeTemplate from being prepended to the transform part of "something"