FileDocCategorySizeDatePackage
SingleFilterEffect.javaAPI DocAndroid 5.1 API3122Thu Mar 12 22:22:30 GMT 2015android.media.effect

SingleFilterEffect

public class SingleFilterEffect extends FilterEffect
Effect subclass for effects based on a single Filter. Subclasses need only invoke the constructor with the correct arguments to obtain an Effect implementation.
hide

Fields Summary
protected android.filterfw.core.FilterFunction
mFunction
protected String
mInputName
protected String
mOutputName
Constructors Summary
public SingleFilterEffect(android.media.effect.EffectContext context, String name, Class filterClass, String inputName, String outputName, Object finalParameters)
Constructs a new FilterFunctionEffect.

param
name The name of this effect (used to create it in the EffectFactory).
param
filterClass The class of the filter to wrap.
param
inputName The name of the input image port.
param
outputName The name of the output image port.
param
finalParameters Key-value pairs of final input port assignments.

        super(context, name);

        mInputName = inputName;
        mOutputName = outputName;

        String filterName = filterClass.getSimpleName();
        FilterFactory factory = FilterFactory.sharedFactory();
        Filter filter = factory.createFilterByClass(filterClass, filterName);
        filter.initWithAssignmentList(finalParameters);

        mFunction = new FilterFunction(getFilterContext(), filter);
    
Methods Summary
public voidapply(int inputTexId, int width, int height, int outputTexId)

        beginGLEffect();

        Frame inputFrame = frameFromTexture(inputTexId, width, height);
        Frame outputFrame = frameFromTexture(outputTexId, width, height);

        Frame resultFrame = mFunction.executeWithArgList(mInputName, inputFrame);

        outputFrame.setDataFromFrame(resultFrame);

        inputFrame.release();
        outputFrame.release();
        resultFrame.release();

        endGLEffect();
    
public voidrelease()

        mFunction.tearDown();
        mFunction = null;
    
public voidsetParameter(java.lang.String parameterKey, java.lang.Object value)

        mFunction.setInputValue(parameterKey, value);