Search in sources :

Example 11 with FrameFormat

use of android.filterfw.core.FrameFormat in project platform_frameworks_base by android.

the class VignetteFilter 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());
    }
    // Check if the frame size has changed
    if (inputFormat.getWidth() != mWidth || inputFormat.getHeight() != mHeight) {
        mWidth = inputFormat.getWidth();
        mHeight = inputFormat.getHeight();
        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)

Example 12 with FrameFormat

use of android.filterfw.core.FrameFormat in project platform_frameworks_base by android.

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 13 with FrameFormat

use of android.filterfw.core.FrameFormat in project platform_frameworks_base by android.

the class AutoFixFilter method createHistogramFrame.

private void createHistogramFrame(FilterContext context, int width, int height, int[] data) {
    int histDims = 255 * 3 + 1;
    int[] histArray = new int[histDims];
    float border_thickness_ratio = 0.05f;
    int y_border_thickness = (int) (height * border_thickness_ratio);
    int x_border_thickness = (int) (width * border_thickness_ratio);
    int pixels = (width - 2 * x_border_thickness) * (height - 2 * y_border_thickness);
    float count = 0f;
    for (int y = y_border_thickness; y < height - y_border_thickness; ++y) {
        for (int x = x_border_thickness; x < width - x_border_thickness; ++x) {
            int index = y * width + x;
            int energy = (data[index] & 0xFF) + ((data[index] >> 8) & 0xFF) + ((data[index] >> 16) & 0xFF);
            histArray[energy]++;
        }
    }
    for (int i = 1; i < histDims; i++) {
        histArray[i] += histArray[i - 1];
    }
    for (int i = 0; i < histDims; i++) {
        long temp = (256 * 256 - 1l) * histArray[i] / pixels;
        histArray[i] = (int) temp;
    }
    FrameFormat shaderHistFormat = ImageFormat.create(histDims, 1, ImageFormat.COLORSPACE_RGBA, FrameFormat.TARGET_GPU);
    if (mHistFrame != null)
        mHistFrame.release();
    mHistFrame = context.getFrameManager().newFrame(shaderHistFormat);
    mHistFrame.setInts(histArray);
}
Also used : FrameFormat(android.filterfw.core.FrameFormat)

Example 14 with FrameFormat

use of android.filterfw.core.FrameFormat in project platform_frameworks_base by android.

the class DocumentaryFilter 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());
    }
    // Check if the frame size has changed
    if (inputFormat.getWidth() != mWidth || inputFormat.getHeight() != mHeight) {
        mWidth = inputFormat.getWidth();
        mHeight = inputFormat.getHeight();
        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)

Example 15 with FrameFormat

use of android.filterfw.core.FrameFormat in project platform_frameworks_base by android.

the class DuotoneFilter 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());
    }
    updateParameters();
    // 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)

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