Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AY-979 Finalize updating Resolve to new publisher #15

Merged
merged 67 commits into from
Oct 8, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
d3ba10c
Merge branch 'develop' into feature/AY-979_Resolve-update-to-new-publ…
jakubjezek001 Jun 12, 2024
0ea95c7
Refactor menu stylesheet loading, update plugin creation logic
jakubjezek001 Jun 12, 2024
1cd7dcd
Update API documentation and keyframe mode information. Remove outdat…
jakubjezek001 Jun 13, 2024
3ba67be
Refactor otio file handling functions, add temp dir logic.
jakubjezek001 Jun 13, 2024
54fcda2
Refactor get_otio_temp_dir to handle missing timeline.
jakubjezek001 Jun 13, 2024
242e255
reverting latest commit changes partly
jakubjezek001 Jun 13, 2024
fc5c519
Update server_addon/resolve/client/ayon_resolve/api/lib.py
jakubjezek001 Jun 14, 2024
fd165bc
Merge branch 'develop' into feature/AY-979_Resolve-update-to-new-publ…
jakubjezek001 Jul 25, 2024
4af6500
Merge branch 'develop' into feature/AY-979_Resolve-update-to-new-publ…
jakubjezek001 Aug 14, 2024
9112854
Fix bugs with old implementation.
robin-ynput Aug 21, 2024
113df36
Shot export functional.
robin-ynput Aug 27, 2024
ba10202
Get plate, review and audio publishing through.
robin-ynput Aug 27, 2024
f50dd1b
Handle serialization in markers for all creators.
robin-ynput Aug 28, 2024
92a6813
Ensure both AYONs and Resolve OTIO work properly.
robin-ynput Aug 28, 2024
b873076
Address feedback from PR.
robin-ynput Sep 3, 2024
e761efe
Address feedback from PR.
robin-ynput Sep 3, 2024
20b6f1e
Fix Load Clip/Load Media.
robin-ynput Sep 4, 2024
c64571f
Apply suggestions from code review
robin-ynput Sep 4, 2024
94260d9
Address feedback from PR.
robin-ynput Sep 4, 2024
65876e7
Merge branch 'feature/AY-980_finish_Resolve_new_publisher' of github.…
robin-ynput Sep 4, 2024
dc1fbde
Add detailed_description.
robin-ynput Sep 4, 2024
a9ae6d6
Address code syntax changes, renaming and minor improvements from PR …
robin-ynput Sep 5, 2024
16d8e64
Rework get_representation_files
robin-ynput Sep 5, 2024
43e37dc
Implement editorialSharedData mechanism.
robin-ynput Sep 5, 2024
0c26894
Apply suggestions from code review
robin-ynput Sep 5, 2024
aaee89d
Merge branch 'feature/AY-980_finish_Resolve_new_publisher' of github.…
robin-ynput Sep 5, 2024
bea372a
Enforce PAR and implemented backward compatibility with OpenPype mark…
robin-ynput Sep 5, 2024
88828bc
Enforce load as clip fix.
robin-ynput Sep 5, 2024
9c0fe90
Adjust feedback from PR.
robin-ynput Sep 9, 2024
d607ae6
Update client/ayon_resolve/api/lib.py
robin-ynput Sep 9, 2024
72fb3f1
Adjust workfile auto-creation from PR feedback.
robin-ynput Sep 9, 2024
09883fa
Merge branch 'develop' into feature/AY-979_finish_Resolve_new_publisher
jakubjezek001 Sep 16, 2024
f4c0406
wip
robin-ynput Sep 16, 2024
c0cd332
Adjust current workfile.
robin-ynput Sep 16, 2024
f24345c
Address changes from PR.
robin-ynput Sep 16, 2024
cf85e3c
Merge branch 'wip/AY-979' into feature/AY-979_finish_Resolve_new_publ…
robin-ynput Sep 16, 2024
9271596
Implement feedback from PR.
robin-ynput Sep 16, 2024
b37ae7b
Report has_promised_context transient data.
robin-ynput Sep 17, 2024
20be4c6
Fix lint.
robin-ynput Sep 17, 2024
a7c3b64
Report fixes from review testing.
robin-ynput Sep 24, 2024
0ca7b23
Merge with latest develop
robin-ynput Sep 25, 2024
ca1034c
Consolidations
robin-ynput Sep 25, 2024
1b6e9aa
Address typo feedback from PR.
robin-ynput Sep 25, 2024
5a8ac90
Apply suggestions from code review
robin-ynput Sep 30, 2024
d0c69f6
Fix linting.
robin-ynput Sep 30, 2024
9e38605
Adjust feedback from PR.
robin-ynput Sep 30, 2024
da9f148
Update documentation.
robin-ynput Sep 30, 2024
80d0b1c
Adjust typos and comments from PR feedback.
robin-ynput Sep 30, 2024
3594f95
Restore previous clip load implementation
robin-ynput Sep 30, 2024
0e0c10c
Fix linting.
robin-ynput Sep 30, 2024
0170d01
Adjust dependency to core addons.
robin-ynput Oct 7, 2024
5b6bca9
Merge with latest develop.
robin-ynput Oct 7, 2024
22f84c8
Adjust collect_editorial_package.py
robin-ynput Oct 7, 2024
60ca574
Fix linting.
robin-ynput Oct 7, 2024
ac5d46d
Fix linting.
robin-ynput Oct 7, 2024
4ee2ba0
Adjust AYON_TAG_NAME.
robin-ynput Oct 7, 2024
c7109ff
Transfer create_editorial_package to new publisher.
robin-ynput Oct 7, 2024
4126678
Apply suggestions from code review
robin-ynput Oct 7, 2024
b0643a9
Address feedback from PR.
robin-ynput Oct 7, 2024
de925af
Apply suggestions from code review
robin-ynput Oct 8, 2024
5f6100e
Fix feedback from PR.
robin-ynput Oct 8, 2024
bfd9df5
Improving loading and publish data distribution
jakubjezek001 Oct 8, 2024
60cef7d
Apply suggestions from code review
robin-ynput Oct 8, 2024
01bad38
Adjust feedback from PR.
robin-ynput Oct 8, 2024
b38150e
Address feedback from PR.
robin-ynput Oct 8, 2024
d098ca7
Merge pull request #36 from ynput/enhancement/create_editorial_packag…
robin-ynput Oct 8, 2024
c020d1f
Fix linting.
robin-ynput Oct 8, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 11 additions & 10 deletions client/ayon_resolve/README.markdown
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
## Basic setup

- Actually supported version is up to v18
- install Python 3.6.2 (latest tested v17) or up to 3.9.13 (latest tested on v18)
- Actually supported version is up to v19
- install Python 3.6.2 (latest tested v17) or up to 3.9.13 (latest tested on v19)
- pip install PySide2:
- Python 3.9.*: open terminal and go to python.exe directory, then `python -m pip install PySide2`
- pip install OpenTimelineIO:
Expand All @@ -10,19 +10,20 @@
![image](https://user-images.githubusercontent.com/40640033/102792588-ffcb1c80-43a8-11eb-9c6b-bf2114ed578e.png) with installed CMake in PATH.
- make sure Resolve Fusion (Fusion Tab/menu/Fusion/Fusion Settings) is set to Python 3.6
![image](https://user-images.githubusercontent.com/40640033/102631545-280b0f00-414e-11eb-89fc-98ac268d209d.png)
- Open OpenPype **Tray/Admin/Studio settings** > `applications/resolve/environment` and add Python3 path to `RESOLVE_PYTHON3_HOME` platform related.
- Open AYON **Tray/Admin/Studio settings** > `applications/resolve/environment` and add Python3 path to `RESOLVE_PYTHON3_HOME` platform related.

## Editorial setup

This is how it looks on my testing project timeline
![image](https://user-images.githubusercontent.com/40640033/102637638-96ec6600-4156-11eb-9656-6e8e3ce4baf8.png)
Notice I had renamed tracks to `main` (holding metadata markers) and `review` used for generating review data with ffmpeg confersion to jpg sequence.
Notice I had renamed tracks to `main` (holding metadata markers) and `review` used for generating review data with ffmpeg conversion to jpg sequence.

1. you need to start AYON menu from Resolve/EditTab/Menu/Workspace/Scripts/Comp/**__OpenPype_Menu__**
1. you need to start AYON menu from Resolve/EditTab/Menu/Workspace/Scripts/Comp/**__AYON_Menu__**
2. then select any clips in `main` track and change their color to `Chocolate`
3. in OpenPype Menu select `Create`
4. in Creator select `Create Publishable Clip [New]` (temporary name)
3. in AYON Menu select `Create`
4. in Creator select `Create Publishable Clip` (temporary name)
5. set `Rename clips` to True, Master Track to `main` and Use review track to `review` as in picture
![image](https://user-images.githubusercontent.com/40640033/102643773-0d419600-4160-11eb-919e-9c2be0aecab8.png)
6. after you hit `ok` all clips are colored to `ping` and marked with openpype metadata tag
7. git `Publish` on openpype menu and see that all had been collected correctly. That is the last step for now as rest is Work in progress. Next steps will follow.
![image](./doc_examples.jpg)
6. after you hit `ok` all clips are colored to `pink` and marked with AYON metadata tag
7. on the right-menu column you'll see that all products have been collected correctly
8. hit `Publish` to trigger the publishing process
2 changes: 2 additions & 0 deletions client/ayon_resolve/RESOLVE_API_v19.0B-build20.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@

Last Updated: 1 April 2024
----------------------------
In this package, you will find a brief introduction to the Scripting API for DaVinci Resolve Studio. Apart from this README.txt file, this package contains folders containing the basic import
Expand Down Expand Up @@ -479,6 +480,7 @@ Beside primitive data types, Resolve's Python API mainly uses list and dict data
As Lua does not support list and dict data structures, the Lua API implements "list" as a table with indices, e.g. { [1] = listValue1, [2] = listValue2, ... }.
Similarly the Lua API implements "dict" as a table with the dictionary key as first element, e.g. { [dictKey1] = dictValue1, [dictKey2] = dictValue2, ... }.


Keyframe Mode information
-------------------------
This section covers additional notes for the functions Resolve.GetKeyframeMode() and Resolve.SetKeyframeMode(keyframeMode).
Expand Down
55 changes: 36 additions & 19 deletions client/ayon_resolve/api/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,28 +11,32 @@
containerise,
update_container,
maintained_selection,
remove_instance,
list_instances
)

from .lib import (
maintain_current_timeline,
publish_clip_color,
get_project_manager,
get_current_project,
get_current_resolve_project,
get_current_project, # backward compatibility
get_current_timeline,
get_any_timeline,
get_new_timeline,
export_timeline_otio_to_file,
export_timeline_otio,
create_bin,
get_media_pool_item,
create_media_pool_item,
create_timeline_item,
get_timeline_item,
get_clip_resolution_from_media_pool,
get_video_track_names,
get_current_timeline_items,
get_pype_timeline_item_by_name,
get_timeline_item_pype_tag,
set_timeline_item_pype_tag,
get_timeline_item_by_name,
get_pype_timeline_item_by_name, # backward compatibility
get_timeline_item_ayon_tag,
get_timeline_item_pype_tag, # backward compatibility
set_timeline_item_ayon_tag,
set_timeline_item_pype_tag, # backward compatibility
imprint,
set_publish_attribute,
get_publish_attribute,
Expand All @@ -49,8 +53,10 @@
from .plugin import (
ClipLoader,
TimelineItemLoader,
Creator,
PublishClip
ResolveCreator,
Creator, # backward compatibility
PublishableClip,
PublishClip, # backward compatibility
)

from .workio import (
Expand All @@ -64,44 +70,53 @@

from .testing_utils import TestGUI


# Resolve specific singletons
bmdvr = None
bmdvf = None
project_manager = None
media_storage = None


__all__ = [
"bmdvr",
"bmdvf",
"project_manager",
"media_storage",

# pipeline
"ResolveHost",
"ls",
"containerise",
"update_container",
"maintained_selection",
"remove_instance",
"list_instances",

# utils
"get_resolve_module",

# lib
"maintain_current_timeline",
"publish_clip_color",
"get_project_manager",
"get_current_project",
"get_current_resolve_project",
"get_current_project", # backward compatibility
"get_current_timeline",
"get_any_timeline",
"get_new_timeline",
"export_timeline_otio_to_file",
"export_timeline_otio",
"create_bin",
"get_media_pool_item",
"create_media_pool_item",
"create_timeline_item",
"get_timeline_item",
"get_clip_resolution_from_media_pool",
"get_video_track_names",
"get_current_timeline_items",
"get_pype_timeline_item_by_name",
"get_timeline_item_pype_tag",
"set_timeline_item_pype_tag",
"get_timeline_item_by_name",
"get_pype_timeline_item_by_name", # backward compatibility
"get_timeline_item_ayon_tag",
"get_timeline_item_pype_tag", # backward compatibility
"set_timeline_item_ayon_tag",
"set_timeline_item_pype_tag", # backward compatibility
"imprint",
"set_publish_attribute",
"get_publish_attribute",
Expand All @@ -118,8 +133,10 @@
# plugin
"ClipLoader",
"TimelineItemLoader",
"Creator",
"PublishClip",
"ResolveCreator",
"Creator", # backward compatibility
"PublishableClip",
"PublishClip", # backward compatibility

# workio
"open_file",
Expand Down
25 changes: 25 additions & 0 deletions client/ayon_resolve/api/constants.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Ayon sequential rename variables
SELECTED_CLIP_COLOR = "Chocolate"
PUBLISH_CLIP_COLOR = "Pink"
AYON_MARKER_WORKFLOW = True

# Ayon compound clip workflow variable
AYON_TAG_NAME = "VFX Notes"

# Ayon marker workflow variables
LEGACY_OPENPYPE_MARKER_NAME = "OpenPypeData"
AYON_MARKER_NAME = "AYONData"
AYON_MARKER_DURATION = 1
AYON_MARKER_COLOR = "Mint"
TEMP_MARKER_FRAME = None

# Ayon default timeline
AYON_TIMELINE_NAME = "AYONTimeline"

# PAR constants defined by DaVinci Resolve
PAR_VALUES = {
"Square": 1.0,
"16:9 Anamorphic": 1.78,
"4:3 Standard Definition": 1.33,
"Cinemascope": 2.0
}
Loading