use of androidx.media.filterfw.FrameValue in project android_frameworks_base by ResurrectionRemix.
the class ContrastRatioFilter method onProcess.
@Override
protected void onProcess() {
FrameImage2D inputImage = getConnectedInputPort("image").pullFrame().asFrameImage2D();
float contrastRatio;
ByteBuffer inputBuffer = inputImage.lockBytes(Frame.MODE_READ);
contrastRatio = contrastOperator(inputImage.getWidth(), inputImage.getHeight(), inputBuffer);
inputImage.unlock();
if (mLogVerbose)
Log.v(TAG, "contrastRatio: " + contrastRatio);
OutputPort contrastToGoodnessPort = getConnectedOutputPort("contrastRatingToGoodness");
FrameValue contrastOutFrame2 = contrastToGoodnessPort.fetchAvailableFrame(null).asFrameValue();
contrastOutFrame2.setValue(contrastRatio);
contrastToGoodnessPort.pushFrame(contrastOutFrame2);
}
use of androidx.media.filterfw.FrameValue in project android_frameworks_base by ResurrectionRemix.
the class MotionSensorWTime method onProcess.
@Override
protected void onProcess() {
OutputPort outPort = getConnectedOutputPort("values");
FrameValues outFrame = outPort.fetchAvailableFrame(null).asFrameValues();
synchronized (mValues) {
if (mCounter < 3 && mCounter >= 0) {
mTemp[0][mCounter] = mValues[0];
mTemp[1][mCounter] = mValues[1];
mTemp[2][mCounter] = mValues[2];
}
mCounter = (mCounter + 1) % 3;
mAvgValues[0] = (mTemp[0][0] + mTemp[0][1] + mTemp[0][2]) / 3;
mAvgValues[1] = (mTemp[1][0] + mTemp[1][1] + mTemp[1][2]) / 3;
mAvgValues[2] = (mTemp[2][0] + mTemp[2][1] + mTemp[2][2]) / 3;
outFrame.setValues(mAvgValues);
}
outFrame.setTimestamp(System.currentTimeMillis() * 1000000L);
outPort.pushFrame(outFrame);
OutputPort timeOutPort = getConnectedOutputPort("timestamp");
if (timeOutPort != null) {
long timestamp = System.nanoTime();
Log.v("MotionSensor", "Timestamp is: " + timestamp);
FrameValue timeStampFrame = timeOutPort.fetchAvailableFrame(null).asFrameValue();
timeStampFrame.setValue(timestamp);
timeOutPort.pushFrame(timeStampFrame);
}
}
use of androidx.media.filterfw.FrameValue in project android_frameworks_base by ResurrectionRemix.
the class WaveTriggerFilter method onProcess.
@Override
protected synchronized void onProcess() {
// Check if we were triggered
if (mTrigger) {
mInWaveMode = true;
mTrigger = false;
mTime = 0.5f;
}
// Calculate output value
float value = 0.5f;
if (mInWaveMode) {
value = -Math.abs(mTime - 1f) + 1f;
mTime += 0.2f;
if (mTime >= 2f) {
mInWaveMode = false;
}
}
// Push Value
OutputPort outPort = getConnectedOutputPort("value");
FrameValue frame = outPort.fetchAvailableFrame(null).asFrameValue();
frame.setValue(value);
outPort.pushFrame(frame);
}
use of androidx.media.filterfw.FrameValue in project android_frameworks_base by ResurrectionRemix.
the class ImageGoodnessFilterTest method testAwfulPicture.
public void testAwfulPicture() throws Exception {
FrameValue sharpnessFrame = createFrame(FrameType.single(), new int[] { 1 }).asFrameValue();
sharpnessFrame.setValue(10f);
FrameValue oEFrame = createFrame(FrameType.single(), new int[] { 1 }).asFrameValue();
oEFrame.setValue(0.39f);
FrameValue uEFrame = createFrame(FrameType.single(), new int[] { 1 }).asFrameValue();
uEFrame.setValue(0.25f);
FrameValue colorFrame = createFrame(FrameType.single(), new int[] { 1 }).asFrameValue();
colorFrame.setValue(2.1f);
FrameValue contrastFrame = createFrame(FrameType.single(), new int[] { 1 }).asFrameValue();
contrastFrame.setValue(0.18f);
FrameValue motionFrame = createFrame(FrameType.array(), new int[] { 1 }).asFrameValue();
float[] motionFloatArray = { 9.0f, 3.0f, 2.0f };
motionFrame.setValue(motionFloatArray);
injectInputFrame("sharpness", sharpnessFrame);
injectInputFrame("overExposure", oEFrame);
injectInputFrame("underExposure", uEFrame);
injectInputFrame("colorfulness", colorFrame);
injectInputFrame("contrastRating", contrastFrame);
injectInputFrame("motionValues", motionFrame);
process();
assertEquals("Awful Picture", (String) getOutputFrame("goodOrBadPic").asFrameValue().getValue());
}
use of androidx.media.filterfw.FrameValue in project android_frameworks_base by ResurrectionRemix.
the class ImageGoodnessFilterTest method testGreatPicture.
public void testGreatPicture() throws Exception {
FrameValue sharpnessFrame = createFrame(FrameType.single(), new int[] { 1 }).asFrameValue();
sharpnessFrame.setValue(50f);
FrameValue oEFrame = createFrame(FrameType.single(), new int[] { 1 }).asFrameValue();
oEFrame.setValue(0.01f);
FrameValue uEFrame = createFrame(FrameType.single(), new int[] { 1 }).asFrameValue();
uEFrame.setValue(0.02f);
FrameValue colorFrame = createFrame(FrameType.single(), new int[] { 1 }).asFrameValue();
colorFrame.setValue(2.1f);
FrameValue contrastFrame = createFrame(FrameType.single(), new int[] { 1 }).asFrameValue();
contrastFrame.setValue(0.25f);
FrameValue motionFrame = createFrame(FrameType.array(), new int[] { 1 }).asFrameValue();
float[] motionFloatArray = { 0.0f, 0.0f, 0.0f };
motionFrame.setValue(motionFloatArray);
injectInputFrame("sharpness", sharpnessFrame);
injectInputFrame("overExposure", oEFrame);
injectInputFrame("underExposure", uEFrame);
injectInputFrame("colorfulness", colorFrame);
injectInputFrame("contrastRating", contrastFrame);
injectInputFrame("motionValues", motionFrame);
process();
assertEquals("Great Picture!", (String) getOutputFrame("goodOrBadPic").asFrameValue().getValue());
}
Aggregations