YUVinYUVoverlay Class Reference
Adaptor class YUVinYUVoverlay provides a graphical overlaying (destructive multiplexing) from one YUV stream (eg. <short description="">. More...
#include <YUVinYUVoverlay.hpp>
Inheritance diagram for YUVinYUVoverlay:
Public Member Functions | |
YUVinYUVoverlay (VideoESInfo *esi, YUVStreamIO *watermarkStream, int x, int y, bool loopWatermark=true) | |
list< Frame * > | adapt (Frame *frm) |
Accepts as input a frame, and checks if it can adapt the frame, If the frame is modified, a new Frame object is created and inserted into the return list. | |
Adaptor * | clone () |
Create a shallow copy of the Adaptor. | |
void | initialize () |
Initialize internal data structures. | |
list< Frame * > | close () |
Close and destroy an Adaptor. | |
void | setESInfo (ESInfo *esi) |
Sets a reference to an ESInfo object. | |
ESInfo * | getESInfo () |
u32 | getTranscodingCosts () const |
returns adaptation costs (CPU only). | |
Protected Attributes | |
VideoESInfo * | es |
YUVStreamIO * | waterStream |
int | posX |
int | posY |
bool | loopWatermark |
AU | lastAU |
u8 * | lastPayload |
UncompressedVideoFrame * | waterFrame |
int | numFrames |
Detailed Description
Adaptor class YUVinYUVoverlay provides a graphical overlaying (destructive multiplexing) from one YUV stream (eg. <short description="">.a watermark or a small video preview) into a larger main YUV stream.
NOTE: there is no alpha channel support, yet! but the feature should be fairly easy to add: eg. assume the color black (Y:0,U:0,V:0) to be the alpha, so don't copy it... but this will drastically slow down the whole overlaying process!
- Author:
- Michael Kropfberger
- Version:
- Id
- YUVinYUVoverlay.hpp,v 1.2 2006/01/20 15:37:17 mkropfbe Exp
Definition at line 67 of file YUVinYUVoverlay.hpp.
Member Function Documentation
|
Accepts as input a frame, and checks if it can adapt the frame, If the frame is modified, a new Frame object is created and inserted into the return list. This new frame is returned only, if the size of the payload is larger than zero. If the frame was not modified, it is also inserted into the list. For more complex adaptors, it will happen, that the adaptor caches up one complete GOP and returns the full GOP in network order. A caching adaptor has to create deep-copies for each frames. Never directly modify the payload of the input frm, always create copies!!!
Reimplemented from Adaptor. Definition at line 84 of file YUVinYUVoverlay.cpp. References RawStreamIO::close(), Frame::getAU(), YUVStreamIO::getFrame(), VideoFrame::getHeight(), RawStreamIO::getURL(), VideoFrame::getWidth(), and RawStreamIO::open().
|
|
Create a shallow copy of the Adaptor. Creates an Adaptor with the same setup (without copying the current status).
Implements Adaptor. Definition at line 82 of file YUVinYUVoverlay.hpp. References YUVStreamIO::clone().
|
|
Close and destroy an Adaptor. Releases all internally buffered frame objects, and deallocate all allocated memory. The Adaptor must not be used after calling the close method!!!
Reimplemented from Adaptor. Definition at line 86 of file YUVinYUVoverlay.hpp.
|
|
returns adaptation costs (CPU only). This adaptor causes hd costs, which are currently ignored. as CPU side effect we can only guess but it should depend on the bytes of the video Implements Adaptor. Definition at line 103 of file YUVinYUVoverlay.hpp.
|
|
Initialize internal data structures.
Implements Adaptor. Definition at line 71 of file YUVinYUVoverlay.cpp.
|
|
Sets a reference to an ESInfo object. Adaptors are allowed to change ESInfo objects. If you don't want that, pass an es->clone() Reimplemented from Adaptor. Definition at line 74 of file YUVinYUVoverlay.cpp.
|
The documentation for this class was generated from the following files: