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-6975_Broken retiming calculation #28

Open
ynbot opened this issue Oct 22, 2024 · 4 comments · Fixed by ynput/ayon-core#1064 or ynput/ayon-core#1072 · May be fixed by ynput/ayon-core#1087 or #47
Open

AY-6975_Broken retiming calculation #28

ynbot opened this issue Oct 22, 2024 · 4 comments · Fixed by ynput/ayon-core#1064 or ynput/ayon-core#1072 · May be fixed by ynput/ayon-core#1087 or #47
Assignees
Labels
sponsored This is directly sponsored by a client or community member type: bug Something isn't working

Comments

@ynbot
Copy link
Contributor

ynbot commented Oct 22, 2024

Please describe the issue you have encountered?

This might be effecting handles calculation but also clip length too. We need to investigate what can be improved withing the retiming calculations in general. The old code might be unfinished.

Creators have toggle switches to add or skip retimed handles. This feature was requested by a previous sponsor who used footage from the Phantom camera. They didn't need unretimed handles, as this would create a lot of extra work.

How to replicate the issue?

No response

Additional context:

link to discussion on Discord
(might be a private channel)

This issue was automatically created from Clickup ticket AY-6975

@ynbot ynbot added sponsored This is directly sponsored by a client or community member type: bug Something isn't working labels Oct 22, 2024
@robin-ynput
Copy link
Contributor

robin-ynput commented Dec 11, 2024

Poking @jakubjezek001, I might need a bit more context here about what should be implemented exactly.

  1. From what I could fine Flame OTIO exporter handles LinearTimeWarp and FreezeFrame time effects, which makes me think we'll encounter the same bugs I found with Hiero in ayon-core (see Bring back publishing of clip retimes ayon-hiero#29 (comment)). So those will have to be fixed.

  2. retimedFramerange I could not really figure out this option from the code. From what I can see this is really flame-specific right now and allows to override the plate instance frameEnd value with retimed duration (https://github.com/ynput/ayon-core/blob/79903e4875b228762edcceab327b523465b18ee3/client/ayon_core/plugins/publish/collect_otio_frame_ranges.py#L66). From what I can see, this is the only part this setting is ever used.

Im not sure I understand the initial intent for this, could you please explain the use-case ?
Also it has limited effect right now:

  • representations for plate products get created from collect_otio_subset_resources.py which ignores this
  • the shot creation process is left unchanged wherever this is enabled or not
  1. retimedHandles when this is enabled and clip is retimed, this applies the retiming operation to the handles and adjust the instance values accordingly. This logic is only called in ayon-flame's extract_product_resource currently.

The handleStart / handleEnd values in the created shot do not seem to be impacted by this.
UX-wise I guess it could also help to only allow user to toogle retimedHandles and retimedFramerange if there is retiming on the clip. Other than that we could maybe ensure that freeze frame retime the handle to 0 (no handle) if that's the intended behavior.

Hope this will help.
Without prior context, I'm having a bit of hard time to determine what exactly needs to be done.

@robin-ynput
Copy link
Contributor

robin-ynput commented Dec 16, 2024

Discussed with @jakubjezek001 to clarify a few things:

  • need to ensure that LinearTimewarp is properly handled in OTIO, (Timewarp will not supported be in Flame yet)
  • need to ensure that negative speed (inverse) is properly handled
  • need to ensure that FixedFrame is properly handle and return a single frame clip
  • retime framerange is applied to shot, retimed handles is applied to shot and plate
  • include handles might be renamed to reflect better that this determine where the range start from
  • all logic should be handled in ayon-core so it can be re-used from others DCCs

@robin-ynput
Copy link
Contributor

Here is below an example of by retiming computation.
publish-report-250107-17-45.json

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment