Search in sources :

Example 96 with MutableFrameFormat

use of android.filterfw.core.MutableFrameFormat in project android_frameworks_base by DirtyUnicorns.

the class CropFilter method process.

@Override
public void process(FilterContext env) {
    // Get input frame
    Frame imageFrame = pullInput("image");
    Frame boxFrame = pullInput("box");
    createProgram(env, imageFrame.getFormat());
    // Get the box
    Quad box = (Quad) boxFrame.getObjectValue();
    // Create output format
    MutableFrameFormat outputFormat = imageFrame.getFormat().mutableCopy();
    outputFormat.setDimensions(mOutputWidth == -1 ? outputFormat.getWidth() : mOutputWidth, mOutputHeight == -1 ? outputFormat.getHeight() : mOutputHeight);
    // Create output frame
    Frame output = env.getFrameManager().newFrame(outputFormat);
    // Set the program parameters
    if (mProgram instanceof ShaderProgram) {
        ShaderProgram shaderProgram = (ShaderProgram) mProgram;
        shaderProgram.setSourceRegion(box);
    }
    mProgram.process(imageFrame, output);
    // Push output
    pushOutput("image", output);
    // Release pushed frame
    output.release();
}
Also used : Quad(android.filterfw.geometry.Quad) Frame(android.filterfw.core.Frame) ShaderProgram(android.filterfw.core.ShaderProgram) MutableFrameFormat(android.filterfw.core.MutableFrameFormat)

Example 97 with MutableFrameFormat

use of android.filterfw.core.MutableFrameFormat in project android_frameworks_base by DirtyUnicorns.

the class CropFilter method getOutputFormat.

@Override
public FrameFormat getOutputFormat(String portName, FrameFormat inputFormat) {
    // Make sure output size is set to unspecified, as we do not know what we will be resizing
    // to.
    MutableFrameFormat outputFormat = inputFormat.mutableCopy();
    outputFormat.setDimensions(FrameFormat.SIZE_UNSPECIFIED, FrameFormat.SIZE_UNSPECIFIED);
    return outputFormat;
}
Also used : MutableFrameFormat(android.filterfw.core.MutableFrameFormat)

Example 98 with MutableFrameFormat

use of android.filterfw.core.MutableFrameFormat in project android_frameworks_base by DirtyUnicorns.

the class SurfaceRenderFilter method prepare.

@Override
public void prepare(FilterContext context) {
    // Create identity shader to render, and make sure to render upside-down, as textures
    // are stored internally bottom-to-top.
    mProgram = ShaderProgram.createIdentity(context);
    mProgram.setSourceRect(0, 1, 1, -1);
    mProgram.setClearsOutput(true);
    mProgram.setClearColor(0.0f, 0.0f, 0.0f);
    updateRenderMode();
    // Create a frame representing the screen
    MutableFrameFormat screenFormat = ImageFormat.create(mSurfaceView.getWidth(), mSurfaceView.getHeight(), ImageFormat.COLORSPACE_RGBA, FrameFormat.TARGET_GPU);
    mScreen = (GLFrame) context.getFrameManager().newBoundFrame(screenFormat, GLFrame.EXISTING_FBO_BINDING, 0);
}
Also used : MutableFrameFormat(android.filterfw.core.MutableFrameFormat)

Example 99 with MutableFrameFormat

use of android.filterfw.core.MutableFrameFormat in project android_frameworks_base by DirtyUnicorns.

the class SurfaceTargetFilter method prepare.

@Override
public void prepare(FilterContext context) {
    mGlEnv = context.getGLEnvironment();
    // Create identity shader to render, and make sure to render upside-down, as textures
    // are stored internally bottom-to-top.
    mProgram = ShaderProgram.createIdentity(context);
    mProgram.setSourceRect(0, 1, 1, -1);
    mProgram.setClearsOutput(true);
    mProgram.setClearColor(0.0f, 0.0f, 0.0f);
    MutableFrameFormat screenFormat = ImageFormat.create(mScreenWidth, mScreenHeight, ImageFormat.COLORSPACE_RGBA, FrameFormat.TARGET_GPU);
    mScreen = (GLFrame) context.getFrameManager().newBoundFrame(screenFormat, GLFrame.EXISTING_FBO_BINDING, 0);
    // Set up cropping
    updateRenderMode();
}
Also used : MutableFrameFormat(android.filterfw.core.MutableFrameFormat)

Example 100 with MutableFrameFormat

use of android.filterfw.core.MutableFrameFormat in project android_frameworks_base by DirtyUnicorns.

the class SurfaceTextureTarget method prepare.

@Override
public void prepare(FilterContext context) {
    if (mLogVerbose)
        Log.v(TAG, "Prepare. Thread: " + Thread.currentThread());
    // Create identity shader to render, and make sure to render upside-down, as textures
    // are stored internally bottom-to-top.
    mProgram = ShaderProgram.createIdentity(context);
    mProgram.setSourceRect(0, 1, 1, -1);
    mProgram.setClearColor(0.0f, 0.0f, 0.0f);
    updateRenderMode();
    // Create a frame representing the screen
    MutableFrameFormat screenFormat = new MutableFrameFormat(FrameFormat.TYPE_BYTE, FrameFormat.TARGET_GPU);
    screenFormat.setBytesPerSample(4);
    screenFormat.setDimensions(mScreenWidth, mScreenHeight);
    mScreen = (GLFrame) context.getFrameManager().newBoundFrame(screenFormat, GLFrame.EXISTING_FBO_BINDING, 0);
}
Also used : MutableFrameFormat(android.filterfw.core.MutableFrameFormat)

Aggregations

MutableFrameFormat (android.filterfw.core.MutableFrameFormat)126 Frame (android.filterfw.core.Frame)36 FrameFormat (android.filterfw.core.FrameFormat)24 ShaderProgram (android.filterfw.core.ShaderProgram)12 Point (android.filterfw.geometry.Point)12 Quad (android.filterfw.geometry.Quad)12 GLFrame (android.filterfw.core.GLFrame)6 KeyValueMap (android.filterfw.core.KeyValueMap)6 MediaRecorder (android.media.MediaRecorder)6 IOException (java.io.IOException)6 NativeFrame (android.filterfw.core.NativeFrame)2