libcvd
Public Types | Public Member Functions | List of all members
CVD::DeinterlaceBuffer< T > Class Template Reference
Inheritance diagram for CVD::DeinterlaceBuffer< T >:
Inheritance graph
[legend]
Collaboration diagram for CVD::DeinterlaceBuffer< T >:
Collaboration graph
[legend]

Public Types

typedef DeinterlaceBufferFields Fields
 

Public Member Functions

 DeinterlaceBuffer (CVD::VideoBuffer< T > &buf, Fields::Fields fields=Fields::OddEven, bool line_double=false)
 Construct a DeinterlaceBuffer by wrapping it around another VideoBuffer. More...
 
ImageRef size ()
 The size of the VideoFrames returns by this buffer. More...
 
CVD::VideoFrame< T > * get_frame ()
 Returns the next frame from the buffer. This function blocks until a frame is ready.
 
virtual RawVideoBuffersource_buffer ()
 Which video grabber provides the source images for this video grabber. More...
 
void put_frame (CVD::VideoFrame< T > *f)
 Tell the buffer that you are finished with this frame. More...
 
virtual bool frame_pending ()
 Is there a frame waiting in the buffer? This function does not block. More...
 
virtual void seek_to (double t)
 Go to a particular point in the video buffer (only implemented in buffers of recorded video) More...
 
virtual double frame_rate ()
 What is the (expected) frame rate of this video buffer, in frames per second? If OddEven or EvenOdd are selected, this will be reported as twice the original buffer's rate. More...
 
- Public Member Functions inherited from CVD::VideoBuffer< T >
 VideoBuffer (VideoBufferType::Type _type)
 Construct the buffer with the known semantics.
 
virtual void flush ()
 Flush all old frames out of the video buffer, on a flushable buffer, causing the next get_frame() to sleep until a frame arrives. More...
 
VideoBufferType::Type type ()
 Returns the type of the video stream. More...
 
- Public Member Functions inherited from CVD::RawVideoBuffer
RawVideoBufferroot_buffer ()
 Follow the chain of video grabbers back as far as at will go. More...
 

Constructor & Destructor Documentation

◆ DeinterlaceBuffer()

template<typename T >
CVD::DeinterlaceBuffer< T >::DeinterlaceBuffer ( CVD::VideoBuffer< T > &  buf,
Fields::Fields  fields = Fields::OddEven,
bool  line_double = false 
)

Construct a DeinterlaceBuffer by wrapping it around another VideoBuffer.

Parameters
bufThe buffer that will provide the raw frames
fieldsThe fields to

Member Function Documentation

◆ frame_pending()

template<typename T >
virtual bool CVD::DeinterlaceBuffer< T >::frame_pending ( )
inlinevirtual

Is there a frame waiting in the buffer? This function does not block.

See is_live and is_flushable.

Implements CVD::RawVideoBuffer.

◆ frame_rate()

template<typename T >
virtual double CVD::DeinterlaceBuffer< T >::frame_rate ( )
inlinevirtual

What is the (expected) frame rate of this video buffer, in frames per second? If OddEven or EvenOdd are selected, this will be reported as twice the original buffer's rate.

Implements CVD::RawVideoBuffer.

◆ put_frame()

template<typename T >
void CVD::DeinterlaceBuffer< T >::put_frame ( CVD::VideoFrame< T > *  f)
virtual

Tell the buffer that you are finished with this frame.

Typically the VideoBuffer then destroys the frame.

Parameters
fThe frame that you are finished with.

Implements CVD::VideoBuffer< T >.

◆ seek_to()

template<typename T >
virtual void CVD::DeinterlaceBuffer< T >::seek_to ( double  )
inlinevirtual

Go to a particular point in the video buffer (only implemented in buffers of recorded video)

Parameters
tThe frame time in seconds

Reimplemented from CVD::RawVideoBuffer.

◆ size()

template<typename T >
ImageRef CVD::DeinterlaceBuffer< T >::size ( )
virtual

The size of the VideoFrames returns by this buffer.

This will be half the height of the original frames.

Implements CVD::RawVideoBuffer.

◆ source_buffer()

template<typename T >
virtual RawVideoBuffer* CVD::DeinterlaceBuffer< T >::source_buffer ( )
inlinevirtual

Which video grabber provides the source images for this video grabber.

Reimplemented from CVD::RawVideoBuffer.


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