From 9ba1028e615b4d39388dd2f39f4ed9cf473d98d6 Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Fri, 11 Nov 2022 12:53:22 +0100 Subject: [PATCH] OP-4361 - fixed issue in render info Weird synchronization issue was happening in getRenderInfo when re-publishing published workfile. This implementation is ugly, but seems to work. --- openpype/hosts/aftereffects/api/extension.zxp | Bin 101245 -> 101376 bytes .../api/extension/jsx/hostscript.jsx | 120 ++++++++++-------- 2 files changed, 65 insertions(+), 55 deletions(-) diff --git a/openpype/hosts/aftereffects/api/extension.zxp b/openpype/hosts/aftereffects/api/extension.zxp index 339560fa387be6b792d2da0da71c879111b40b40..f80787fef8a989c46d4fda489a39b7792ff9500b 100644 GIT binary patch delta 8538 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�j3y*|tVkd!*Ct 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 TKf9p%eQl!x00Du(-*5i|E_3Gr diff --git a/openpype/hosts/aftereffects/api/extension/jsx/hostscript.jsx b/openpype/hosts/aftereffects/api/extension/jsx/hostscript.jsx index cfb72bacf5..cdaa2e3b83 100644 --- a/openpype/hosts/aftereffects/api/extension/jsx/hostscript.jsx +++ b/openpype/hosts/aftereffects/api/extension/jsx/hostscript.jsx @@ -395,61 +395,6 @@ function saveAs(path){ app.project.save(fp = new File(path)); } -function getRenderInfo(comp_id){ - /*** - Get info from render queue. - Currently pulls only file name to parse extension and - if it is sequence in Python - **/ - var item = app.project.itemByID(comp_id); - if (!item){ - return _prepareError("Composition with '" + comp_id + "' wasn't found! Recreate publishable instance(s)") - } - - var comp_name = item.name; - try{ - var comp_id_count = 0; - for (i = 1; i <= app.project.renderQueue.numItems; ++i){ - var render_item = app.project.renderQueue.item(i); - if (render_item.comp.id != comp_id){ - continue; - } - comp_id_count += 1; - - if (render_item.status == RQItemStatus.DONE){ - var new_item = render_item.duplicate(); // create new, cannot change status if DONE - render_item.remove(); // remove existing to limit duplications - render_item = new_item; - } - - render_item.render = true; // always set render queue to render - var item = render_item.outputModule(1); - } - } catch (error) { - return _prepareError("There is no render queue, create one"); - } - - if (comp_id_count > 1){ - return _prepareError("There cannot be more items in Render Queue for '" + comp_name + "'!") - } - - if (comp_id_count == 0){ - return _prepareError("There is no item in Render Queue for '" + comp_name + "'! Add composition to Render Queue.") - } - - if (render_item.numOutputModules !=1){ - return _prepareError("There must be just 1 Output Module in Render Queue for '" + comp_name + "'! Keep only correct one.") - } - - var file_url = item.file.toString(); - - return JSON.stringify({ - "file_name": file_url, - "width": render_item.comp.width, - "height": render_item.comp.height - }) -} - function getAudioUrlForComp(comp_id){ /** * Searches composition for audio layer @@ -716,6 +661,71 @@ function isFileSequence (item){ return false; } +function getRenderInfo(comp_id){ + /*** + Get info from render queue. + Currently pulls only file name to parse extension and + if it is sequence in Python + **/ + var item = app.project.itemByID(comp_id); + if (!item){ + return _prepareError("Composition with '" + comp_id + "' wasn't found! Recreate publishable instance(s)") + } + + var comp_name = item.name; + try{ + // render_item.duplicate() should create new item on renderQueue + // BUT it works only sometimes, there are some weird synchronization issue + // this method will be called always before render, so prepare items here + // for render to spare the hassle + for (i = 1; i <= app.project.renderQueue.numItems; ++i){ + var render_item = app.project.renderQueue.item(i); + if (render_item.comp.id != comp_id){ + continue; + } + + if (render_item.status == RQItemStatus.DONE){ + render_item.duplicate(); // create new, cannot change status if DONE + render_item.remove(); // remove existing to limit duplications + continue; + } + } + + // properly validate as `numItems` won't change magically + var comp_id_count = 0; + for (i = 1; i <= app.project.renderQueue.numItems; ++i){ + var render_item = app.project.renderQueue.item(i); + if (render_item.comp.id != comp_id){ + continue; + } + comp_id_count += 1; + var item = render_item.outputModule(1); + } + } catch (error) { + return _prepareError("There is no render queue, create one"); + } + + if (comp_id_count > 1){ + return _prepareError("There cannot be more items in Render Queue for '" + comp_name + "'!") + } + + if (comp_id_count == 0){ + return _prepareError("There is no item in Render Queue for '" + comp_name + "'! Add composition to Render Queue.") + } + + if (render_item.numOutputModules !=1){ + return _prepareError("There must be just 1 Output Module in Render Queue for '" + comp_name + "'! Keep only correct one.") + } + + var file_url = item.file.toString(); + + return JSON.stringify({ + "file_name": file_url, + "width": render_item.comp.width, + "height": render_item.comp.height + }) +} + function render(target_folder, comp_id){ var out_dir = new Folder(target_folder); var out_dir = out_dir.fsName;