diff --git a/photon-server/src/main/java/org/photonvision/vision/camera/CameraQuirks.java b/photon-server/src/main/java/org/photonvision/vision/camera/CameraQuirks.java
deleted file mode 100644
index 12545948a..000000000
--- a/photon-server/src/main/java/org/photonvision/vision/camera/CameraQuirks.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * Copyright (C) Photon Vision.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-package org.photonvision.vision.camera;
-
-public enum CameraQuirks {
- Gain
-}
diff --git a/photon-server/src/main/java/org/photonvision/vision/pipeline/CVPipeline.java b/photon-server/src/main/java/org/photonvision/vision/pipeline/CVPipeline.java
index 04ffdba58..07f16c7f5 100644
--- a/photon-server/src/main/java/org/photonvision/vision/pipeline/CVPipeline.java
+++ b/photon-server/src/main/java/org/photonvision/vision/pipeline/CVPipeline.java
@@ -19,6 +19,7 @@ package org.photonvision.vision.pipeline;
import java.util.List;
import org.photonvision.common.util.math.MathUtils;
+import org.photonvision.vision.camera.QuirkyCamera;
import org.photonvision.vision.frame.Frame;
import org.photonvision.vision.frame.FrameStaticProperties;
import org.photonvision.vision.pipeline.result.CVPipelineResult;
@@ -26,10 +27,13 @@ import org.photonvision.vision.pipeline.result.CVPipelineResult;
public abstract class CVPipeline {
protected S settings;
protected FrameStaticProperties frameStaticProperties;
+ protected QuirkyCamera cameraQuirks;
- protected void setPipeParams(FrameStaticProperties frameStaticProperties, S settings) {
+ protected void setPipeParams(
+ FrameStaticProperties frameStaticProperties, S settings, QuirkyCamera cameraQuirks) {
this.settings = settings;
this.frameStaticProperties = frameStaticProperties;
+ this.cameraQuirks = cameraQuirks;
setPipeParamsImpl();
}
@@ -46,11 +50,11 @@ public abstract class CVPipeline();
this.minSnapshots = minSnapshots;
-
- if (PicamJNI.isSupported()) {
- PicamJNI.setRotation(settings.inputImageRotationMode.value);
- PicamJNI.setShouldCopyColor(true);
- }
}
@Override
@@ -98,20 +94,24 @@ public class Calibrate3dPipeline
new Calibrate3dPipe.CalibratePipeParams(
new Size(frameStaticProperties.imageWidth, frameStaticProperties.imageHeight));
calibrate3dPipe.setParams(calibratePipeParams);
+
+ if (cameraQuirks.hasQuirk(CameraQuirk.PiCam) && PicamJNI.isSupported()) {
+ PicamJNI.setRotation(settings.inputImageRotationMode.value);
+ PicamJNI.setShouldCopyColor(true);
+ }
}
@Override
protected CVPipelineResult process(Frame frame, Calibration3dPipelineSettings settings) {
Mat inputColorMat = frame.image.getMat();
- if (inputColorMat.channels() == 1 && PicamJNI.isSupported()) {
+ if (inputColorMat.channels() == 1
+ && cameraQuirks.hasQuirk(CameraQuirk.PiCam)
+ && PicamJNI.isSupported()) {
long colorMatPtr = PicamJNI.grabFrame(true);
if (colorMatPtr == 0) throw new RuntimeException("Got null Mat from GPU Picam driver");
inputColorMat = new Mat(colorMatPtr);
}
- // Set the pipe parameters
- setPipeParams(frame.frameStaticProperties, settings);
-
if (this.calibrating) {
return new CVPipelineResult(
0, 0, null, new Frame(new CVMat(inputColorMat), frame.frameStaticProperties));
diff --git a/photon-server/src/main/java/org/photonvision/vision/pipeline/ColoredShapePipeline.java b/photon-server/src/main/java/org/photonvision/vision/pipeline/ColoredShapePipeline.java
index d085225c2..91281cab6 100644
--- a/photon-server/src/main/java/org/photonvision/vision/pipeline/ColoredShapePipeline.java
+++ b/photon-server/src/main/java/org/photonvision/vision/pipeline/ColoredShapePipeline.java
@@ -192,8 +192,6 @@ public class ColoredShapePipeline
@Override
protected CVPipelineResult process(Frame frame, ColoredShapePipelineSettings settings) {
- setPipeParams(frame.frameStaticProperties, settings);
-
long sumPipeNanosElapsed = 0L;
var rotateImageResult = rotateImagePipe.run(frame.image.getMat());
diff --git a/photon-server/src/main/java/org/photonvision/vision/pipeline/DriverModePipeline.java b/photon-server/src/main/java/org/photonvision/vision/pipeline/DriverModePipeline.java
index 390e3076e..2a17e4136 100644
--- a/photon-server/src/main/java/org/photonvision/vision/pipeline/DriverModePipeline.java
+++ b/photon-server/src/main/java/org/photonvision/vision/pipeline/DriverModePipeline.java
@@ -22,6 +22,7 @@ import org.apache.commons.lang3.tuple.Pair;
import org.opencv.core.Mat;
import org.photonvision.common.util.math.MathUtils;
import org.photonvision.raspi.PicamJNI;
+import org.photonvision.vision.camera.CameraQuirk;
import org.photonvision.vision.frame.Frame;
import org.photonvision.vision.opencv.CVMat;
import org.photonvision.vision.pipe.impl.CalculateFPSPipe;
@@ -56,7 +57,7 @@ public class DriverModePipeline
resizeImagePipe.setParams(
new ResizeImagePipe.ResizeImageParams(settings.streamingFrameDivisor));
- if (PicamJNI.isSupported()) {
+ if (PicamJNI.isSupported() && cameraQuirks.hasQuirk(CameraQuirk.PiCam)) {
PicamJNI.setRotation(settings.inputImageRotationMode.value);
PicamJNI.setShouldCopyColor(true);
}
@@ -65,7 +66,7 @@ public class DriverModePipeline
@Override
public DriverModePipelineResult process(Frame frame, DriverModePipelineSettings settings) {
long totalNanos = 0;
- boolean accelerated = PicamJNI.isSupported();
+ boolean accelerated = PicamJNI.isSupported() && cameraQuirks.hasQuirk(CameraQuirk.PiCam);
// apply pipes
var inputMat = frame.image.getMat();
diff --git a/photon-server/src/main/java/org/photonvision/vision/pipeline/ReflectivePipeline.java b/photon-server/src/main/java/org/photonvision/vision/pipeline/ReflectivePipeline.java
index 80100fe6d..8d6bfc7a6 100644
--- a/photon-server/src/main/java/org/photonvision/vision/pipeline/ReflectivePipeline.java
+++ b/photon-server/src/main/java/org/photonvision/vision/pipeline/ReflectivePipeline.java
@@ -21,6 +21,7 @@ import java.util.List;
import org.opencv.core.Mat;
import org.photonvision.common.util.math.MathUtils;
import org.photonvision.raspi.PicamJNI;
+import org.photonvision.vision.camera.CameraQuirk;
import org.photonvision.vision.frame.Frame;
import org.photonvision.vision.opencv.CVMat;
import org.photonvision.vision.opencv.Contour;
@@ -70,11 +71,7 @@ public class ReflectivePipeline extends CVPipeline frameSupplier;
private final Supplier pipelineSupplier;
private final Consumer pipelineResultConsumer;
+ private final QuirkyCamera cameraQuirks;
private long loopCount;
@@ -49,10 +51,12 @@ public class VisionRunner {
public VisionRunner(
FrameProvider frameSupplier,
Supplier pipelineSupplier,
- Consumer pipelineResultConsumer) {
+ Consumer pipelineResultConsumer,
+ QuirkyCamera cameraQuirks) {
this.frameSupplier = frameSupplier;
this.pipelineSupplier = pipelineSupplier;
this.pipelineResultConsumer = pipelineResultConsumer;
+ this.cameraQuirks = cameraQuirks;
visionProcessThread = new Thread(this::update);
visionProcessThread.setName("VisionRunner - " + frameSupplier.getName());
@@ -69,7 +73,7 @@ public class VisionRunner {
var frame = frameSupplier.get();
try {
- var pipelineResult = pipeline.run(frame);
+ var pipelineResult = pipeline.run(frame, cameraQuirks);
pipelineResultConsumer.accept(pipelineResult);
} catch (Exception ex) {
logger.error("Exception on loop " + loopCount);
diff --git a/photon-server/src/test/java/org/photonvision/common/BenchmarkTest.java b/photon-server/src/test/java/org/photonvision/common/BenchmarkTest.java
index 78d81f57c..81ebd1402 100644
--- a/photon-server/src/test/java/org/photonvision/common/BenchmarkTest.java
+++ b/photon-server/src/test/java/org/photonvision/common/BenchmarkTest.java
@@ -26,6 +26,7 @@ import org.junit.jupiter.api.Test;
import org.photonvision.common.util.TestUtils;
import org.photonvision.common.util.math.MathUtils;
import org.photonvision.common.util.numbers.NumberListUtils;
+import org.photonvision.vision.camera.QuirkyCamera;
import org.photonvision.vision.frame.FrameProvider;
import org.photonvision.vision.frame.provider.FileFrameProvider;
import org.photonvision.vision.opencv.CVMat;
@@ -122,7 +123,7 @@ public class BenchmarkTest {
// warmup for 5 loops.
System.out.println("Warming up for 5 loops...");
for (int i = 0; i < 5; i++) {
- pipeline.run(frameProvider.get());
+ pipeline.run(frameProvider.get(), QuirkyCamera.DefaultCamera);
}
final List processingTimes = new ArrayList<>();
@@ -140,7 +141,8 @@ public class BenchmarkTest {
+ frameProps.imageHeight);
var benchmarkStartMillis = System.currentTimeMillis();
do {
- CVPipelineResult pipelineResult = pipeline.run(frameProvider.get());
+ CVPipelineResult pipelineResult =
+ pipeline.run(frameProvider.get(), QuirkyCamera.DefaultCamera);
pipelineResult.release();
processingTimes.add(pipelineResult.processingMillis);
latencyTimes.add(pipelineResult.getLatencyMillis());
diff --git a/photon-server/src/test/java/org/photonvision/common/ShapeBenchmarkTest.java b/photon-server/src/test/java/org/photonvision/common/ShapeBenchmarkTest.java
index 4c4cc7e2c..a13cf9a7d 100644
--- a/photon-server/src/test/java/org/photonvision/common/ShapeBenchmarkTest.java
+++ b/photon-server/src/test/java/org/photonvision/common/ShapeBenchmarkTest.java
@@ -40,6 +40,7 @@ import org.junit.jupiter.api.Test;
import org.photonvision.common.util.TestUtils;
import org.photonvision.common.util.math.MathUtils;
import org.photonvision.common.util.numbers.NumberListUtils;
+import org.photonvision.vision.camera.QuirkyCamera;
import org.photonvision.vision.frame.FrameProvider;
import org.photonvision.vision.frame.provider.FileFrameProvider;
import org.photonvision.vision.opencv.CVMat;
@@ -150,7 +151,7 @@ public class ShapeBenchmarkTest {
// warmup for 5 loops.
System.out.println("Warming up for 5 loops...");
for (int i = 0; i < 5; i++) {
- pipeline.run(frameProvider.get());
+ pipeline.run(frameProvider.get(), QuirkyCamera.DefaultCamera);
}
final List processingTimes = new ArrayList<>();
@@ -168,7 +169,8 @@ public class ShapeBenchmarkTest {
+ frameProps.imageHeight);
var benchmarkStartMillis = System.currentTimeMillis();
do {
- CVPipelineResult pipelineResult = pipeline.run(frameProvider.get());
+ CVPipelineResult pipelineResult =
+ pipeline.run(frameProvider.get(), QuirkyCamera.DefaultCamera);
pipelineResult.release();
processingTimes.add(pipelineResult.processingMillis);
latencyTimes.add(pipelineResult.getLatencyMillis());
diff --git a/photon-server/src/test/java/org/photonvision/vision/pipeline/Calibrate3dPipeTest.java b/photon-server/src/test/java/org/photonvision/vision/pipeline/Calibrate3dPipeTest.java
index 6eebf0d23..6970a7e49 100644
--- a/photon-server/src/test/java/org/photonvision/vision/pipeline/Calibrate3dPipeTest.java
+++ b/photon-server/src/test/java/org/photonvision/vision/pipeline/Calibrate3dPipeTest.java
@@ -37,6 +37,7 @@ import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
import org.photonvision.common.util.TestUtils;
import org.photonvision.vision.calibration.CameraCalibrationCoefficients;
+import org.photonvision.vision.camera.QuirkyCamera;
import org.photonvision.vision.frame.Frame;
import org.photonvision.vision.frame.FrameStaticProperties;
import org.photonvision.vision.opencv.CVMat;
@@ -102,7 +103,8 @@ public class Calibrate3dPipeTest {
calibration3dPipeline.run(
new Frame(
new CVMat(Imgcodecs.imread(file.getAbsolutePath())),
- new FrameStaticProperties(640, 480, 60, new Rotation2d(), null)));
+ new FrameStaticProperties(640, 480, 60, new Rotation2d(), null)),
+ QuirkyCamera.DefaultCamera);
// TestUtils.showImage(output.outputFrame.image.getMat());
output.release();
}
@@ -117,7 +119,8 @@ public class Calibrate3dPipeTest {
.run(
new Frame(
new CVMat(Imgcodecs.imread(directoryListing[0].getAbsolutePath())),
- new FrameStaticProperties(640, 480, 60, new Rotation2d(), null)))
+ new FrameStaticProperties(640, 480, 60, new Rotation2d(), null)),
+ QuirkyCamera.DefaultCamera)
.release();
assertTrue(
@@ -264,7 +267,8 @@ public class Calibrate3dPipeTest {
new Frame(
new CVMat(Imgcodecs.imread(file.getAbsolutePath())),
new FrameStaticProperties(
- (int) imgRes.width, (int) imgRes.height, 67, new Rotation2d(), null)));
+ (int) imgRes.width, (int) imgRes.height, 67, new Rotation2d(), null)),
+ QuirkyCamera.DefaultCamera);
// TestUtils.showImage(output.outputFrame.image.getMat(), file.getName(), 1);
output.outputFrame.release();
diff --git a/photon-server/src/test/java/org/photonvision/vision/pipeline/CirclePNPTest.java b/photon-server/src/test/java/org/photonvision/vision/pipeline/CirclePNPTest.java
index 98f6f40ed..cd264575c 100644
--- a/photon-server/src/test/java/org/photonvision/vision/pipeline/CirclePNPTest.java
+++ b/photon-server/src/test/java/org/photonvision/vision/pipeline/CirclePNPTest.java
@@ -25,6 +25,7 @@ import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.photonvision.common.util.TestUtils;
import org.photonvision.vision.calibration.CameraCalibrationCoefficients;
+import org.photonvision.vision.camera.QuirkyCamera;
import org.photonvision.vision.frame.Frame;
import org.photonvision.vision.frame.provider.FileFrameProvider;
import org.photonvision.vision.opencv.CVMat;
@@ -114,7 +115,7 @@ public class CirclePNPTest {
new Rotation2d(),
TestUtils.get2020LifeCamCoeffs(true));
- CVPipelineResult pipelineResult = pipeline.run(frameProvider.get());
+ CVPipelineResult pipelineResult = pipeline.run(frameProvider.get(), QuirkyCamera.DefaultCamera);
printTestResults(pipelineResult);
TestUtils.showImage(pipelineResult.outputFrame.image.getMat(), "Pipeline output", 999999);
@@ -125,7 +126,7 @@ public class CirclePNPTest {
pipeline.settings = settings;
while (true) {
- CVPipelineResult pipelineResult = pipeline.run(frame);
+ CVPipelineResult pipelineResult = pipeline.run(frame, QuirkyCamera.DefaultCamera);
printTestResults(pipelineResult);
int preRelease = CVMat.getMatCount();
pipelineResult.release();
diff --git a/photon-server/src/test/java/org/photonvision/vision/pipeline/ColoredShapePipelineTest.java b/photon-server/src/test/java/org/photonvision/vision/pipeline/ColoredShapePipelineTest.java
index 6d4df64b0..5576b4fed 100644
--- a/photon-server/src/test/java/org/photonvision/vision/pipeline/ColoredShapePipelineTest.java
+++ b/photon-server/src/test/java/org/photonvision/vision/pipeline/ColoredShapePipelineTest.java
@@ -19,8 +19,8 @@ package org.photonvision.vision.pipeline;
import org.junit.jupiter.api.Test;
import org.photonvision.common.util.TestUtils;
+import org.photonvision.vision.camera.QuirkyCamera;
import org.photonvision.vision.frame.Frame;
-import org.photonvision.vision.frame.FrameStaticProperties;
import org.photonvision.vision.frame.provider.FileFrameProvider;
import org.photonvision.vision.opencv.ContourGroupingMode;
import org.photonvision.vision.opencv.ContourIntersectionDirection;
@@ -30,38 +30,29 @@ import org.photonvision.vision.pipeline.result.CVPipelineResult;
public class ColoredShapePipelineTest {
public static void testTriangleDetection(
- ColoredShapePipeline pipeline,
- ColoredShapePipelineSettings settings,
- FrameStaticProperties frameStaticProperties,
- Frame frame) {
- pipeline.setPipeParams(frameStaticProperties, settings);
- CVPipelineResult colouredShapePipelineResult = pipeline.run(frame);
+ ColoredShapePipeline pipeline, ColoredShapePipelineSettings settings, Frame frame) {
+ pipeline.settings = settings;
+ CVPipelineResult colouredShapePipelineResult = pipeline.run(frame, QuirkyCamera.DefaultCamera);
TestUtils.showImage(
colouredShapePipelineResult.outputFrame.image.getMat(), "Pipeline output: Triangle.");
printTestResults(colouredShapePipelineResult);
}
public static void testQuadrilateralDetection(
- ColoredShapePipeline pipeline,
- ColoredShapePipelineSettings settings,
- FrameStaticProperties frameStaticProperties,
- Frame frame) {
+ ColoredShapePipeline pipeline, ColoredShapePipelineSettings settings, Frame frame) {
settings.desiredShape = ContourShape.Quadrilateral;
- pipeline.setPipeParams(frameStaticProperties, settings);
- CVPipelineResult colouredShapePipelineResult = pipeline.run(frame);
+ pipeline.settings = settings;
+ CVPipelineResult colouredShapePipelineResult = pipeline.run(frame, QuirkyCamera.DefaultCamera);
TestUtils.showImage(
colouredShapePipelineResult.outputFrame.image.getMat(), "Pipeline output: Quadrilateral.");
printTestResults(colouredShapePipelineResult);
}
public static void testCustomShapeDetection(
- ColoredShapePipeline pipeline,
- ColoredShapePipelineSettings settings,
- FrameStaticProperties frameStaticProperties,
- Frame frame) {
+ ColoredShapePipeline pipeline, ColoredShapePipelineSettings settings, Frame frame) {
settings.desiredShape = ContourShape.Custom;
- pipeline.setPipeParams(frameStaticProperties, settings);
- CVPipelineResult colouredShapePipelineResult = pipeline.run(frame);
+ pipeline.settings = settings;
+ CVPipelineResult colouredShapePipelineResult = pipeline.run(frame, QuirkyCamera.DefaultCamera);
TestUtils.showImage(
colouredShapePipelineResult.outputFrame.image.getMat(), "Pipeline output: Custom.");
printTestResults(colouredShapePipelineResult);
@@ -69,13 +60,10 @@ public class ColoredShapePipelineTest {
@Test
public static void testCircleShapeDetection(
- ColoredShapePipeline pipeline,
- ColoredShapePipelineSettings settings,
- FrameStaticProperties frameStaticProperties,
- Frame frame) {
+ ColoredShapePipeline pipeline, ColoredShapePipelineSettings settings, Frame frame) {
settings.desiredShape = ContourShape.Circle;
- pipeline.setPipeParams(frameStaticProperties, settings);
- CVPipelineResult colouredShapePipelineResult = pipeline.run(frame);
+ pipeline.settings = settings;
+ CVPipelineResult colouredShapePipelineResult = pipeline.run(frame, QuirkyCamera.DefaultCamera);
TestUtils.showImage(
colouredShapePipelineResult.outputFrame.image.getMat(), "Pipeline output: Circle.");
printTestResults(colouredShapePipelineResult);
@@ -95,8 +83,7 @@ public class ColoredShapePipelineTest {
new FileFrameProvider(
TestUtils.getPowercellImagePath(TestUtils.PowercellTestImages.kPowercell_test_6, false),
TestUtils.WPI2019Image.FOV);
- testCircleShapeDetection(
- pipeline, settings, frameProvider.get().frameStaticProperties, frameProvider.get());
+ testCircleShapeDetection(pipeline, settings, frameProvider.get());
}
public static void main(String[] args) {
@@ -120,14 +107,10 @@ public class ColoredShapePipelineTest {
settings.accuracyPercentage = 30.0;
ColoredShapePipeline pipeline = new ColoredShapePipeline();
- testTriangleDetection(
- pipeline, settings, frameProvider.get().frameStaticProperties, frameProvider.get());
- testQuadrilateralDetection(
- pipeline, settings, frameProvider.get().frameStaticProperties, frameProvider.get());
- testCustomShapeDetection(
- pipeline, settings, frameProvider.get().frameStaticProperties, frameProvider.get());
- testCircleShapeDetection(
- pipeline, settings, frameProvider.get().frameStaticProperties, frameProvider.get());
+ testTriangleDetection(pipeline, settings, frameProvider.get());
+ testQuadrilateralDetection(pipeline, settings, frameProvider.get());
+ testCustomShapeDetection(pipeline, settings, frameProvider.get());
+ testCircleShapeDetection(pipeline, settings, frameProvider.get());
testPowercellDetection(settings, pipeline);
}
diff --git a/photon-server/src/test/java/org/photonvision/vision/pipeline/ReflectivePipelineTest.java b/photon-server/src/test/java/org/photonvision/vision/pipeline/ReflectivePipelineTest.java
index fb8ab9acd..e47df81ed 100644
--- a/photon-server/src/test/java/org/photonvision/vision/pipeline/ReflectivePipelineTest.java
+++ b/photon-server/src/test/java/org/photonvision/vision/pipeline/ReflectivePipelineTest.java
@@ -20,6 +20,7 @@ package org.photonvision.vision.pipeline;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.photonvision.common.util.TestUtils;
+import org.photonvision.vision.camera.QuirkyCamera;
import org.photonvision.vision.frame.Frame;
import org.photonvision.vision.frame.provider.FileFrameProvider;
import org.photonvision.vision.opencv.CVMat;
@@ -50,7 +51,7 @@ public class ReflectivePipelineTest {
CVPipelineResult pipelineResult;
- pipelineResult = pipeline.run(frameProvider.get());
+ pipelineResult = pipeline.run(frameProvider.get(), QuirkyCamera.DefaultCamera);
printTestResults(pipelineResult);
Assertions.assertTrue(pipelineResult.hasTargets());
@@ -74,7 +75,7 @@ public class ReflectivePipelineTest {
TestUtils.getWPIImagePath(TestUtils.WPI2020Image.kBlueGoal_108in_Center, false),
TestUtils.WPI2020Image.FOV);
- CVPipelineResult pipelineResult = pipeline.run(frameProvider.get());
+ CVPipelineResult pipelineResult = pipeline.run(frameProvider.get(), QuirkyCamera.DefaultCamera);
printTestResults(pipelineResult);
TestUtils.showImage(pipelineResult.outputFrame.image.getMat(), "Pipeline output");
@@ -84,7 +85,7 @@ public class ReflectivePipelineTest {
var pipeline = new ReflectivePipeline();
while (true) {
- CVPipelineResult pipelineResult = pipeline.run(frame);
+ CVPipelineResult pipelineResult = pipeline.run(frame, QuirkyCamera.DefaultCamera);
printTestResults(pipelineResult);
int preRelease = CVMat.getMatCount();
pipelineResult.release();
diff --git a/photon-server/src/test/java/org/photonvision/vision/pipeline/SolvePNPTest.java b/photon-server/src/test/java/org/photonvision/vision/pipeline/SolvePNPTest.java
index 374104d63..25f4717fb 100644
--- a/photon-server/src/test/java/org/photonvision/vision/pipeline/SolvePNPTest.java
+++ b/photon-server/src/test/java/org/photonvision/vision/pipeline/SolvePNPTest.java
@@ -29,6 +29,7 @@ import org.junit.jupiter.api.Test;
import org.opencv.imgcodecs.Imgcodecs;
import org.photonvision.common.util.TestUtils;
import org.photonvision.vision.calibration.CameraCalibrationCoefficients;
+import org.photonvision.vision.camera.QuirkyCamera;
import org.photonvision.vision.frame.Frame;
import org.photonvision.vision.frame.provider.FileFrameProvider;
import org.photonvision.vision.opencv.CVMat;
@@ -109,7 +110,7 @@ public class SolvePNPTest {
CVPipelineResult pipelineResult;
- pipelineResult = pipeline.run(frameProvider.get());
+ pipelineResult = pipeline.run(frameProvider.get(), QuirkyCamera.DefaultCamera);
printTestResults(pipelineResult);
// these numbers are not *accurate*, but they are known and expected
@@ -142,7 +143,7 @@ public class SolvePNPTest {
new Rotation2d(),
TestUtils.get2020LifeCamCoeffs(true));
- CVPipelineResult pipelineResult = pipeline.run(frameProvider.get());
+ CVPipelineResult pipelineResult = pipeline.run(frameProvider.get(), QuirkyCamera.DefaultCamera);
printTestResults(pipelineResult);
// these numbers are not *accurate*, but they are known and expected
@@ -159,7 +160,7 @@ public class SolvePNPTest {
pipeline.settings = settings;
while (true) {
- CVPipelineResult pipelineResult = pipeline.run(frame);
+ CVPipelineResult pipelineResult = pipeline.run(frame, QuirkyCamera.DefaultCamera);
printTestResults(pipelineResult);
int preRelease = CVMat.getMatCount();
pipelineResult.release();