Fixed race condition in DirectShow camera grabber. Also fixed amount of data copied when MJPEG is used by camera, only copies amount of data for frame, which is variable length, rather than the maximum possible buffer size.
Added to MS Windows video output a context menu (right mouse button click) that allows changing the size of the window, and in particular a "full screen" mode. Also added a text output on the screen indicating the actual image size and frame rate.
Make sure tinyjpeg is compiled with optimiser even in debug mode. Simply too slow otherwise.

Allow MJPEG resolution to be on 8 pixel boundary and not 16 as JPEG can do 8x8 macroblocks and HD1080 is not actually divisible by 16!

Fixed error message output in tinyjpeg code.
Removed extranesou newline in MJPEG log
Fixed the scaeled SI units string conversion for floating point.
Merged revision(s) 30108 from ptlib/trunk:
Added missing GUID for I420 (aka YUV420P) format that a camera, e.g. the Logitech C920, can use instead of IYUV, which is also YUV420P. MJPEG was actually NOT required!
Fixed GNU compile
Fixed memory/handle leak in "external thread" handling. Also tidied some logging in that area.
Fixed the setting of the "native flip" flag in DirectShow grabber, it appears to be dependent on the selected colour space.
Removed more MJPEG special cases, now moved into the specific converter. Back port from trunk.
Fixed reported link error, thanks  Sysolyatin Pavel
Fixed command line argument option string parsing, must have distinction between an empty option and no option present.
Fixed issue with std::iostream::flush() affecting the input side of the stream. It is really just to flush the output. This causes major issues with simultaneous reading/writing in threads, especially for TCP sockets.
Fixed no trace warning.
Update symbols