From 552cee6188d253d12ce62cc51efcbe1cdf77870d Mon Sep 17 00:00:00 2001 From: berry120 Date: Sun, 31 Dec 2023 23:56:06 +0000 Subject: [PATCH] Slight refactor --- .../quelea/services/utils/QueleaProperties.java | 2 +- .../java/org/quelea/windows/video/FXImageSink.java | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Quelea/src/main/java/org/quelea/services/utils/QueleaProperties.java b/Quelea/src/main/java/org/quelea/services/utils/QueleaProperties.java index 0da950e54..1f026da70 100644 --- a/Quelea/src/main/java/org/quelea/services/utils/QueleaProperties.java +++ b/Quelea/src/main/java/org/quelea/services/utils/QueleaProperties.java @@ -44,7 +44,7 @@ */ public final class QueleaProperties extends SortedProperties { - public static final Version VERSION = new Version("2024.0", VersionType.BETA); + public static final Version VERSION = new Version("2024.0", VersionType.CI); private static QueleaProperties INSTANCE; private String userHome; diff --git a/Quelea/src/main/java/org/quelea/windows/video/FXImageSink.java b/Quelea/src/main/java/org/quelea/windows/video/FXImageSink.java index acf84a821..fe9535c1d 100644 --- a/Quelea/src/main/java/org/quelea/windows/video/FXImageSink.java +++ b/Quelea/src/main/java/org/quelea/windows/video/FXImageSink.java @@ -33,8 +33,8 @@ import org.freedesktop.gstreamer.elements.AppSink; import java.nio.ByteOrder; -import java.util.ArrayList; -import java.util.List; +import java.util.Queue; +import java.util.concurrent.ArrayBlockingQueue; /** * A wrapper connecting a GStreamer AppSink and a JavaFX Image, making use of @@ -48,6 +48,7 @@ public class FXImageSink { private final static String DEFAULT_CAPS; + private final static int OLD_SAMPLE_BUFFER_SIZE = 2; static { if (ByteOrder.nativeOrder() == ByteOrder.LITTLE_ENDIAN) { @@ -61,7 +62,7 @@ public class FXImageSink { private final ReadOnlyObjectWrapper image; private Sample activeSample; private Buffer activeBuffer; - private final List oldSamples; + private final Queue oldSamples; /** * Create an FXImageSink. A new AppSink element will be created that can be @@ -78,7 +79,7 @@ public FXImageSink() { */ public FXImageSink(AppSink sink) { this.sink = sink; - oldSamples = new ArrayList<>(); + oldSamples = new ArrayBlockingQueue<>(OLD_SAMPLE_BUFFER_SIZE + 1); sink.set("emit-signals", true); sink.connect((AppSink.NEW_SAMPLE) elem -> { Sample s = elem.pullSample(); @@ -143,9 +144,8 @@ private void updateImage(Sample newSample) { if (oldBuffer != null) { oldBuffer.unmap(); } - - while (oldSamples.size() > 2) { - oldSamples.remove(0).dispose(); + while (oldSamples.size() > OLD_SAMPLE_BUFFER_SIZE) { + oldSamples.remove().dispose(); } }