Search in sources :

Example 21 with Frame

use of android.filterfw.core.Frame 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 22 with Frame

use of android.filterfw.core.Frame 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 23 with Frame

use of android.filterfw.core.Frame 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 24 with Frame

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

the class StringLogger method process.

@Override
public void process(FilterContext env) {
    Frame input = pullInput("string");
    String inputString = input.getObjectValue().toString();
    Log.i("StringLogger", inputString);
}
Also used : Frame(android.filterfw.core.Frame)

Example 25 with Frame

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

Frame (android.filterfw.core.Frame)414 FrameFormat (android.filterfw.core.FrameFormat)198 GLFrame (android.filterfw.core.GLFrame)73 MutableFrameFormat (android.filterfw.core.MutableFrameFormat)47 NativeFrame (android.filterfw.core.NativeFrame)38 Quad (android.filterfw.geometry.Quad)24 GLEnvironment (android.filterfw.core.GLEnvironment)18 ShaderProgram (android.filterfw.core.ShaderProgram)18 ByteBuffer (java.nio.ByteBuffer)18 Point (android.filterfw.geometry.Point)12 IOException (java.io.IOException)12 FrameManager (android.filterfw.core.FrameManager)6 Bitmap (android.graphics.Bitmap)6 ByteArrayOutputStream (java.io.ByteArrayOutputStream)6 Map (java.util.Map)6 SortedMap (java.util.SortedMap)6 TreeMap (java.util.TreeMap)6 CachedFrameManager (android.filterfw.core.CachedFrameManager)1