-
Notifications
You must be signed in to change notification settings - Fork 172
Add hold and ghost #781
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
Merged
eloisebrosseau
merged 9 commits into
AcademySoftwareFoundation:main
from
eloisebrosseau:hold-and-ghost
May 27, 2025
Merged
Add hold and ghost #781
eloisebrosseau
merged 9 commits into
AcademySoftwareFoundation:main
from
eloisebrosseau:hold-and-ghost
May 27, 2025
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
75a2d67
to
987f20c
Compare
bernie-laberge
approved these changes
May 21, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Excellent work @eloisebrosseau and thank you for your constant effort of modernizing the code along the way !
987f20c
to
d329641
Compare
Signed-off-by: Éloïse Brosseau <[email protected]>
Signed-off-by: Éloïse Brosseau <[email protected]>
Signed-off-by: Éloïse Brosseau <[email protected]>
Signed-off-by: Éloïse Brosseau <[email protected]>
Signed-off-by: Éloïse Brosseau <[email protected]>
Signed-off-by: Éloïse Brosseau <[email protected]>
Signed-off-by: Éloïse Brosseau <[email protected]>
Signed-off-by: Éloïse Brosseau <[email protected]>
7bd74cd
to
b7d56dc
Compare
Signed-off-by: Éloïse Brosseau <[email protected]>
cedrik-fuoco-adsk
approved these changes
May 27, 2025
3183a0f
into
AcademySoftwareFoundation:main
20 checks passed
eloisebrosseau
added a commit
that referenced
this pull request
Jun 16, 2025
### [SG-38044:](https://jira.autodesk.com/browse/SG-38044) Add stand-alone hold and ghost ### Summarize your change. Enable Hold and Ghost in the annotation tool based on [#781](#781) where the functionality is added to the PaintIPNode. Note that if a Live Review session is on-going, Hold and Ghost is disabled for participants. ### Describe the reason for the change. A stand-alone version of the feature was needed to match what we have in the Live Review plugin. ### Describe what you have tested and on which operating system. The feature was tested on macOS. ### Add a list of changes, and note any that might need special attention during the review. This branch is based on hold-and-ghost that is not merged yet. The only files to consider for this PR are rv-reference-manual-chapter-five.md, RvBottomViewToolBar.cpp, RvBottomViewToolBar.h, RvCommon.qrc, ghost.png, hold.png, Session.cpp and annotate_mode.mu. ### If possible, provide screenshots. https://github.com/user-attachments/assets/4d8c8ffd-21b4-486e-af29-ff20ec843c8f --------- Signed-off-by: Éloïse Brosseau <[email protected]>
richardssam
pushed a commit
to richardssam/OpenRV
that referenced
this pull request
Jun 17, 2025
### Add hold and ghost ### Summarize your change. This PR adds hold and ghost in the PaintIPNode based on the implementation in Create and the cherry-pick in [shotgun-rv](https://git.autodesk.com/media-and-entertainment/shotgun-rv/pull/1262) that was never merged. The following properties were added to enabled the feature in RV: `startFrame`, `duration`, `hold`, `ghost`, `ghostBefore` and `ghostAfter`. The Open RV documentation reflects this addition in the Paint node. Hold and ghost can be enable on both polylines and text boxes. To hold annotations, a `duration` property was needed to know the number of frames on which the annotation should be held from the specified `startFrame`. To ghost annotations, a `ghostBefore` and `ghostAfter` properties were added to set the number of frames on which the ghosted annotation should be displayed before and after the actual annotation. The opacity to apply on ghosted annotations was also updated to match the web app instead of Create to make the annotations more visible the closer they are to the actual annotation, and the more transparent the further they are. Note that some code that was part of the cherry-pick was to fix some thread safeness issues, without being directly related to the hold and ghost feature, but more generally for the PaintIPNode. This code is also part of this PR to make sure everything is on par with what should have been merged back then, but I can remove it, if it makes this PR too hard to review. Since this was added as a feature for Live Review, the annotation schema, the annotation hook and the otio reader are also updated in this PR. The `hold` and `ghost` properties are received for now as part of the annotation metadata. To access the values in the annotation hook, the context in the otio reader needed to be added the metadata propertyof OTIO effects. In the annotation hook, all the new properties to enable hold and ghost were added. The `duration` property is calculated so that a held annotation will stay on the frames until the next annotated frame or the end of the media. For ghosted annotations and "normal" annotations, the duration is simply the specified OTIO time range, which is normally 1, but it could be any other values. To see the complete implementation of hold and ghost in the Live Review plugin, and some screen recordings, please refer to this other [PR](https://git.autodesk.com/media-and-entertainment/rv/pull/362). Also note that a playback issue in Live Review is currently present when enabling `ghost` where the first frame without any annotation will completely freeze until the next annotated frame. However, the ghost feature is working as expected when scrubbing on the timeline. Held annotations and "normal" annotations are not affected by this issue. ### Describe the reason for the change. RV is missing the hold and ghost feature that is needed for Live Review. ### Describe what you have tested and on which operating system. All the test were done on macos between RV and the web app during a Live Review session. --------- Signed-off-by: Éloïse Brosseau <[email protected]> Signed-off-by: [email protected] <[email protected]>
richardssam
pushed a commit
to richardssam/OpenRV
that referenced
this pull request
Jun 17, 2025
### Add hold and ghost ### Summarize your change. This PR adds hold and ghost in the PaintIPNode based on the implementation in Create and the cherry-pick in [shotgun-rv](https://git.autodesk.com/media-and-entertainment/shotgun-rv/pull/1262) that was never merged. The following properties were added to enabled the feature in RV: `startFrame`, `duration`, `hold`, `ghost`, `ghostBefore` and `ghostAfter`. The Open RV documentation reflects this addition in the Paint node. Hold and ghost can be enable on both polylines and text boxes. To hold annotations, a `duration` property was needed to know the number of frames on which the annotation should be held from the specified `startFrame`. To ghost annotations, a `ghostBefore` and `ghostAfter` properties were added to set the number of frames on which the ghosted annotation should be displayed before and after the actual annotation. The opacity to apply on ghosted annotations was also updated to match the web app instead of Create to make the annotations more visible the closer they are to the actual annotation, and the more transparent the further they are. Note that some code that was part of the cherry-pick was to fix some thread safeness issues, without being directly related to the hold and ghost feature, but more generally for the PaintIPNode. This code is also part of this PR to make sure everything is on par with what should have been merged back then, but I can remove it, if it makes this PR too hard to review. Since this was added as a feature for Live Review, the annotation schema, the annotation hook and the otio reader are also updated in this PR. The `hold` and `ghost` properties are received for now as part of the annotation metadata. To access the values in the annotation hook, the context in the otio reader needed to be added the metadata propertyof OTIO effects. In the annotation hook, all the new properties to enable hold and ghost were added. The `duration` property is calculated so that a held annotation will stay on the frames until the next annotated frame or the end of the media. For ghosted annotations and "normal" annotations, the duration is simply the specified OTIO time range, which is normally 1, but it could be any other values. To see the complete implementation of hold and ghost in the Live Review plugin, and some screen recordings, please refer to this other [PR](https://git.autodesk.com/media-and-entertainment/rv/pull/362). Also note that a playback issue in Live Review is currently present when enabling `ghost` where the first frame without any annotation will completely freeze until the next annotated frame. However, the ghost feature is working as expected when scrubbing on the timeline. Held annotations and "normal" annotations are not affected by this issue. ### Describe the reason for the change. RV is missing the hold and ghost feature that is needed for Live Review. ### Describe what you have tested and on which operating system. All the test were done on macos between RV and the web app during a Live Review session. --------- Signed-off-by: Éloïse Brosseau <[email protected]> Signed-off-by: [email protected] <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Add hold and ghost
Summarize your change.
This PR adds hold and ghost in the PaintIPNode based on the implementation in Create and the cherry-pick in shotgun-rv that was never merged. The following properties were added to enabled the feature in RV:
startFrame
,duration
,hold
,ghost
,ghostBefore
andghostAfter
. The Open RV documentation reflects this addition in the Paint node.Hold and ghost can be enable on both polylines and text boxes. To hold annotations, a
duration
property was needed to know the number of frames on which the annotation should be held from the specifiedstartFrame
. To ghost annotations, aghostBefore
andghostAfter
properties were added to set the number of frames on which the ghosted annotation should be displayed before and after the actual annotation. The opacity to apply on ghosted annotations was also updated to match the web app instead of Create to make the annotations more visible the closer they are to the actual annotation, and the more transparent the further they are. Note that some code that was part of the cherry-pick was to fix some thread safeness issues, without being directly related to the hold and ghost feature, but more generally for the PaintIPNode. This code is also part of this PR to make sure everything is on par with what should have been merged back then, but I can remove it, if it makes this PR too hard to review.Since this was added as a feature for Live Review, the annotation schema, the annotation hook and the otio reader are also updated in this PR. The
hold
andghost
properties are received for now as part of the annotation metadata. To access the values in the annotation hook, the context in the otio reader needed to be added the metadata propertyof OTIO effects. In the annotation hook, all the new properties to enable hold and ghost were added. Theduration
property is calculated so that a held annotation will stay on the frames until the next annotated frame or the end of the media. For ghosted annotations and "normal" annotations, the duration is simply the specified OTIO time range, which is normally 1, but it could be any other values.To see the complete implementation of hold and ghost in the Live Review plugin, and some screen recordings, please refer to this other PR. Also note that a playback issue is currently present when enabling
ghost
where the first frame without any annotation will completely freeze until the next annotated frame. However, the ghost feature is working as expected when scrubbing on the timeline. Held annotations and "normal" annotations are not affected by this issue.Describe the reason for the change.
RV is missing the hold and ghost feature that is needed for Live Review.
Describe what you have tested and on which operating system.
All the test were done on macos between RV and the web app during a Live Review session.