grabber api and feature unification (#462)

* move setvideomode to common place

* implement more croping and 3d support

* more api unification

* more refactoring

* osx fix

* next step

* add a mock for osx grabber. Now it is possible to test compile on none osx platforms.

* more unifications ...

* remove obsolete includes and grabbers are not dyn allocated. dispmanx needs rework an probaly not work atm

* first version of dispmanx mock. it compiles, but outputs a black image

* now dispmanx mock works!

* activate mocks in travis linux build
prepare dispmanx to rgb image out

* dispmanx now with image rgb output
fix deadlock with w/h -1 in grabber v4l
cleanups

* fix json

* fix some runtime stuff

* Update FramebufferWrapper.cpp

fix missing code

* unify grabframe

* 3d and croping for amlogic

* fix setimage not working

* make use of templates
save some codelines

* save more code lines
This commit is contained in:
redPanther
2017-08-12 07:55:32 +02:00
committed by GitHub
parent 317a903b14
commit 9eff6384cc
61 changed files with 830 additions and 748 deletions

View File

@@ -15,8 +15,8 @@ X11Wrapper::X11Wrapper(int grabInterval, bool useXGetImage, int cropLeft, int cr
const Image<ColorRgb> & X11Wrapper::getScreenshot()
{
const Image<ColorRgb> & screenshot = _grabber.grab();
return screenshot;
_grabber.grabFrame(_screenshot, true);
return _screenshot;
}
void X11Wrapper::start()
@@ -36,8 +36,8 @@ bool X11Wrapper::displayInit()
void X11Wrapper::capture()
{
const Image<ColorRgb> & screenshot = _grabber.grab();
emit sig_screenshot(screenshot);
_grabber.grabFrame(_screenshot, true);
emit sig_screenshot(_screenshot);
}
void X11Wrapper::setGrabbingMode(const GrabbingMode mode)

View File

@@ -55,4 +55,6 @@ private:
/// The grabber for creating screenshots
X11Grabber _grabber;
Image<ColorRgb> _screenshot;
};

View File

@@ -98,7 +98,7 @@ int main(int argc, char ** argv)
catch (const std::runtime_error & e)
{
// An error occured. Display error and quit
Error(Logger::getInstance("X11GRABBER"), "%s", e.what());
Error(Logger::getInstance("X11GRABBER"), "%s", e.what());
return -1;
}