#include "Component/ModelManager.H"
#include "Devices/DeviceOpts.H"
#include "Devices/DiskDataStream.H"
#include "Devices/FrameGrabberConfigurator.H"
#include "Image/Image.H"
#include "Psycho/PsychoDisplay.H"
#include "Psycho/EyeTrackerConfigurator.H"
#include "Psycho/EyeTracker.H"
#include "Psycho/PsychoOpts.H"
#include "Component/EventLog.H"
#include "Component/ComponentOpts.H"
#include "GUI/SDLdisplay.H"
#include "GUI/GUIOpts.H"
#include "Raster/GenericFrame.H"
#include "Transport/FrameIstream.H"
#include "Util/FileUtil.H"
#include "Util/StringUtil.H"
#include "Util/Types.H"
#include "Util/csignals.H"
#include "Util/sformat.H"
#include "Video/VideoFrame.H"
#include <SDL/SDL.h>
#include <iterator>
#include <unistd.h>
#include <time.h>
Go to the source code of this file.
Functions | |
int | submain (const int argc, char **argv) |
Psychophysics display and grabbing of video feeds. | |
int | main (const int argc, char **argv) |
Psychophysics display and grabbing of video feeds
Definition in file psycho-video.C.
int submain | ( | const int | argc, | |
char ** | argv | |||
) |
Psychophysics display and grabbing of video feeds.
This displays and grabs video feeds to disk, with added machinery for eye-tracking. To save time, we grab raw data (in whatever native grab mode has been selected, without converting to RGB) then feed them to an SDL YUV overlay and save them to disk. For this to work, you need to configure your grabber in YUV420P mode, which is what is used for displays. The saved files are pure raw YUV420P data and will need to be converted, e.g., to RGB, later and in a different program (or you can use the YUV input mode of mpeg_encode to create MPEG movies from your saved files).
Definition at line 97 of file psycho-video.C.
References ModelComponent::addSubComponent(), catchsignals(), ModelComponent::exportOptions(), ModelManager::getExtraArg(), ModelManager::getExtraArgAs(), join(), makeDirectory(), MC_RECURSE, MYLOGVERB, SDLdisplay::NO_WAIT, ModelManager::parseCommandLine(), ModelManager::setOptionValString(), signame(), split(), ModelComponent::start(), and ModelComponent::stop().