simplify options parsing code and ensure min-speed/min-quality are not greater than the actual speed/quality specified

git-svn-id: http://xpra.org/svn/Xpra/trunk@3537 3bb7dfac-3a0b-4e04-842a-767bc560f471
speed and quality calculation tweaks:
* easier to read?
* remove duplicate target value logging
* quality: ensure we don't penalize on start, START_DELAY is always higher then min_delay, so wait until we have sufficient data before using this factor to lower quality

git-svn-id: http://xpra.org/svn/Xpra/trunk@3538 3bb7dfac-3a0b-4e04-842a-767bc560f471
calculator logging tweak: XPRA_VIDEO_DEBUG now controls all calculation logging
* leave it unset (or to "-1") to disable the logging
* set it to "0" for instantaneous logging (unbuffered)
* any other value sets the delay between log dumping in seconds

Also, use XPRA_FACTORS_DEBUG=1 to enable detailed factor logging

git-svn-id: http://xpra.org/svn/Xpra/trunk@3539 3bb7dfac-3a0b-4e04-842a-767bc560f471
add "scaling" property that client applications can set, had to move the property handlers to the superclass...

git-svn-id: http://xpra.org/svn/Xpra/trunk@3540 3bb7dfac-3a0b-4e04-842a-767bc560f471
misc fixes/enhancements pre #328:
* allow client to specify "auto_refresh_encoding"
* improve get_current_[speed|quality]
* ensure we honour the encoding if specified as damage option
* rename send_full_screen_update to send_full_window_update to prevent confusion with fullscreen flag
* if we get an error during encode, take shortcut out rather than error in network encoding later

git-svn-id: http://xpra.org/svn/Xpra/trunk@3541 3bb7dfac-3a0b-4e04-842a-767bc560f471
remove rendundant logging

git-svn-id: http://xpra.org/svn/Xpra/trunk@3542 3bb7dfac-3a0b-4e04-842a-767bc560f471
typo

git-svn-id: http://xpra.org/svn/Xpra/trunk@3543 3bb7dfac-3a0b-4e04-842a-767bc560f471
prepare for #328: change ImageWrapper's rgb_format to pixel_format since we use it for all sorts of formats (yuv, etc)
Also add number of "planes".

git-svn-id: http://xpra.org/svn/Xpra/trunk@3544 3bb7dfac-3a0b-4e04-842a-767bc560f471
#328 split yuv from codecs:
* split x264 into x264_enc and dec_avcodec
* add csc_swscale module
* add test/example modules: csc_nvcuda and nvenc
* setup.py updates
* split decoder and csc client side too, and rename _video_decoder_lock to _decoder_lock
* move selection of encoder and csc modules to a dedicated class: xpra.codecs.VideoEncoderPipeline
* modules export their "specs" so that the pipeline can choose the most suitable modules to accomplish the encoding task (and statisfy the format requirements: pixel format supplied by the server and formats supported by the client)
* codec code to handle non-planar rgb formats as input and output
* csc code to deal with rgb planar modes
* listen for "fullscreen" and "scaling" window attributes and use window downscaling to achieve higher fps (as long as quality setting allows it)

git-svn-id: http://xpra.org/svn/Xpra/trunk@3545 3bb7dfac-3a0b-4e04-842a-767bc560f471
updated patches for r3545

git-svn-id: http://xpra.org/svn/Xpra/trunk@3546 3bb7dfac-3a0b-4e04-842a-767bc560f471
updated for r3545: ensure we include the new .c and .h locations

git-svn-id: http://xpra.org/svn/Xpra/trunk@3547 3bb7dfac-3a0b-4e04-842a-767bc560f471
new patches for new static build params

git-svn-id: http://xpra.org/svn/Xpra/trunk@3548 3bb7dfac-3a0b-4e04-842a-767bc560f471
oops: cut&pasted with wrong macro nesting

git-svn-id: http://xpra.org/svn/Xpra/trunk@3549 3bb7dfac-3a0b-4e04-842a-767bc560f471
pillow is in gentoo now, so use a virtual package so users can choose that one (as PIL is pretty much dead at this point)

git-svn-id: http://xpra.org/svn/Xpra/trunk@3550 3bb7dfac-3a0b-4e04-842a-767bc560f471
build fixes for win32: MSVC doesn't know about "inline"

git-svn-id: http://xpra.org/svn/Xpra/trunk@3551 3bb7dfac-3a0b-4e04-842a-767bc560f471
move ImageWrapper to a common global location (no longer used in server only)

git-svn-id: http://xpra.org/svn/Xpra/trunk@3552 3bb7dfac-3a0b-4e04-842a-767bc560f471
allow the client to specify more than one encoding for lossless refresh: choose the first one from the list that the server also supports

git-svn-id: http://xpra.org/svn/Xpra/trunk@3553 3bb7dfac-3a0b-4e04-842a-767bc560f471
ensure we don't scale if the client does not support it, and clamp scaling values to a reasonable range: 0.1 to 1.0 only

git-svn-id: http://xpra.org/svn/Xpra/trunk@3554 3bb7dfac-3a0b-4e04-842a-767bc560f471
distinguish between the actual colorspace (the one actually used - as we're told by swscale) and the one used for instantiating the decoder class (the one we get from the server) so we can continue to use the same decoder (otherwise, we keep thinking it's a new picture encoding when it's not)

git-svn-id: http://xpra.org/svn/Xpra/trunk@3555 3bb7dfac-3a0b-4e04-842a-767bc560f471
don't just clean the decoder instance, free it too so it won't be re-used!

git-svn-id: http://xpra.org/svn/Xpra/trunk@3556 3bb7dfac-3a0b-4e04-842a-767bc560f471