Techniques for avoiding conflicting user actions during a video collaboration session
Abstract
Techniques are disclosed for avoiding conflicting user actions while the users synchronously participate in collaborative video review based on joint state data for a video collaboration session. User actions may conflict, e.g., when a user submits a video playback instruction to change the current frame of the session while another user is performing a frame-specific action on the current frame. The video collaboration service freezes the current frame in joint state data based on detecting that a frame-specific action is being performed or is likely imminent. Detecting a freeze condition may be implicit or explicit. In order to unfreeze the current frame of the joint state data, no active freeze conditions may be in effect. Further, the freeze condition may be lifted implicitly or explicitly. A visual video freeze indication may be displayed by one or more client applications participating in the session while a freeze condition is active.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A computer-implemented method comprising:
concurrently streaming video data to a plurality of client devices based, at least in part, on joint state data that comprises a current frame value identifying a currently-viewed frame of a plurality of frames of the video data; receiving, from a particular client device of the plurality of client devices, one or more annotation actions performed on a particular frame of the plurality of frames at the particular client device; detecting a freeze condition based on one or more annotation actions; and based on the detected freeze condition, freezing the current frame value, in the joint state data, at the particular frame.
2 . The method of claim 1 , wherein said freezing the current frame value, in the joint state data, at the particular frame comprises causing video playback controls, displayed at one or more client devices of the plurality of client devices, to be disabled.
3 . The method of claim 1 , further comprising, after freezing the current frame value, in the joint state data, at the particular frame:
detecting a lift of the freeze condition based, at least in part, on one of: receiving an instruction to lift the freeze condition, receiving a terminating update from the particular client device, or determining that a threshold amount of time has lapsed since detecting a context event that precipitated the freeze condition; and after detecting a lift of the freeze condition, unfreezing the current frame value.
4 . The method of claim 3 , further comprising:
displaying by each client device of the one or more client devices a visual video freeze indication including a user identifier associated with the freeze condition.
5 . The method of claim 1 , further comprising:
receiving, from a second client device of the plurality of client devices, a video playback instruction that instructs to change the current frame value in the joint state data; after receiving the video playback instruction, and based, at least in part, on the detected freeze condition, maintaining the current frame value, in the joint state data, identifying the particular frame.
6 . The method of claim 1 , further comprising:
receiving, from the particular client device of the plurality of client devices, co-presence information describing the one or more annotation actions performed at the particular client device in a graphical user interface displayed by the particular client device.
7 . The method of claim 1 , wherein detecting the freeze condition based on the one or more annotation actions comprises determining that a threshold amount of time has not yet passed since a timestamp associated with the one or more annotation actions.
8 . The method of claim 1 , further comprising:
after freezing the current frame value, receiving an instruction to unfreeze the current frame value from, the instruction to unfreeze being associated with a session master identifier; based on receiving the instruction to unfreeze, unfreezing the current frame value.
9 . The method of claim 8 , wherein: the freeze condition is a first freeze condition; and
detecting a second freeze condition precipitated by a client device of the plurality of client devices other than the particular client device; wherein both the first freeze condition and the second freeze condition are active upon receiving the instruction to unfreeze the current frame value.
10 . A non-transitory computer-readable storage medium, the computer-readable storage medium comprising instructions that when executed by a computer, cause the computer to:
concurrently stream video data to a plurality of client devices based, at least in part, on joint state data that comprises a current frame value identifying a currently-viewed frame of a plurality of frames of the video data; receive, from a particular client device of the plurality of client devices, one or more annotation actions performed on a particular frame of the plurality of frames at the particular client device; detect a freeze condition based on one or more annotation actions; and based on the detected freeze condition, freeze the current frame value, in the joint state data, at the particular frame.
11 . The computer-readable storage medium of claim 10 , wherein said freezing the current frame value, in the joint state data, at the particular frame comprises cause video playback controls, displayed at one or more client devices of the plurality of client devices, to be disabled.
12 . The computer-readable storage medium of claim 10 , wherein the instructions further configure the computer to:
receive, from a second client device of the plurality of client devices, a video playback instruction that instructs to change the current frame value in the joint state data; after receiving the video playback instruction, and based, at least in part, on the detected freeze condition, maintain the current frame value, in the joint state data, identifying the particular frame.
13 . The computer-readable storage medium of claim 10 , wherein detecting the freeze condition based on the one or more annotation actions comprises determining that a threshold amount of time has not yet passed since a timestamp associated with the one or more annotation actions.
14 . The computer-readable storage medium of claim 10 , wherein the instructions further configure the computer to:
after freezing the current frame value, receive an instruction to unfreeze the current frame value, the instruction to unfreeze being associated with a session master identifier; based on receiving the instruction to unfreeze, unfreeze the current frame value.
15 . The computer-readable storage medium of claim 14 , wherein: the freeze condition is a first freeze condition; and
detect a second freeze condition precipitated by a client device of the plurality of client devices other than the particular client device; wherein both the first freeze condition and the second freeze condition are active upon receiving the instruction to unfreeze the current frame value.
16 . A computing apparatus comprising:
a processor; and a memory storing instructions that, when executed by the processor, configure the apparatus to: concurrently stream video data to a plurality of client devices based, at least in part, on joint state data that comprises a current frame value identifying a currently-viewed frame of a plurality of frames of the video data; receive, from a particular client device of the plurality of client devices, one or more annotation actions performed on a particular frame of the plurality of frames at the particular client device; detect a freeze condition based on one or more annotation actions; and based on the detected freeze condition, freeze the current frame value, in the joint state data, at the particular frame.
17 . The computing apparatus of claim 16 , wherein the instructions further configure the apparatus to, after freezing the current frame value, in the joint state data, at the particular frame:
detect a lift of the freeze condition based, at least in part, on one of: receive an instruction to lift the freeze condition, receive a terminating update from the particular client device, or determine that a threshold amount of time has lapsed since detecting a context event that precipitated the freeze condition; and after detecting a lift of the freeze condition, unfreeze the current frame value.
18 . The computing apparatus of claim 17 , wherein the instructions further configure the apparatus to:
display by each client device of the one or more client devices a visual video freeze indication including a user identifier associated with the freeze condition.
19 . The computing apparatus of claim 16 , wherein the instructions further configure the apparatus to:
receive, from a second client device of the plurality of client devices, a video playback instruction that instructs to change the current frame value in the joint state data; after receiving the video playback instruction, and based, at least in part, on the detected freeze condition, maintain the current frame value, in the joint state data, identifying the particular frame.
20 . The computing apparatus of claim 16 , wherein detecting the freeze condition based on the one or more annotation actions comprises determining that a threshold amount of time has not yet passed since a timestamp associated with the one or more annotation actions.Join the waitlist — get patent alerts
Track US2023006852A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.