From 3ba0e8dad7d84ab080d5106f15017a9ae693ba1f Mon Sep 17 00:00:00 2001 From: Michael Berry Date: Tue, 26 Dec 2023 10:44:36 +0000 Subject: [PATCH] Unsupported media no longer stops other previews --- .../windows/video/VidPreviewDisplay.java | 30 +++++++++++-------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/Quelea/src/main/java/org/quelea/windows/video/VidPreviewDisplay.java b/Quelea/src/main/java/org/quelea/windows/video/VidPreviewDisplay.java index 373224845..e007b3241 100644 --- a/Quelea/src/main/java/org/quelea/windows/video/VidPreviewDisplay.java +++ b/Quelea/src/main/java/org/quelea/windows/video/VidPreviewDisplay.java @@ -33,27 +33,33 @@ public VidPreviewDisplay() { } public synchronized Image getPreviewImg(URI uri) { - if(uri == null || playBin == null) { + if (uri == null || playBin == null) { return VideoListPanel.BLANK; } - LOGGER.log(Level.INFO,"PROCESSING URI " + uri); + LOGGER.log(Level.INFO, "PROCESSING URI " + uri); playBin.setURI(uri); playBin.getState(); playBin.pause(); playBin.getState(); playBin.getState(); Sample s = playBin.emit(Sample.class, "convert-sample", Caps.fromString("video/x-raw,format=BGRA")); - Structure capsStruct = s.getCaps().getStructure(0); - int width = capsStruct.getInteger("width"); - int height = capsStruct.getInteger("height"); - Buffer activeBuffer = s.getBuffer(); - PixelBuffer pixelBuffer = new PixelBuffer<>(width, height, - activeBuffer.map(false), PixelFormat.getByteBgraPreInstance()); - WritableImage img = new WritableImage(pixelBuffer); - playBin.stop(); - playBin.getState(); - return img; + if (s == null) { + playBin.stop(); + playBin.getState(); + return VideoListPanel.BLANK; + } else { + Structure capsStruct = s.getCaps().getStructure(0); + int width = capsStruct.getInteger("width"); + int height = capsStruct.getInteger("height"); + Buffer activeBuffer = s.getBuffer(); + PixelBuffer pixelBuffer = new PixelBuffer<>(width, height, + activeBuffer.map(false), PixelFormat.getByteBgraPreInstance()); + WritableImage img = new WritableImage(pixelBuffer); + playBin.stop(); + playBin.getState(); + return img; + } } }