IP Library Granted Patent US 12,279,006
Granted Patent B2
US 12,279,006 · App. 18/243,828 · Granted Apr 15, 2025

Synchronized video viewing using a logical clock

Inventors: Alan Rogers (Brunswick, AU); Siya Yang (Bellevue, WA); Daniel Wagner (New York, NY); Dylan Nelson (Brooklyn, NY); Jason Stakelon (Sausalito, CA)
Assignee: Dropbox, Inc.
H04N21/43076H04N21/47217
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,279,006
App. No.
18/243,828
Granted
Apr 15, 2025
Kind
B2
Abstract

The present technology pertains to synchronized video viewing that is supported by the use of a pending changes count to keep the client devices in synchronization while providing a user experience that matches the expectations of the user. A second client device can receive input to change some aspect of the playback of a video that is being viewed synchronously with at least one other device. The second client device can process the event so the video can reflect the received input. The second client device can also send a collaboration message to a synchronized video viewing service to inform other client devices of the command. Since the second client device is aware of its own event, the second client device can ignore processing any other collaboration messages until it receives the collaboration message it initiated echoed back to it. Thereafter it can resume processing received collaboration messages.

Claims (49)

1. A method of facilitating synchronized video viewing of a video object by remote participants, the method comprising:

synchronizing viewing of a video at a client device with one or more other client devices using a viewing service;

sending, from the client device, a first collaboration message to the viewing service;

and ignoring, at the client device, second collaboration messages originating from the one or more other client devices during a predefined period after the sending of the first collaboration message from the client device, wherein

the predefined period is a duration from the sending of the first collaboration message from the client device until an echo of the first collaboration message is received at the client device from the viewing service.

2. The method of claim 1 , wherein the first collaboration message represents a playback change to the video.

3. The method of claim 1 , further comprising:

enabling the synchronized video viewing by preventing another playback event based on the second collaboration messages that is inconsistent with a playback event based on the first collaboration message when the second collaboration messages are ignored during a predefined period.

4. The method of claim 1 , further comprising:

receiving, at the client device, an echo of the first collaboration message from the viewing service; and

receiving, at the client device, the second collaboration messages from the viewing service, wherein the second collaboration messages originate from the one or more other client devices.

5. The method of claim 4 , further comprising:

receiving, at the client device and from the viewing service, a third collaboration message after the predefined period, wherein the third collaboration message originated from one of the one or more other client devices; and

processing the third collaboration message by implementing a playback state defined by the third collaboration message.

6. The method of claim 1 , further comprising:

establishing a WebSockets connection by the one or more other client devices with the synchronized video viewing service configured to facilitate synchronized video viewing, wherein WebSockets is a protocol for bi-directional messaging that handles messages in an order they are received.

7. A client device comprising at least one processor; and

a memory storing instructions that, when executed by the at least one processor, configure the client device to:

synchronize viewing of a video at a client device with one or more other client devices using a viewing service;

send, from the client device, a first collaboration message to the viewing service; and

ignore, at the client device, second collaboration messages originating from the one or more other client devices during a predefined period after the sending of the first collaboration message from the client device, wherein

the predefined period is a duration from the sending of the first collaboration message from the client device until an echo of the first collaboration message is received at the client device from the viewing service, or

the predefined period is determined using a logical clock that indicates when pending changes to a playback of the video remain unresolved.

8. The client device of claim 7 , wherein the first collaboration message represents a playback change to the video.

9. The client device of claim 7 , wherein, when executed by the at least one processor, stored instructions further configure the client device to:

enables the synchronized video viewing by preventing, during a predefined period, another playback event based on the second collaboration messages that is inconsistent with a playback event based on the first collaboration message when the second collaboration messages are ignored during a predefined period.

10. The client device of claim 7 , wherein, when executed by the at least one processor, stored instructions further configure the client device to:

receive, at the client device, an echo of the first collaboration message from the viewing service;

receive, at the client device, the second collaboration messages from the viewing service, wherein the second collaboration messages originate from the one or more other client devices;

receive, at the client device and from the viewing service, a third collaboration message after the predefined period, wherein the third collaboration message originated from one of the one or more other client devices; and

process the third collaboration message by implementing a playback state defined by the third collaboration message.

11. The client device of claim 7 , wherein the predefined period is determined using the logical clock, and the logical clock indicates when the pending changes remain unresolved by counting how many of the pending changes have not been resolved, and the counting is performed by incrementing a count of the logical clock when the first collaboration message is sent and decrementing the count of the logical clock upon receiving, from the viewing service, an echo of the first collaboration.

12. A method of facilitating synchronized video viewing of a video object by remote participants, the method comprising:

synchronizing viewing of a video at a client device with one or more other client devices using a viewing service;

sending, from the client device, a first collaboration message to the viewing service;

and ignoring, at the client device, second collaboration messages originating from the one or more other client devices during a predefined period after the sending of the first collaboration message from the client device, wherein

the predefined period is determined using a logical clock that indicates when pending changes to a playback of the video remain unresolved.

13. The method of claim 12 , wherein the logical clock indicates when the pending changes remain unresolved by counting how many of the pending changes have not been resolved, and the counting is performed by incrementing a count of the logical clock when the first collaboration message is sent and decrementing the count of the logical clock upon receiving, from the viewing service, an echo of the first collaboration.

14. The method of claim 12 , wherein the first collaboration message represents a playback change to the video.

15. The method of claim 12 , further comprising:

enabling the synchronized video viewing by preventing another playback event based on the second collaboration messages that is inconsistent with a playback event based on the first collaboration message when the second collaboration messages are ignored during a predefined period.

16. The method of claim 15 , further comprising:

receiving, at the client device, an echo of the first collaboration message from the viewing service; and

receiving, at the client device, the second collaboration messages from the viewing service, wherein the second collaboration messages originate from the one or more other client devices.

17. The method of claim 12 , further comprising:

receiving, at the client device and from the viewing service, a third collaboration message after the predefined period, wherein the third collaboration message originated from one of the one or more other client devices; and

processing the third collaboration message by implementing a playback state defined by the third collaboration message.

18. The method of claim 12 , further comprising:

establishing a WebSockets connection by the one or more other client devices with the synchronized video viewing service configured to facilitate synchronized video viewing, wherein WebSockets is a protocol for bi-directional messaging that handles messages in an order they are received.

Assignments (2)
SECURITY INTEREST Recorded Dec 12, 2024
From: DROPBOX, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 069604/0611 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 8, 2023
From: ROGERS, ALAN; YANG, SIYA; WAGNER, DANIEL; NELSON, DYLAN; STAKELON, JASON
To: DROPBOX, INC.
Reel/Frame 064845/0033 →
Continuity (2)
Continuation 17685452 · Mar 3, 2022
Related Publication 20230421837A1 · Dec 28, 2023
References Cited (16)
US 7219127B2 · Huck et al. · 2007 [cited by applicant]
US 8595342B2 · Igelman et al. · 2013 [cited by applicant]
US 8688851B2 · Shin et al. · 2014 [cited by applicant]
US 8918541B2 · Morrison et al. · 2014 [cited by applicant]
US 9210204B2 · Crowe et al. · 2015 [cited by applicant]
US 10333999B2 · Shamma · 2019 [cited by applicant]
US 10536741B1 · Madison et al. · 2020 [cited by applicant]
US 10614857B2 · Wasada et al. · 2020 [cited by applicant]
US 20100083324A1 · Smith et al. · 2010 [cited by applicant]
US 20100153577A1 · Wohlert · 2010 [cited by examiner]
US 20180286458A1 · Harron et al. · 2018 [cited by applicant]
US 20210281906A1 · Kiryanov · 2021 [cited by examiner]
US 20220070524A1 · Iyer et al. · 2022 [cited by applicant]
US 20220385709A1 · Ólafsson et al. · 2022 [cited by examiner]
Notice of Allowance from U.S. Appl. No. 17/685,452, mailed Jun. 23, 2023, 9 pages. [cited by applicant]
Pan J.S., et al., “Real-Time Collaborative Video Watching on Mobile Devices with REST Services,” 2012 Third FTRA International Conference on Mobile, Ubiquitous, and Intelligent Computing, doi: 10.1109/MUSIC.2012.13, pp.… [cited by applicant]