Search in sources :

Example 41 with Frame

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

the class BitmapOverlayFilter method createBitmapFrame.

private Frame createBitmapFrame(FilterContext context) {
    FrameFormat format = ImageFormat.create(mBitmap.getWidth(), mBitmap.getHeight(), ImageFormat.COLORSPACE_RGBA, FrameFormat.TARGET_GPU);
    Frame frame = context.getFrameManager().newFrame(format);
    frame.setBitmap(mBitmap);
    mBitmap.recycle();
    mBitmap = null;
    return frame;
}
Also used : FrameFormat(android.filterfw.core.FrameFormat) Frame(android.filterfw.core.Frame)

Example 42 with Frame

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

the class BitmapOverlayFilter 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());
    }
    if (mBitmap != null) {
        Frame frame = createBitmapFrame(context);
        // Process
        Frame[] inputs = { input, frame };
        mProgram.process(inputs, output);
        frame.release();
    } else {
        output.setDataFromFrame(input);
    }
    // Push output
    pushOutput("image", output);
    // Release pushed frame
    output.release();
}
Also used : FrameFormat(android.filterfw.core.FrameFormat) Frame(android.filterfw.core.Frame)

Example 43 with Frame

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

the class ColorTemperatureFilter 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());
        updateParameters();
    }
    // 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 44 with Frame

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

the class CrossProcessFilter 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());
    }
    // 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 45 with Frame

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

the class SurfaceTextureSource method process.

@Override
public void process(FilterContext context) {
    if (mLogVerbose)
        Log.v(TAG, "Processing new frame");
    // First, get new frame if available
    if (mWaitForNewFrame || mFirstFrame) {
        boolean gotNewFrame;
        if (mWaitTimeout != 0) {
            gotNewFrame = mNewFrameAvailable.block(mWaitTimeout);
            if (!gotNewFrame) {
                if (!mCloseOnTimeout) {
                    throw new RuntimeException("Timeout waiting for new frame");
                } else {
                    if (mLogVerbose)
                        Log.v(TAG, "Timeout waiting for a new frame. Closing.");
                    closeOutputPort("video");
                    return;
                }
            }
        } else {
            mNewFrameAvailable.block();
        }
        mNewFrameAvailable.close();
        mFirstFrame = false;
    }
    mSurfaceTexture.updateTexImage();
    mSurfaceTexture.getTransformMatrix(mFrameTransform);
    Matrix.multiplyMM(mMappedCoords, 0, mFrameTransform, 0, mSourceCoords, 0);
    mFrameExtractor.setSourceRegion(mMappedCoords[0], mMappedCoords[1], mMappedCoords[4], mMappedCoords[5], mMappedCoords[8], mMappedCoords[9], mMappedCoords[12], mMappedCoords[13]);
    // Next, render to output
    Frame output = context.getFrameManager().newFrame(mOutputFormat);
    mFrameExtractor.process(mMediaFrame, output);
    output.setTimestamp(mSurfaceTexture.getTimestamp());
    pushOutput("video", output);
    output.release();
}
Also used : Frame(android.filterfw.core.Frame) GLFrame(android.filterfw.core.GLFrame)

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