Search in sources :

Example 71 with Frame

use of android.filterfw.core.Frame in project android_frameworks_base by ParanoidAndroid.

the class RedEyeFilter method process.

@Override
public void process(FilterContext context) {
    // Get input frame
    Frame input = pullInput("image");
    FrameFormat inputFormat = input.getFormat();
    // Create output frame
    Frame output = context.getFrameManager().newFrame(inputFormat);
    // Create program if not created already
    if (mProgram == null || inputFormat.getTarget() != mTarget) {
        initProgram(context, inputFormat.getTarget());
    }
    // Check if the frame size has changed
    if (inputFormat.getWidth() != mWidth || inputFormat.getHeight() != mHeight) {
        mWidth = inputFormat.getWidth();
        mHeight = inputFormat.getHeight();
    }
    createRedEyeFrame(context);
    // Process
    Frame[] inputs = { input, mRedEyeFrame };
    mProgram.process(inputs, output);
    // Push output
    pushOutput("image", output);
    // Release pushed frame
    output.release();
    // Release unused frame
    mRedEyeFrame.release();
    mRedEyeFrame = null;
}
Also used : FrameFormat(android.filterfw.core.FrameFormat) Frame(android.filterfw.core.Frame) NativeFrame(android.filterfw.core.NativeFrame)

Example 72 with Frame

use of android.filterfw.core.Frame in project android_frameworks_base by ParanoidAndroid.

the class ResizeFilter method process.

@Override
public void process(FilterContext env) {
    // Get input frame
    Frame input = pullInput("image");
    createProgram(env, input.getFormat());
    // Create output frame
    MutableFrameFormat outputFormat = input.getFormat().mutableCopy();
    if (mKeepAspectRatio) {
        FrameFormat inputFormat = input.getFormat();
        mOHeight = mOWidth * inputFormat.getHeight() / inputFormat.getWidth();
    }
    outputFormat.setDimensions(mOWidth, mOHeight);
    Frame output = env.getFrameManager().newFrame(outputFormat);
    // Process
    if (mGenerateMipMap) {
        GLFrame mipmapped = (GLFrame) env.getFrameManager().newFrame(input.getFormat());
        mipmapped.setTextureParameter(GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_LINEAR_MIPMAP_NEAREST);
        mipmapped.setDataFromFrame(input);
        mipmapped.generateMipMap();
        mProgram.process(mipmapped, output);
        mipmapped.release();
    } else {
        mProgram.process(input, output);
    }
    // Push output
    pushOutput("image", output);
    // Release pushed frame
    output.release();
}
Also used : MutableFrameFormat(android.filterfw.core.MutableFrameFormat) FrameFormat(android.filterfw.core.FrameFormat) Frame(android.filterfw.core.Frame) GLFrame(android.filterfw.core.GLFrame) NativeFrame(android.filterfw.core.NativeFrame) GLFrame(android.filterfw.core.GLFrame) MutableFrameFormat(android.filterfw.core.MutableFrameFormat)

Example 73 with Frame

use of android.filterfw.core.Frame in project android_frameworks_base by ParanoidAndroid.

the class SaturateFilter method process.

@Override
public void process(FilterContext context) {
    // Get input frame
    Frame input = pullInput("image");
    FrameFormat inputFormat = input.getFormat();
    // Create program if not created already
    if (mBenProgram == null || inputFormat.getTarget() != mTarget) {
        initProgram(context, inputFormat.getTarget());
        initParameters();
    }
    // Create output frame
    Frame output = context.getFrameManager().newFrame(inputFormat);
    // Process
    if (mScale > 0.0f) {
        mHerfProgram.process(input, output);
    } else {
        mBenProgram.process(input, output);
    }
    // Push output
    pushOutput("image", output);
    // Release pushed frame
    output.release();
}
Also used : FrameFormat(android.filterfw.core.FrameFormat) Frame(android.filterfw.core.Frame) NativeFrame(android.filterfw.core.NativeFrame)

Example 74 with Frame

use of android.filterfw.core.Frame in project android_frameworks_base by ParanoidAndroid.

the class ImageEncoder method process.

@Override
public void process(FilterContext env) {
    Frame input = pullInput("image");
    Bitmap bitmap = input.getBitmap();
    bitmap.compress(CompressFormat.JPEG, mQuality, mOutputStream);
}
Also used : Frame(android.filterfw.core.Frame) Bitmap(android.graphics.Bitmap)

Example 75 with Frame

use of android.filterfw.core.Frame in project android_frameworks_base by ParanoidAndroid.

the class ImageSlicer method process.

@Override
public void process(FilterContext context) {
    // Get input frame
    if (mSliceIndex == 0) {
        mOriginalFrame = pullInput("image");
        calcOutputFormatForInput(mOriginalFrame);
    }
    FrameFormat inputFormat = mOriginalFrame.getFormat();
    MutableFrameFormat outputFormat = inputFormat.mutableCopy();
    outputFormat.setDimensions(mOutputWidth, mOutputHeight);
    // Create output frame
    Frame output = context.getFrameManager().newFrame(outputFormat);
    // Create the program if not created already
    if (mProgram == null) {
        mProgram = ShaderProgram.createIdentity(context);
    }
    // Calculate the four corner of the source region
    int xSliceIndex = mSliceIndex % mXSlices;
    int ySliceIndex = mSliceIndex / mXSlices;
    // TODO(rslin) : not sure shifting by 0.5 is needed.
    float x0 = (xSliceIndex * mSliceWidth - mPadSize) / ((float) mInputWidth);
    float y0 = (ySliceIndex * mSliceHeight - mPadSize) / ((float) mInputHeight);
    ((ShaderProgram) mProgram).setSourceRect(x0, y0, ((float) mOutputWidth) / mInputWidth, ((float) mOutputHeight) / mInputHeight);
    // Process
    mProgram.process(mOriginalFrame, output);
    mSliceIndex++;
    if (mSliceIndex == mXSlices * mYSlices) {
        mSliceIndex = 0;
        mOriginalFrame.release();
        setWaitsOnInputPort("image", true);
    } else {
        // Retain the original frame so it can be used next time.
        mOriginalFrame.retain();
        setWaitsOnInputPort("image", false);
    }
    // Push output
    pushOutput("image", output);
    // Release pushed frame
    output.release();
}
Also used : FrameFormat(android.filterfw.core.FrameFormat) MutableFrameFormat(android.filterfw.core.MutableFrameFormat) Frame(android.filterfw.core.Frame) ShaderProgram(android.filterfw.core.ShaderProgram) MutableFrameFormat(android.filterfw.core.MutableFrameFormat)

Aggregations

Frame (android.filterfw.core.Frame)414 FrameFormat (android.filterfw.core.FrameFormat)198 GLFrame (android.filterfw.core.GLFrame)73 MutableFrameFormat (android.filterfw.core.MutableFrameFormat)47 NativeFrame (android.filterfw.core.NativeFrame)38 Quad (android.filterfw.geometry.Quad)24 GLEnvironment (android.filterfw.core.GLEnvironment)18 ShaderProgram (android.filterfw.core.ShaderProgram)18 ByteBuffer (java.nio.ByteBuffer)18 Point (android.filterfw.geometry.Point)12 IOException (java.io.IOException)12 FrameManager (android.filterfw.core.FrameManager)6 Bitmap (android.graphics.Bitmap)6 ByteArrayOutputStream (java.io.ByteArrayOutputStream)6 Map (java.util.Map)6 SortedMap (java.util.SortedMap)6 TreeMap (java.util.TreeMap)6 CachedFrameManager (android.filterfw.core.CachedFrameManager)1