AcademySoftwareFoundation / xstudio

xSTUDIO is a modern, high performance and feature rich playback and review application designed for organisations and individuals in the post production, VFX and Animation industries.
Apache License 2.0
640 stars 82 forks source link

Sync Sessions - MVP #81

Open CarlyRS opened 9 months ago

CarlyRS commented 9 months ago

Allow syncing of sessions with one user driving the session and any number of users able to view the session and all media being shown

MVP General

As a user driving or viewing the sync session, I must have access to the related media locally. The session will run assuming user has the media. This will allow for smooth sessions to run for users. As a user driving or viewing the sync session, I need the Colour management capabilities that are already present in xSTUDIO As a user viewing the sync session, I need to be able to put application into various compare modes in their own view of the session. i.e the layout of the application is not shared between users. This will ensure users can choose the preferred layout they want.

User Permissions

As a user driving or viewing the sync session, I want any number of users to be able to join the sync session, so that as many users as needed can attend the session As a user driving the session, I need two tiers of permission levels for users to manipulate the session. Read/write Read only Write = any user with this setting could drive a session and annotating with it. Control playback, add notes, rearrange and manipulate the content of the sessions.

This is not dependant of role but is set by the person driving the session.

This addresses a massive pain point in current sessions in Cinesync and dnreview where too many users have control. this makes sessions very confusing when people start messing with sessions, and currently requires PA coordination to set the 'rules' of the sync session ahead of time. We also have this issue in sync sketch.

As user with Read Only, permission, I need to be able to request access to change to read/write and person owning the session can allow this. This is so I can start contributing the the session if needed. As a user with Read/Write permission users need to be able to control playback freely, choose which media is on screen. This will ensure the session allows for collaboration for the right users. As a user driving the session I need visibility of who is in the session and what permissions they have. This is so I can help manage contributors to the session and gives visibility to all users who can do what in each session

As a user driving the session I need to see if someone has dropped out. This is so I can see if someone who needs information or to give feedback is missing and needs to be re invited.

As a user driving the session I need to be able to kick users out of the session if needed. This is so I can manage the session from a security and engagement with relevant parties standpoint.

Sync Stability

Sync sessions need to allow for a short amount of lag (i.e half a second) Sync events being sent need to give an actual timestamp, so users can re-sync playback on an instant frame basis and can be synced from that point on. this allows for users to quickly resync to a session if lag becomes an issue. This also addresses an issue w have in dnreview where if more than 2 users sync it becomes unstable and users lose connection, even worse when WFH. Sync sessions must always have a specific port for connection number so the session link can be embedded in this. This is so users do not have to spend time communicating on different port numbers for each new session (as is the case with dnReview). Annotations sync and need to update on the session as the user is drawing. For MVP we can aim to send periodic updates of how things look eg. every10 secs - to be improved on in later versions. This is so we match functionality of what cinesync and rv does now, and stops lag causing confusion.

Sync needs to be able to validate media in the session and list out all media that's missing from a sync. This is because for users knowing if your session is valid is very helpful, avoids confusion and lost time.

Sync Security

Needs discussion