#ifndef _PL_SCALE_H_
|
#define _PL_SCALE_H_
|
|
#include "PipeLine.h"
|
|
struct PL_Scale_Config
|
{
|
bool copyData;
|
|
uint16_t toWidth;
|
uint16_t toHeight;
|
int filterMode; // libyuv/scale.h/FilterMode
|
|
// Used only pm.type==PMT_BYTES
|
int defaultBytesType; // MBFT_YUV420 / MBFT_BGRA
|
uint16_t defaultBytesWidth;
|
uint16_t defaultBytesHeight;
|
|
PL_Scale_Config() :
|
copyData(true),
|
toWidth(0), toHeight(0), filterMode(0),
|
defaultBytesType(0), defaultBytesWidth(0), defaultBytesHeight(0)
|
{ }
|
};
|
|
class PL_Scale : public PipeLineElem
|
{
|
public:
|
PL_Scale();
|
virtual ~PL_Scale();
|
|
virtual bool init(void* args);
|
virtual void finit();
|
|
virtual bool pay(const PipeMaterial& pm);
|
virtual bool gain(PipeMaterial& pm);
|
|
private:
|
void* internal;
|
|
static bool pay_breaker_MBFT(const PipeMaterial* pm, void* args);
|
};
|
|
PipeLineElem* create_PL_Scale();
|
|
#endif
|