From c5ea0f2ed11d4ab878f0c72c0690be979ccc1038 Mon Sep 17 00:00:00 2001 From: Vojtech Moravec <vojtech.moravec.st@vsb.cz> Date: Wed, 14 Oct 2020 14:02:03 +0200 Subject: [PATCH] Return qcmpSupported in dataset list. With this returned in dataset request, fiji plugin knows, if qcmp compression is available. --- src/main/java/bdv/server/CellHandler.java | 13 ++++++++++--- .../java/bdv/server/JsonDatasetListHandler.java | 3 +++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/main/java/bdv/server/CellHandler.java b/src/main/java/bdv/server/CellHandler.java index 0a049b7..4b09666 100644 --- a/src/main/java/bdv/server/CellHandler.java +++ b/src/main/java/bdv/server/CellHandler.java @@ -158,6 +158,7 @@ public class CellHandler extends ContextHandler { */ private final BigDataServer.ExtendedCompressionOptions compressionParams; + private boolean compressionSupport = false; private ArrayList<ICacheFile> cachedCodebooks = null; private HashMap<Integer, ImageCompressor> compressors = null; private ImageCompressor lowestResCompressor = null; @@ -242,7 +243,8 @@ public class CellHandler extends ContextHandler { return; } } else { - LOG.warn("Didn't find any cached codebooks for " + this.baseFilename); + LOG.warn("Didn't find any cached codebooks for " + this.baseFilename + " and codebook training is not enabled. " + + "Enable with 'tcb' after xml file path."); return; } } @@ -276,16 +278,21 @@ public class CellHandler extends ContextHandler { for (int i = 0; i < initialCompressionCacheSize; i++) { cachedBuffers.push(new MemoryOutputStream(INITIAL_BUFFER_SIZE)); } + compressionSupport = true; + } + + public boolean isCompressionSupported() { + return compressionSupport; } private boolean trainCompressionCodebooks(final BigDataServer.ExtendedCompressionOptions compressionOptions, final Hdf5ImageLoader hdf5ImageLoader) { final ArrayImg<?, ?> arrImg = (ArrayImg<?, ?>) hdf5ImageLoader.getSetupImgLoader(0).getImage(0, 0, ImgLoaderHints.LOAD_COMPLETELY); - assert (arrImg.numDimensions() == 3); - + assert (arrImg.numDimensions() == 3) : "arrImg.numDimensions() != 3"; assert (compressionOptions.getInputDataInfo().getCacheFileName().equals(baseFilename)); + final CallbackInputData cid = new CallbackInputData((x, y, z) -> { return ((UnsignedShortType) arrImg.getAt(x, y, z)).getInteger(); diff --git a/src/main/java/bdv/server/JsonDatasetListHandler.java b/src/main/java/bdv/server/JsonDatasetListHandler.java index d976b5a..051ec84 100644 --- a/src/main/java/bdv/server/JsonDatasetListHandler.java +++ b/src/main/java/bdv/server/JsonDatasetListHandler.java @@ -6,6 +6,7 @@ import org.eclipse.jetty.server.Request; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.handler.ContextHandler; import org.eclipse.jetty.server.handler.ContextHandlerCollection; + import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -85,6 +86,8 @@ public class JsonDatasetListHandler extends ContextHandler writer.name( "datasetUrl" ).value( contextHandler.getDataSetURL() ); + writer.name("qcmpSupported").value(contextHandler.isCompressionSupported()); + writer.endObject(); } } -- GitLab