Search in sources :

Example 61 with MutableFrameFormat

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

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 62 with MutableFrameFormat

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

the class RetargetFilter method getOutputFormat.

@Override
public FrameFormat getOutputFormat(String portName, FrameFormat inputFormat) {
    MutableFrameFormat retargeted = inputFormat.mutableCopy();
    retargeted.setTarget(mTarget);
    return retargeted;
}
Also used : MutableFrameFormat(android.filterfw.core.MutableFrameFormat)

Example 63 with MutableFrameFormat

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

the class FrameManager method duplicateFrameToTarget.

public Frame duplicateFrameToTarget(Frame frame, int newTarget) {
    MutableFrameFormat newFormat = frame.getFormat().mutableCopy();
    newFormat.setTarget(newTarget);
    Frame result = newFrame(newFormat);
    result.setDataFromFrame(frame);
    return result;
}
Also used : Frame(android.filterfw.core.Frame) MutableFrameFormat(android.filterfw.core.MutableFrameFormat)

Example 64 with MutableFrameFormat

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

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) NativeFrame(android.filterfw.core.NativeFrame) ShaderProgram(android.filterfw.core.ShaderProgram) MutableFrameFormat(android.filterfw.core.MutableFrameFormat)

Example 65 with MutableFrameFormat

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

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