git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorSweidan Omar <TFS\sweidan.omar>
Wed, 23 Mar 2022 12:30:47 +0000 (12:30 +0000)
committerSweidan Omar <TFS\sweidan.omar>
Wed, 23 Mar 2022 12:30:47 +0000 (12:30 +0000)
server/user.jobengine.executors/src/user/jobengine/server/steps/ValidateProResStep.java [new file with mode: 0644]

diff --git a/server/user.jobengine.executors/src/user/jobengine/server/steps/ValidateProResStep.java b/server/user.jobengine.executors/src/user/jobengine/server/steps/ValidateProResStep.java
new file mode 100644 (file)
index 0000000..1b56bed
--- /dev/null
@@ -0,0 +1,64 @@
+package user.jobengine.server.steps;\r
+\r
+import java.io.IOException;\r
+import java.nio.file.Paths;\r
+import java.sql.Timestamp;\r
+import java.util.Map;\r
+\r
+import org.apache.commons.io.FilenameUtils;\r
+import org.apache.logging.log4j.LogManager;\r
+import org.apache.logging.log4j.Logger;\r
+\r
+import user.commons.DownloadableMedia;\r
+import user.commons.StoreUri;\r
+import user.commons.mediaarea.MediaArea;\r
+import user.commons.remotestore.RemoteStoreProtocol;\r
+import user.jobengine.server.steps.shared.EscortFiles;\r
+\r
+public class ValidateProResStep extends JobStep {\r
+       private static final Logger logger = LogManager.getLogger();\r
+\r
+       @StepEntry\r
+       public Object[] execute(Map<String, MediaArea> proResFiles, String sourceStoreFolder, String targetStoreFolder,\r
+                       String escortStoreFolder) {\r
+               if (!proResFiles.isEmpty()) {\r
+                       for (String fileName : proResFiles.keySet()) {\r
+                               MediaArea mediaArea = proResFiles.get(fileName);\r
+                               String title = FilenameUtils.removeExtension(fileName);\r
+                               Timestamp created = null;\r
+                               Timestamp modified = null;\r
+                               long frameCount = mediaArea.getFrameCount();\r
+                               String videoFormat = mediaArea.getFormat();\r
+                               StoreUri sourceStoreUri = getManager().getStoreUri(sourceStoreFolder, RemoteStoreProtocol.LOCAL);\r
+                               StoreUri targetStoreUri = getManager().getStoreUri(targetStoreFolder, RemoteStoreProtocol.LOCAL);\r
+                               StoreUri escortStoreUri = getManager().getStoreUri(escortStoreFolder, RemoteStoreProtocol.LOCAL);\r
+                               try {\r
+                                       String outputPath = Paths.get(escortStoreUri.toString(true)).toString();\r
+                               } catch (Exception e1) {\r
+                                       e1.printStackTrace();\r
+                               }\r
+                               long mediaId = 0;\r
+\r
+                               if (mediaArea.getFrameRate() == 23.976 && videoFormat.equals("PRORES")) {\r
+                                       DownloadableMedia downloadable = DownloadableMedia.create(title, fileName, modified, created,\r
+                                                       frameCount, 0, sourceStoreUri.getId(), targetStoreUri.getId(), mediaId);\r
+                                       String escortFileName = targetStoreFolder + "." + downloadable.getString("fileName");\r
+                                       try {\r
+                                               if (EscortFiles.createMetadataIfNotExists(targetStoreFolder, escortFileName,\r
+                                                               downloadable.toPrettyString(""))) {\r
+                                                       logger.info(getMarker(), "Archive status file created for {}", fileName);\r
+                                               } else {\r
+                                                       logger.info(getMarker(), "Archive status file already exists for {}", fileName);\r
+                                               }\r
+                                       } catch (IOException e) {\r
+                                               logger.error("{}", e.getCause());\r
+                                               e.printStackTrace();\r
+                                       }\r
+                               }\r
+                       }\r
+               } else {\r
+                       logger.info("proResFiles is empty!");\r
+               }\r
+               return null;\r
+       }\r
+}\r