drothlis/stb-tester — pull request #100 by wmanley (2014-02-14 17:43:47+00:00)
Title: Smart tv support

Like set-top boxes, Smart TVs run complex software, including software not provided by the manufacturer (e.g. apps). Unlike set-top boxes they provide no digital video output - the only video output they provide is to screen. So to support testing software running on TVs we need to capture the contents of the TV screen.

We do this with a webcam and some image processing to get the contents of the screen such that we can feed that into GStreamer. The image processing will correct for problems with the positioning of the camera and issues with the lens (which we will call "flattening") as well as problems with the colours and brighness of the pixels.

This pull request includes two GStreamer elements for performing this correction, a calibration program to configure them and a test program to measure the effectiveness of the calibration. It also includes many changes to stbt core which were required to implement stbt camera. Note this functionality depends on GStreamer 1.0 support which has it's [own pull request #71](https://github.com/drothlis/stb-tester/pull/71).

It's not quite ready to merge but it's ready enough to start the review process. The things already on my TODO list:

* Remove spec file changes
* Scrap rpm spec file generation
* Add self test for passing arguments through stbt run
* Write release note for things that this change will break. e.g. now the arguement will be passed to the test script, not stbt run:

stbt run script.py --source-pipeline=fdafdas
* Test stbt-tv eval addition with VidiU as it has a backslash in it.
* Update docstring for set_config refactoring. See api-doc.sh
* _set_config: split tests out into tests/ directory
* gst_to_opencv checking :improve Commit message
* Move stbt camera Makefile stuff to bottom of Makefile
* Move from extra/camera to camera
* Improve documentation of stbt run commit
* Write test for passing numpy array to match
* Add documentation for passing numpy array to match
* Rename generate_svg_video to still_image_to_video
* Move still_image_to_video to top
* Chop PipelineRunner down
* Add module docstrings to files
* Rename stbtwatchplane to stbtgeometriccorrection
* Rename stbtvignettecorrect to stbtcontraststretch
* Write test for geometric calibration