openMSX
|
Produces a deinterlaced video frame based on two other FrameSources (typically two RawFrames) containing the even and odd field. More...
#include <DeinterlacedFrame.hh>
Public Member Functions | |
DeinterlacedFrame (const PixelFormat &format) | |
void | init (FrameSource *evenField, FrameSource *oddField) |
![]() | |
void | init (FieldType fieldType_) |
(Re)initialize an existing FrameSource. More... | |
FieldType | getField () const |
Gets the role this frame plays in interlacing. More... | |
unsigned | getHeight () const |
Gets the number of lines in this frame. More... | |
unsigned | getWidth () const |
Get the width of (all) lines in this frame. More... | |
template<typename Pixel > | |
Pixel | getLineColor (unsigned line) const |
Get the (single) color of the given line. More... | |
template<typename Pixel > | |
const Pixel * | getLinePtr (int line, unsigned width, Pixel *buf) const |
Gets a pointer to the pixels of the given line number. More... | |
template<typename Pixel > | |
const Pixel * | getMultiLinePtr (int line, unsigned numLines, unsigned &actualLines, unsigned width, Pixel *buf) const |
Similar to the above getLinePtr() method, but now tries to get multiple lines at once. More... | |
template<typename Pixel > | |
const Pixel * | getLinePtr320_240 (unsigned line, Pixel *buf) const |
Get a pointer to a given line in this frame, the frame is scaled to 320x240 pixels. More... | |
template<typename Pixel > | |
const Pixel * | getLinePtr640_480 (unsigned line, Pixel *buf) const |
Get a pointer to a given line in this frame, the frame is scaled to 640x480 pixels. More... | |
template<typename Pixel > | |
const Pixel * | getLinePtr960_720 (unsigned line, Pixel *buf) const |
Get a pointer to a given line in this frame, the frame is scaled to 960x720 pixels. More... | |
virtual unsigned | getRowLength () const |
Returns the distance (in pixels) between two consecutive lines. More... | |
const PixelFormat & | getPixelFormat () const |
Additional Inherited Members | |
![]() | |
enum | FieldType { FIELD_NONINTERLACED , FIELD_EVEN , FIELD_ODD } |
What role does this frame play in interlacing? More... | |
![]() | |
FrameSource (const PixelFormat &format) | |
~FrameSource ()=default | |
void | setHeight (unsigned height_) |
virtual bool | hasContiguousStorage () const |
Returns true when two consecutive rows are also consecutive in memory. More... | |
template<typename Pixel > | |
void | scaleLine (const Pixel *in, Pixel *out, unsigned inWidth, unsigned outWidth) const |
Produces a deinterlaced video frame based on two other FrameSources (typically two RawFrames) containing the even and odd field.
This class does not copy the data from the input FrameSources.
Definition at line 12 of file DeinterlacedFrame.hh.
|
explicit |
Definition at line 6 of file DeinterlacedFrame.cc.
References openmsx::DiskImageUtils::format().
void openmsx::DeinterlacedFrame::init | ( | FrameSource * | evenField, |
FrameSource * | oddField | ||
) |
Definition at line 11 of file DeinterlacedFrame.cc.
References openmsx::FrameSource::FIELD_NONINTERLACED, openmsx::FrameSource::getHeight(), openmsx::FrameSource::init(), and openmsx::FrameSource::setHeight().