Search in sources :

Example 36 with FrameFormat

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

the class SimpleImageFilter 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
    updateProgramWithTarget(inputFormat.getTarget(), context);
    // Process
    mProgram.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 37 with FrameFormat

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

the class TintFilter 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 (mProgram == null || inputFormat.getTarget() != mTarget) {
        initProgram(context, inputFormat.getTarget());
        initParameters();
    }
    // Create output frame
    Frame output = context.getFrameManager().newFrame(inputFormat);
    // Process
    mProgram.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 38 with FrameFormat

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

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();
}
Also used : FrameFormat(android.filterfw.core.FrameFormat) MutableFrameFormat(android.filterfw.core.MutableFrameFormat) Frame(android.filterfw.core.Frame) MutableFrameFormat(android.filterfw.core.MutableFrameFormat)

Example 39 with FrameFormat

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

the class ThroughputFilter method process.

@Override
public void process(FilterContext context) {
    // Pass through input frame
    Frame input = pullInput("frame");
    pushOutput("frame", input);
    // Update stats
    ++mTotalFrameCount;
    ++mPeriodFrameCount;
    // Check clock
    if (mLastTime == 0) {
        mLastTime = SystemClock.elapsedRealtime();
    }
    long curTime = SystemClock.elapsedRealtime();
    // Output throughput info if time period is up
    if ((curTime - mLastTime) >= (mPeriod * 1000)) {
        FrameFormat inputFormat = input.getFormat();
        int pixelCount = inputFormat.getWidth() * inputFormat.getHeight();
        Throughput throughput = new Throughput(mTotalFrameCount, mPeriodFrameCount, mPeriod, pixelCount);
        Frame throughputFrame = context.getFrameManager().newFrame(mOutputFormat);
        throughputFrame.setObjectValue(throughput);
        pushOutput("throughput", throughputFrame);
        mLastTime = curTime;
        mPeriodFrameCount = 0;
    }
}
Also used : FrameFormat(android.filterfw.core.FrameFormat) Frame(android.filterfw.core.Frame)

Example 40 with FrameFormat

use of android.filterfw.core.FrameFormat 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)

Aggregations

FrameFormat (android.filterfw.core.FrameFormat)270 Frame (android.filterfw.core.Frame)198 MutableFrameFormat (android.filterfw.core.MutableFrameFormat)39 NativeFrame (android.filterfw.core.NativeFrame)25 GLFrame (android.filterfw.core.GLFrame)18 ShaderProgram (android.filterfw.core.ShaderProgram)12 Quad (android.filterfw.geometry.Quad)12 FrameManager (android.filterfw.core.FrameManager)6 Point (android.filterfw.geometry.Point)6 Bitmap (android.graphics.Bitmap)6 Paint (android.graphics.Paint)6 CachedFrameManager (android.filterfw.core.CachedFrameManager)1