JeVois  1.20
JeVois Smart Embedded Machine Vision Toolkit
Share this page:
jevois::VideoOutput Class Referenceabstract

#include <jevois/Core/VideoOutput.H>

Base class for video output. Gadget, MovieOutput, VideoDisplay, and VideoOutputNone derive from it.

This virtual base class provides the interface for video output, as needed by Engine.

Definition at line 27 of file VideoOutput.H.

Inheritance diagram for jevois::VideoOutput:

Public Member Functions

virtual ~VideoOutput ()
 Virtual destructor for safe inheritance. More...
 
virtual void setFormat (VideoMapping const &m)=0
 Set the video format and frame rate. More...
 
virtual void get (RawImage &img)=0
 Get a pre-allocated image so that we can fill the pixel data and later send out using send() More...
 
virtual void send (RawImage const &img)=0
 Send an image out. More...
 
virtual void streamOn ()=0
 Start streaming. More...
 
virtual void abortStream ()=0
 Abort streaming. More...
 
virtual void streamOff ()=0
 Stop streaming. More...
 

Constructor & Destructor Documentation

◆ ~VideoOutput()

jevois::VideoOutput::~VideoOutput ( )
virtual

Virtual destructor for safe inheritance.

Definition at line 21 of file VideoOutput.C.

Member Function Documentation

◆ abortStream()

virtual void jevois::VideoOutput::abortStream ( )
pure virtual

Abort streaming.

This only cancels future get() and send() calls, one should still call streamOff() to turn off streaming.

Implemented in jevois::Gadget, jevois::VideoDisplayGL, jevois::MovieOutput, jevois::VideoDisplayGUI, jevois::VideoDisplay, and jevois::VideoOutputNone.

◆ get()

virtual void jevois::VideoOutput::get ( RawImage img)
pure virtual

Get a pre-allocated image so that we can fill the pixel data and later send out using send()

May throw if no buffer is available, i.e., all have been queued to send to the host but have not yet been sent. Application code must balance exactly one send() for each get().

Implemented in jevois::Gadget, jevois::VideoDisplayGL, jevois::VideoDisplayGUI, jevois::MovieOutput, jevois::VideoDisplay, and jevois::VideoOutputNone.

◆ send()

virtual void jevois::VideoOutput::send ( RawImage const &  img)
pure virtual

Send an image out.

May throw if the format is incorrect or std::overflow_error if we have not yet consumed the previous image.

Implemented in jevois::Gadget, jevois::VideoDisplayGL, jevois::MovieOutput, jevois::VideoDisplayGUI, jevois::VideoDisplay, and jevois::VideoOutputNone.

◆ setFormat()

virtual void jevois::VideoOutput::setFormat ( VideoMapping const &  m)
pure virtual

Set the video format and frame rate.

Sometimes this may be implemented as a no-op. For the USB Gadget class, we cannot decide and set the format, it is set as the result of USB/UVC commands being received, so that the USB host is prepared to receive images with the selected format and frame size. For the VideoDisplay class, this allocates the output buffers and must be called before streaming starts.

Engine calls this (as well as setFormat() on the camera) from within its own setFormat(), so usually one would just set the format at the Engine level and not directly on VideoOutput.

Implemented in jevois::VideoDisplayGL, jevois::VideoDisplayGUI, jevois::VideoDisplay, jevois::MovieOutput, and jevois::VideoOutputNone.

◆ streamOff()

virtual void jevois::VideoOutput::streamOff ( )
pure virtual

◆ streamOn()

virtual void jevois::VideoOutput::streamOn ( )
pure virtual

The documentation for this class was generated from the following files: