use of android.filterfw.core.MutableFrameFormat in project android_frameworks_base by AOSPA.
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);
}
use of android.filterfw.core.MutableFrameFormat in project android_frameworks_base by AOSPA.
the class RetargetFilter method getOutputFormat.
@Override
public FrameFormat getOutputFormat(String portName, FrameFormat inputFormat) {
MutableFrameFormat retargeted = inputFormat.mutableCopy();
retargeted.setTarget(mTarget);
return retargeted;
}
use of android.filterfw.core.MutableFrameFormat in project android_frameworks_base by AOSPA.
the class PrimitiveFormat method createFormat.
private static MutableFrameFormat createFormat(int baseType, int count, int target) {
MutableFrameFormat result = new MutableFrameFormat(baseType, target);
result.setDimensions(count);
return result;
}
use of android.filterfw.core.MutableFrameFormat in project android_frameworks_base by crdroidandroid.
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 crdroidandroid.
the class ToPackedGrayFilter method process.
@Override
public void process(FilterContext context) {
Frame input = pullInput("image");
FrameFormat inputFormat = input.getFormat();
FrameFormat outputFormat = convertInputFormat(inputFormat);
int ow = outputFormat.getWidth();
int oh = outputFormat.getHeight();
checkOutputDimensions(ow, oh);
mProgram.setHostValue("pix_stride", 1.0f / ow);
// Do the RGBA to luminance conversion.
MutableFrameFormat tempFrameFormat = inputFormat.mutableCopy();
tempFrameFormat.setDimensions(ow / 4, oh);
Frame temp = context.getFrameManager().newFrame(tempFrameFormat);
mProgram.process(input, temp);
// Read frame from GPU to CPU.
Frame output = context.getFrameManager().newFrame(outputFormat);
output.setDataFromFrame(temp);
temp.release();
// Push output and yield ownership.
pushOutput("image", output);
output.release();
}
Aggregations