diff --git a/src/main/java/org/olat/modules/video/VideoModule.java b/src/main/java/org/olat/modules/video/VideoModule.java index 2b6ed1bcbe32c2d6c5270a7ec1e9edd46c87bbb3..5de25406d858c347c7fe8bed609aaed191322104 100644 --- a/src/main/java/org/olat/modules/video/VideoModule.java +++ b/src/main/java/org/olat/modules/video/VideoModule.java @@ -138,6 +138,7 @@ public class VideoModule extends AbstractSpringModule { log.info("video.coursenode.enabled=" + isCoursenodeEnabled()); log.info("video.transcoding.enabled=" + isTranscodingEnabled()); log.info("video.transcoding.resolutions=" + Arrays.toString(getTranscodingResolutions())); + log.info("video.transcoding.resolution.preferred=" + getPreferredDefaultResolution()); log.info("video.transcoding.taskset.cpuconfig=" + getTranscodingTasksetConfig()); log.info("video.transcoding.local=" + isTranscodingLocal()); diff --git a/src/main/java/org/olat/modules/video/manager/VideoManagerImpl.java b/src/main/java/org/olat/modules/video/manager/VideoManagerImpl.java index d9e82d0cf57ea23ff1975a2511d4c09651d68649..f054c21a1f007eaec8667c20ec6db83f6c3103ed 100644 --- a/src/main/java/org/olat/modules/video/manager/VideoManagerImpl.java +++ b/src/main/java/org/olat/modules/video/manager/VideoManagerImpl.java @@ -258,7 +258,7 @@ public class VideoManagerImpl implements VideoManager { ch.close(); return true; - } catch (Exception e) { + } catch (Exception | AssertionError e) { log.error("Could not get frame::" + frameNumber + " for video::" + videoFile.getAbsolutePath(), e); return false; } @@ -309,7 +309,16 @@ public class VideoManagerImpl implements VideoManager { public VideoMetadata readVideoMetadataFile(OLATResource videoResource){ VFSContainer baseContainer= FileResourceManager.getInstance().getFileResourceRootImpl(videoResource); VFSLeaf metaDataFile = VFSManager.resolveOrCreateLeafFromPath(baseContainer, FILENAME_VIDEO_METADATA_XML); - return (VideoMetadata) XStreamHelper.readObject(XStreamHelper.createXStreamInstance(), metaDataFile); + try { + return (VideoMetadata) XStreamHelper.readObject(XStreamHelper.createXStreamInstance(), metaDataFile); + } catch (Exception e) { + log.error("Error while parsing XStream file for videoResource::" + videoResource, e); + // return an empty, so at least it displays something and not an error + VideoMetadata meta = new VideoMetadataImpl(); + meta.setWidth(800); + meta.setHeight(600); + return meta; + } } @Override @@ -524,8 +533,8 @@ public class VideoManagerImpl implements VideoManager { metaData.setWidth(videoSize.getWidth()); metaData.setHeight(videoSize.getHeight()); } else { - metaData.setWidth(600); - metaData.setHeight(800); + metaData.setHeight(600); + metaData.setWidth(800); } // calculate video duration long duration = movieService.getDuration(targetFile, FILETYPE_MP4); diff --git a/src/main/java/org/olat/modules/video/ui/VideoAdminTranscodingController.java b/src/main/java/org/olat/modules/video/ui/VideoAdminTranscodingController.java index 780b7421d7c11f2b3902b73fdd6394e3794e96ee..91d64738283433991a4070b2aa29c7d7574bfb91 100644 --- a/src/main/java/org/olat/modules/video/ui/VideoAdminTranscodingController.java +++ b/src/main/java/org/olat/modules/video/ui/VideoAdminTranscodingController.java @@ -105,18 +105,22 @@ public class VideoAdminTranscodingController extends FormBasicController { } private boolean mayTranscode(int resolution){ + if (!videoModule.isTranscodingEnabled()) { + return false; + } int[] transcodingRes = videoModule.getTranscodingResolutions(); for (int i = 0; i < transcodingRes.length; i++) { - if (resolution == transcodingRes[i] && videoModule.isTranscodingEnabled()){ - return Boolean.TRUE; + if (resolution == transcodingRes[i]){ + return true; } } - return Boolean.FALSE; + return false; } private void loadTable(){ //Hardcoded same as VideoAdminSetController int[] resolution = {2160, 1080, 720, 480, 360, 240}; + //FIXME:FK fetch using one single SQL query for (int i = 0; i < resolution.length; i++) { int sizeOfTranscodings = availableTranscodings.get(resolution[i]).size(); int counter = 0; @@ -162,6 +166,7 @@ public class VideoAdminTranscodingController extends FormBasicController { } private void generateStatusOfTranscodings() { + //FIXME:FK fetch using one single SQL query availableTranscodings = new HashMap<>(); availableTranscodings.put(240, new HashSet<OLATResource>()); availableTranscodings.put(360, new HashSet<OLATResource>()); diff --git a/src/main/java/org/olat/modules/video/ui/VideoPosterSelectionForm.java b/src/main/java/org/olat/modules/video/ui/VideoPosterSelectionForm.java index f0f4ef365f5425b439205d51f83ce9170fa6afaf..2d1af01e0b94d85b46235e5b62bfa64b6eaaa57d 100644 --- a/src/main/java/org/olat/modules/video/ui/VideoPosterSelectionForm.java +++ b/src/main/java/org/olat/modules/video/ui/VideoPosterSelectionForm.java @@ -72,7 +72,7 @@ public class VideoPosterSelectionForm extends BasicController { tmp.mkdirs(); tmpContainer = new LocalFolderImpl(tmp); - long duration =1000; + long duration = 1000; File videoFile = videoManager.getVideoFile(videoResource); RandomAccessFile accessFile; @@ -82,7 +82,7 @@ public class VideoPosterSelectionForm extends BasicController { FileChannelWrapper in = new FileChannelWrapper(ch); MP4Demuxer demuxer1 = new MP4Demuxer(in); duration = demuxer1.getVideoTrack().getFrameCount(); - } catch (Exception e) { + } catch (Exception | AssertionError e) { logError("Error while accessing master video::" + videoFile.getAbsolutePath(), e); } @@ -103,7 +103,7 @@ public class VideoPosterSelectionForm extends BasicController { button.setUserObject(fileName); generatedPosters.put(mediaUrl + "/" + fileName, String.valueOf(x)); - } catch (Exception e) { + } catch (Exception | AssertionError e) { logError("Error while creating poster images for video::" + videoFile.getAbsolutePath(), e); } }