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

AAF Clip Enabled/Muting Update #1277

Merged

Conversation

andrewmoore-nz
Copy link
Contributor

An extension of the AAF clip enabled/muting process, start in #1212

This covers the currently known cases of how clip mutes are being handled in the AAF, and the adjacent logic for the closely related scenarios of ScopeReferece objects, and multi-cam clip objects.

@jminor In updating/running the tests for this, it looks like the test AAF file is actually not correct for this. If the Selected attribute in the Selector object is a ScopeReference, as it is in that test file, I don't believe that specifically means the clip is muted. In all situations I've seen, where the clip is muted, the Selected attribute should be a Filler object.

Is there anyone else who can weigh in on this? Looking at the AAF documentation, there's no mention of the ScopeReference specifically saying that it is to be considered muting the object.

…tor objects, along with small changes to the simplify function for correct handling.
…ects with new clip enabled flag. Failing test due to incorrect AAF media. Some small formatting changed.
@jminor
Copy link
Collaborator

jminor commented Apr 21, 2022

Let me open that test AAF in Media Composer and/or make a fresh one so we can be clear. If you can make a test AAF from Premiere or Resolve that might help to illustrate the differences we saw previously.

@jminor
Copy link
Collaborator

jminor commented Apr 21, 2022

The AAF from this PR comes up as a muted clip in Media Composer. I made a new AAF with a slightly more complex use case for clarity. It has three clips, with the middle one muted in all tracks (V1, A1, A2). I also muted one of the audio tracks in case we want to handle that later. It looks like this in MC:
Screen Shot 2022-04-21 at 2 43 58 PM

With this PR as-is, OTIO sees that the audio clips are muted, but not the video clip:
Screen Shot 2022-04-21 at 2 47 33 PM

@jminor
Copy link
Collaborator

jminor commented Apr 21, 2022

Here's the new AAF to match those screenshots:
Testing Muted Clips and Tracks.zip

@codecov-commenter
Copy link

Codecov Report

Merging #1277 (4c34364) into main (0d9fb92) will decrease coverage by 0.05%.
The diff coverage is 55.17%.

Impacted file tree graph

@@            Coverage Diff             @@
##             main    #1277      +/-   ##
==========================================
- Coverage   86.19%   86.14%   -0.06%     
==========================================
  Files         196      196              
  Lines       19795    19810      +15     
  Branches     2310     2314       +4     
==========================================
+ Hits        17062    17065       +3     
- Misses       2171     2181      +10     
- Partials      562      564       +2     
Flag Coverage Δ
py-unittests 86.14% <55.17%> (-0.06%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files Coverage Δ
...neio_contrib/adapters/advanced_authoring_format.py 79.68% <27.77%> (-1.39%) ⬇️
...elineio_contrib/adapters/tests/test_aaf_adapter.py 97.86% <100.00%> (+<0.01%) ⬆️
tests/test_item.py 98.61% <100.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 0d9fb92...4c34364. Read the comment docs.

@andrewmoore-nz
Copy link
Contributor Author

@jminor Thanks for looking in to that. I was wrong in my assumption there, as I think I'd misinterpreted some examples I was seeing a few weeks back.

Filler components are being used for muted/disabled audio clips, whereas ScopeReference components appear to be used for muted/disable video clips. Looking at the AAF Edit Protocol, this makes a bit more sense now, as I think this is how it handles the fall back to an underlying track/clip when a video clip is muted, making sure the hierarchy of which clips should be shown is maintained.

Interestingly enough, neither Premiere or Resolve are actually handling this correctly, or consistently. Resolve is creating a Selector component with Filler selected for an audio clip, but not for a video clip - it just comes through as a regular SourceClip. Premiere is not creating a Selector object for either, meaning that the clip mutes don't appear to be represented in the AAF at all, from what I can see.

Anyway... I've adjusted this PR and it's now passing the tests. I'll update our Matchbox branch to reflect this as well.

@jminor
Copy link
Collaborator

jminor commented Apr 22, 2022

Thanks @andrewmoore-nz !

@jminor jminor merged commit ea64d92 into AcademySoftwareFoundation:main Apr 22, 2022
jminor pushed a commit that referenced this pull request May 2, 2022
* When reading AAF files with muted clips, use the OTIO `enabled = False` toggle to represent the muted state.
* Some ground work for supporting muted tracks is here, but that is left for a future PR.
@ssteinbach ssteinbach added this to the Public Beta 15 milestone Sep 19, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants