[DO NOT MERGE] Fix range discrepancy for missing media when in Live Review #875
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.
Fix range discrepancy for missing media when in Live Review
Linked issues
NA
Describe the reason for the change.
This commit addresses the following issue which has a bigger importance in an RV<->RV Live Review session:
If you load some missing media in RV, you will get a default proxy range of 19 frames.
Here is a python script that can be executed in a python console to reproduce this missing media situation:
Now if you save the RV session file to disk, clear the RV session, and reload this session, then you will get a range of 1 frame only for the missing media.
This asymmetery has a significant importance in an RV<->RV Live Review session because it makes a presenter and its participants out of sync if a partitipant joins the session after the missing media is loaded. The reason for this is that when a participant joins an RV<->RV Live Review session, the presenter effectively serializes its session and pass it to the participant. Duplicating the exact same paths as the case above.
The root cause of this issue is that adding a source to an RV session is unfortuntely not equivalent to the one created in an RV session via RvSession::readGTO.
Summarize your change.
The solution proposed here is to make sure that the RvSession::readGTO tries to reload media even for inactive media if its range is not the default one: which is the case for missing media which has a range of 19 frames.
Now we don't want to reload all the inactive media because it would be detrimental to performances in a multiple media representation scenarios where we only want to load the active media by default. Once the RV session is loaded, the RV user has always the option of loading alternative media representations via the menu.
Describe what you have tested and on which operating system.
Successfully tested on macO
Add a list of changes, and note any that might need special attention during the review.
If possible, provide screenshots.
Before: Out of sync when media is missing and participant joins after loading the missing media:

After: Both in sync when media is missing and participant joins after loading the missing media:
