git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorvasary.daniel <TFS\vasary.daniel>
Fri, 5 Mar 2021 20:00:42 +0000 (20:00 +0000)
committervasary.daniel <TFS\vasary.daniel>
Fri, 5 Mar 2021 20:00:42 +0000 (20:00 +0000)
server/-configuration/run-mediacube-server-mv.launch
server/user.jobengine.executors/amc/user/jobengine/server/steps/FILEZILLA_PASARESTORETransferToStep.java
server/user.jobengine.executors/amc/user/jobengine/server/steps/MetadataPersisterStep.java
server/user.jobengine.osgi.server/src/user/jobengine/server/IJobEngineConfiguration.java
server/user.jobengine.osgi.server/src/user/jobengine/server/JobEngine.java
server/user.jobengine.osgi.server/src/user/jobengine/server/JobEngineConfiguration.java

index bcebdcfe6558cd4f763e96a2412d904f9ce6d969..2e8ba61157500d4a763fa2025a5877bd61a2469f 100644 (file)
@@ -6,7 +6,7 @@
     <stringAttribute key="bootstrap" value=""/>\r
     <stringAttribute key="checked" value="[NONE]"/>\r
     <booleanAttribute key="clearConfig" value="true"/>\r
-    <stringAttribute key="configLocation" value="${workspace_loc}/-products/production/MEDIAVIVANTIS/tmp"/>\r
+    <stringAttribute key="configLocation" value="${workspace_loc}\-product\production\MEDIAVIVANTIS\tmp"/>\r
     <booleanAttribute key="default" value="true"/>\r
     <booleanAttribute key="default_auto_start" value="false"/>\r
     <intAttribute key="default_start_level" value="4"/>\r
index c38313071701816630f4c80c912027e17ca05ee9..925549bad40793de026c5b49b03684063d23ffab 100644 (file)
@@ -1,31 +1,85 @@
 package user.jobengine.server.steps;\r
 \r
-import org.apache.commons.io.FileUtils;\r
+import java.nio.file.Path;\r
+import java.nio.file.Paths;\r
+\r
 import org.apache.logging.log4j.LogManager;\r
 import org.apache.logging.log4j.Logger;\r
+import org.apache.logging.log4j.Marker;\r
+import org.apache.logging.log4j.MarkerManager;\r
 \r
-import user.commons.RemoteFile;\r
 import user.commons.StoreUri;\r
+import user.commons.mediaarea.MediaArea;\r
 \r
 public class FILEZILLA_PASARESTORETransferToStep extends TransferStep {\r
        private static final Logger logger = LogManager.getLogger();\r
+       private static final String CODEC_PROFILE_HIGH = "HIGH";\r
+       private static final String CODEC_PROFILE_MAIN = "MAIN";\r
+       private static final String CODEC_PROFILE_422 = "4:2:2";\r
+       private static final String DISPLAY_ASPECT_16_9 = "16:9";\r
+       private static final String DISPLAY_ASPECT_4_3 = "4:3";\r
+       private StoreUri sourceStoreUri;\r
+       private String sourceFileName;\r
 \r
        @Override\r
        @StepEntry\r
        public Object[] execute(StoreUri sourceStoreUri, String sourceFileName, StoreUri targetStoreUri, String targetFileName) throws Exception {\r
-               long start = System.currentTimeMillis();\r
+               this.sourceStoreUri = sourceStoreUri;\r
+               this.sourceFileName = sourceFileName;\r
+               logMediaProfile();\r
                Object[] result = super.execute(sourceStoreUri, sourceFileName, targetStoreUri, targetFileName);\r
-               RemoteFile remoteFile = sourceStoreUri.getRemoteFile(targetFileName);\r
-               if (remoteFile != null) {\r
-                       if (remoteFile.getSize() > 0) {\r
-                               long diff = (System.currentTimeMillis() - start) / 1000;\r
-                               long bytesSpeed = remoteFile.getSize() / diff;\r
-                               String speed = FileUtils.byteCountToDisplaySize(bytesSpeed);\r
-                               logger.info(getMarker(), "{} size is {}, upload speed was {}/sec", targetFileName, FileUtils.byteCountToDisplaySize(remoteFile.getSize()),\r
-                                               speed);\r
-                       } else\r
-                               logger.info(getMarker(), "RemoteFile {} size is 0!", targetFileName);\r
-               }\r
                return result;\r
        }\r
+\r
+       private boolean isHD(MediaArea mi) {\r
+               return mi.getHeight() == 1080;\r
+       }\r
+\r
+       private boolean isSD_HIGH_16_9(MediaArea mi) {\r
+               String formatProfileName = mi.getFormatProfileName();\r
+               return mi.getHeight() < 650 && formatProfileName.contains(CODEC_PROFILE_HIGH) && DISPLAY_ASPECT_16_9.equals(mi.getDisplayAspect());\r
+       }\r
+\r
+       private boolean isSD_HIGH_4_3(MediaArea mi) {\r
+               String formatProfileName = mi.getFormatProfileName();\r
+               return mi.getHeight() < 650 && formatProfileName.contains(CODEC_PROFILE_HIGH) && DISPLAY_ASPECT_4_3.equals(mi.getDisplayAspect());\r
+       }\r
+\r
+       private boolean isSD_MAIN_422(MediaArea mi) {\r
+               String formatProfileName = mi.getFormatProfileName();\r
+               return mi.getHeight() < 650 && (formatProfileName.contains(CODEC_PROFILE_MAIN) || formatProfileName.contains(CODEC_PROFILE_422));\r
+       }\r
+\r
+       protected void logMediaProfile() {\r
+               Marker marker = MarkerManager.getMarker("MEDIAPROFILE");\r
+               try {\r
+                       Path filePath = Paths.get(sourceStoreUri.toString(true), sourceFileName);\r
+                       MediaArea mi = new MediaArea(filePath);\r
+                       mi.process();\r
+                       logger.info(marker, "{} data : {} {} {}", sourceFileName, mi.getFormatProfileName(), mi.getHeight(), mi.getDisplayAspect());\r
+\r
+                       if (isHD(mi)) {\r
+                               logger.info(marker, "{} is MOVED_HD", sourceFileName);\r
+                               return;\r
+                       }\r
+\r
+                       if (isSD_HIGH_16_9(mi)) {\r
+                               logger.info(marker, "{} is CONVSD16_9", sourceFileName);\r
+                               return;\r
+                       }\r
+\r
+                       if (isSD_HIGH_4_3(mi)) {\r
+                               logger.info(marker, "{} is CONVSD4_3", sourceFileName);\r
+                               return;\r
+                       }\r
+\r
+                       if (isSD_MAIN_422(mi)) {\r
+                               logger.info(marker, "{} is MOVED_SD", sourceFileName);\r
+                               return;\r
+                       }\r
+               } catch (Exception e) {\r
+                       logger.error(marker, e.getMessage());\r
+               }\r
+       }\r
+\r
 }\r
index 43fd68c90fe13301aadb3930f9308e05b7d9df6a..53d253d707302825e5d4cf46bc5a32f21ef5136a 100644 (file)
@@ -45,9 +45,9 @@ public class MetadataPersisterStep extends JobStep {
                                Timestamp modified = downloadable.getTimestamp("modified");\r
                                Timestamp created = downloadable.getTimestamp("created");\r
                                long frames = downloadable.getLong("frames");\r
-                               \r
+\r
+                               String targetStoreName = getManager().getStore(targetStoreUri.getStoreId()).getName();\r
                                if (mediaId == 0) {\r
-                                       String targetStoreName = getManager().getStore(targetStoreUri.getStoreId()).getName();\r
                                        //ez elszallhat, mert nincs filetype vagy store\r
                                        MediaFile mediaFile = manager.createMediaFile(fileName, fileTypeName, targetStoreName);\r
                                        //ez elszallhat, mert nincs itemtype\r
@@ -80,9 +80,16 @@ public class MetadataPersisterStep extends JobStep {
                                        //TODO\r
                                        //mediaFile.setFileSize(fileSize);\r
                                        MediaFile mediaFile = manager.getSystemMediaFile(media);\r
-                                       mediaFile.setRelativePath(fileName);\r
-                                       mediaFile.setLastModified(modified);\r
-                                       manager.modify(mediaFile);\r
+                                       if (mediaFile == null) {\r
+                                               mediaFile = manager.createMediaFile(fileName, fileTypeName, targetStoreName);\r
+                                               mediaFile.setMediaId(media.getId());\r
+                                               mediaFile.setLastModified(modified);\r
+                                               mediaFile.add();\r
+                                       } else {\r
+                                               mediaFile.setRelativePath(fileName);\r
+                                               mediaFile.setLastModified(modified);\r
+                                               manager.modify(mediaFile);\r
+                                       }\r
                                }\r
 \r
                        } else\r
index fd2a5ac8e0a1594c9c1a2ad55fc66a75abfabb98..79b5613bfa894ec2d2240ec866eb1f8ab3b29f6d 100644 (file)
@@ -23,6 +23,8 @@ public interface IJobEngineConfiguration {
 \r
        List<JobTemplate> getTemplates();\r
 \r
+       boolean isScheduledExecutionDisabled();\r
+\r
        void load(IJobEngine jobEngine, boolean autoStart) throws Exception;\r
 \r
        void loadExecutors(IJobEngine jobEngine, boolean autoStart);\r
index 0652dee1d91fae910894992ec8f5918c1e70c353..716c7f5c0ac2516ebf3adebef5a9617727cc9dc2 100644 (file)
@@ -215,9 +215,6 @@ public class JobEngine implements IJobEngine {
         */
        public JobEngine() {
 
-               //              isScheduledExecutionDisabled = ComponentBinder.getSystemConfig().value("jobs.scheduled-execution-disabled", false);
-               isScheduledExecutionDisabled = true;
-
                runQueue = new PriorityBlockingQueue<IJobRuntime>();
                messageQueue = new LinkedBlockingQueue<IJobMessage>();
                submittedJobs = createJobs();
@@ -332,6 +329,7 @@ public class JobEngine implements IJobEngine {
        public synchronized void bindJobEngineConfiguration(Object service) {
                if (service instanceof JobEngineConfiguration) {
                        jobEngineConfiguration = (IJobEngineConfiguration) service;
+                       isScheduledExecutionDisabled = jobEngineConfiguration.isScheduledExecutionDisabled();
                        logger.info("IJobEngineConfiguration service binded");
                }
        }
index 5715e9311e256ce4de3071731fb5bebbd88d5b99..de5335c8a76ca893f2d1c1a2373d569a12cddd4d 100644 (file)
@@ -161,6 +161,11 @@ public class JobEngineConfiguration implements IJobEngineConfiguration {
                return templates;\r
        }\r
 \r
+       @Override\r
+       public boolean isScheduledExecutionDisabled() {\r
+               return systemConfig.value("jobs.scheduled-execution-disabled", false);\r
+       }\r
+\r
        @Override\r
        public void load(IJobEngine jobEngine, boolean autoStart) throws Exception {\r
                loadTemplates();\r