Skip to content

Commit b491462

Browse files
committed
getBase64Image now using blocking data
1 parent ba77f29 commit b491462

File tree

2 files changed

+30
-15
lines changed

2 files changed

+30
-15
lines changed

src/main/java/org/myrobotlab/service/LLM.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -483,9 +483,15 @@ public static void main(String[] args) {
483483
webgui.autoStartBrowser(false);
484484
webgui.startService();
485485

486+
boolean done = true;
487+
if (done) {
488+
return;
489+
}
490+
486491
// llm.config.url = "http://fast:11434/v1/chat/completions";
487492
// response = llm.getResponse("Hello, why is the sky blue?");
488493
// System.out.println(response.msg);
494+
489495
for (int i = 0; i < 100; ++i) {
490496

491497
while (cv.getBase64Image() == null) {

src/main/java/org/myrobotlab/service/OpenCV.java

Lines changed: 24 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ public class OpenCV extends AbstractComputerVision<OpenCVConfig> implements Imag
148148
int vpId = 0;
149149

150150
transient CanvasFrame canvasFrame = null;
151-
151+
152152
private final Set<String> removeFilters = new HashSet<>();
153153

154154
class VideoProcessor implements Runnable {
@@ -211,24 +211,24 @@ synchronized public void run() {
211211
}
212212

213213
processVideo(data);
214-
214+
215215
// process removal/release of filters
216-
if (removeFilters.size()> 0) {
216+
if (removeFilters.size() > 0) {
217217
Map<String, OpenCVFilter> newFilters = new LinkedHashMap<>();
218218
// create new filter set for thread safety
219-
for (OpenCVFilter filter: filters.values()) {
219+
for (OpenCVFilter filter : filters.values()) {
220220
if (removeFilters.contains(filter.name)) {
221221
continue;
222222
}
223223
newFilters.put(filter.name, filter);
224224
}
225-
225+
226226
// stop/release filters to be removed
227-
for(String removeMe: removeFilters) {
227+
for (String removeMe : removeFilters) {
228228
log.warn("releasing {}", removeMe);
229229
filters.get(removeMe).release();
230230
}
231-
231+
232232
// assign the new set of filters w/o the removed ones
233233
filters = newFilters;
234234
removeFilters.clear();
@@ -1094,12 +1094,20 @@ public String getGrabberType() {
10941094
public IplImage getImage() {
10951095
return lastImage;
10961096
}
1097-
1097+
10981098
public String getBase64Image() {
1099+
return getBase64Image(3500);
1100+
}
1101+
1102+
public String getBase64Image(int timeout) {
10991103
try {
11001104
final ByteArrayOutputStream os = new ByteArrayOutputStream();
11011105
String imgType = "jpg";
1102-
BufferedImage bi = getDisplay();
1106+
OpenCVData d = getOpenCVData(timeout);
1107+
if (d == null) {
1108+
return null;
1109+
}
1110+
BufferedImage bi = d.getDisplay();
11031111
if (bi != null) {
11041112
ImageIO.write(bi, imgType, os);
11051113
os.close();
@@ -1265,11 +1273,12 @@ private void processVideo(OpenCVData data) throws org.bytedeco.javacv.FrameGrabb
12651273
// latency use the original ts from before fetch image and the filters
12661274
// !
12671275
webImage.ts = data.getTs();
1268-
// try {
1269-
// FileIO.toFile(String.format("image-%s-%d-base64.txt", getName(), frameIndex), webImage.data);
1270-
// } catch(Exception e) {
1271-
// error(e);
1272-
// }
1276+
// try {
1277+
// FileIO.toFile(String.format("image-%s-%d-base64.txt", getName(),
1278+
// frameIndex), webImage.data);
1279+
// } catch(Exception e) {
1280+
// error(e);
1281+
// }
12731282
broadcast("publishWebDisplay", webImage);
12741283
}
12751284

@@ -1683,7 +1692,7 @@ public ImageData saveImage() {
16831692
invoke("publishImage", image);
16841693
return image;
16851694
}
1686-
1695+
16871696
/**
16881697
* @param name
16891698
* remove a filter by name

0 commit comments

Comments
 (0)