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();
}
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;
}
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);
}
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();
}
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);
}
Aggregations