IP Library Granted Patent US 9,338,208
Granted Patent B2
US 9,338,208 · App. 14/505,411 · Granted May 10, 2016

Common event-based multidevice media playback

Inventor: Ravi U Rajapakse (San Francisco, CA)
Assignee: Blackfire Research Corporation
H04L65/60H04L12/1881H04L65/4076H04L65/608H04L65/80H04L69/163H04L69/166H04L12/189
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 9,338,208
App. No.
14/505,411
Granted
May 10, 2016
Kind
B2
Abstract

A system for event-based synchronized multimedia playback, comprising a media source device and a plurality of destination devices, each destination device comprising a local clock, and a synchronization module on one of the devices. The synchronization module transmits common events, E n , each with a unique event number, to each of the plurality of destination devices. Each destination device records time Dx n when event E n is received and transmits an acknowledgement message back to the synchronization module comprising time Dx n and event number n. The synchronization module determines phase and frequency differences between clocks of respective destination devices; computes a frequency adjustment to compensate for phase and rate differences; and directs each respective destination device to adjust its clock phase and frequency accordingly. Each destination device adjusts its local clock as directed or may perform a sample rate conversion on sample data in order to enable synchronized media playback.

Claims (74)

1. A system for event-based synchronized multimedia playback, comprising:

a plurality of destination devices, each comprising a local clock and connected to a network and configured to render media received over the network; and

a synchronization module operating on a device connected to the network and configured to communicate with the plurality of destination devices, the synchronization module periodically transmitting a common event En, with a unique event identifier n, to each of the plurality of destination devices;

wherein each destination device records a time Dxn when event En is received and transmits an acknowledgement message comprising at least the time Dxn and the unique event identifier n;

wherein the synchronization module, for each of the plurality of destination devices, carries out the steps of:

(a) determining a frequency difference between the local clock of the respective destination device and the local clock of a first destination device;

(b) computing a frequency adjustment to compensate for the difference determined in (a) between the first destination device and the respective device; and

(c) directing the respective destination device to do one or both of:

adjust its clock frequency by an amount related to the value determined in (b); or

perform a sample rate conversion on media received from the media source device to carry out a frequency adjustment related to the value determined in (b); and

each destination device thereby synchronously renders media received over the network from a media source configured to stream audio or video media.

2. The system of claim 1 , further wherein the synchronization module, for each of the plurality of destination devices, carries out the steps of:

(a) determining a clock offset between the local clock of the respective destination device and the local clock of a first destination device; and

(b) directing the respective destination device to adjust its clock count or phase by the clock offset.

3. A method for common event-based synchronized multimedia playback, the method comprising the steps of:

(a) periodically transmitting, from a synchronization module operating on a device connected to a network, a common event En comprising a unique event identifier n;

(b) receiving via the network, at each of a plurality of destination devices comprising a local clock, the event En;

(c) recording at each destination device a time Dxn when event En is received;

(d) transmitting an acknowledgement message from each destination device back to the synchronization module, the acknowledgment message comprising at least the time Dxn and the unique event identifier n;

(e) the synchronization module determining a frequency difference between the clocks of the respective destination devices;

(f) computing a frequency adjustment to compensate for the differences determined in step (e);

(g) directing the respective destination device to do one or both of:

adjust its clock frequency by an amount related to the values determined in step (f); or

perform a sample rate conversion on media received from the media source device to carry out a frequency adjustment related to the value determined in step (f); and

(h) the destination devices using this adjustment information to synchronously render media received over the network from a source for streaming audio or video media.

4. The method of claim 3 , further wherein the synchronization module, for each of the plurality of destination devices, carries out the steps of:

(a) determining a clock offset between the local clock of the respective destination device and the local clock of a first destination device; and

(b) directing the respective destination device to adjust its clock count or phase by the clock offset.

5. A system for event-based synchronized multimedia playback, comprising:

a plurality of destination devices, each comprising a local clock and connected via the network and configured to render media received over the network; and

a synchronization module operating on a device connected to the network and configured to communicate with the plurality of destination devices;

wherein the synchronization module collects a plurality of acknowledgement messages for each event En into a collection and retrieves the collection of acknowledgement messages it has received that have an event identifier n, creates a subset of acknowledgement messages for event En, and uses the subset of messages for event En to compute a frequency adjustment for a first destination device, and directs the first destination device to:

adjust its clock frequency by an amount related to the computed frequency adjustment; or

perform a sample rate conversion on media received from the media source device to carry out a frequency adjustment related to the computed frequency adjustment.

6. The system of claim 5 , where the event messages received by the destination devices originate from the synchronization module.

7. The system of claim 5 , further wherein the synchronization module, for each of the plurality of destination devices, carries out the steps of:

(a) determining a clock offset between the local clock of the respective destination device and the local clock of a first destination device; and

(b) directing the respective destination device to adjust its clock count or phase by the clock offset.

8. A system for event-based synchronized multimedia playback, comprising:

a plurality of destination devices, each comprising a local clock and connected to a network and configured to render media received over the network; and

a synchronization module operating on one of the destination devices;

the synchronization module periodically transmitting a common event En, with a unique event identifier n, to each of the plurality of destination devices;

wherein each destination device records a time Dxn when event En is received and transmits an acknowledgement message back to the synchronization module comprising at least the time Dxn and the unique event identifier n; and

wherein the synchronization module, for each of the plurality of destination devices, carries out the steps of:

(a) determining a frequency difference between the local clock of the respective destination device and the local clock of a first destination device;

(b) computing a frequency adjustment to compensate for the differences determined in (a) between the first destination device and the respective device; and

(c) directing the respective destination device to do one or both of:

adjusting its clock frequency by an amount related to the values determined in (b); or

performing a sample rate conversion on media received from the media source device to carry out a frequency adjustment related to the value determined in (b).

9. A system for event-based synchronized multimedia playback, comprising:

a synchronization module operating on a device comprising at least a memory and a processor and connected to the network;

the synchronization module periodically transmitting via the network a common event En, with a unique event identifier n, to each of a plurality of destination devices;

wherein the synchronization module receives a plurality of acknowledgment messages via the network, each acknowledgment message comprising at least a time Dxn when a corresponding event En was received at a specific destination device and the unique event identifier n; and

wherein the synchronization module, for each of the plurality of destination devices, carries out the steps of:

(a) determining a frequency difference between the local clock of the respective destination device and the local clock of a first destination device;

(b) computing a frequency adjustment to compensate for the difference determined in (a) between the first destination device and the respective device; and

(c) sending a directive message to the respective destination device instructing the respective destination device to do one or both of:

adjusting its clock frequency by an amount related to the values determined in (b); or

performing a sample rate conversion on media received from the media source device to carry out a frequency adjustment related to the value determined in (b).

10. A method for common event-based synchronized multimedia playback, the method comprising the steps of:

(a) transmitting, from a synchronization device comprising at least a memory and a processor and connected to a network, a plurality of common events, each event En comprising a unique event identifier n;

(b) receiving, at the device, a plurality of acknowledgement messages from a plurality of destination devices, each acknowledgment message comprising at least a time Dxn at which common event En was received at a respective destination device and the unique event identifier n;

(c) determining, at the synchronization device, a frequency difference between the clocks of the respective destination devices based on the acknowledgment messages;

(d) computing, at the synchronization device, a frequency adjustment to compensate for the differences determined in step (c); and

(e) sending a directive message to the respective destination device to do one or both of:

adjusting its clock frequency by an amount related to the values determined in step (d); or

performing a sample rate conversion on media received from the media source device to carry out a frequency adjustment related to the value determined in step (d).

11. A method for common event-based synchronized multimedia playback, the method comprising the steps of:

(a) simultaneously receiving via a network, at each of a plurality of destination devices each comprising a local clock, a common event En comprising a unique event identifier n;

(b) recording at each destination device a time Dxn when event En is received;

(c) transmitting an acknowledgement message from each destination device via the network, the acknowledgment message comprising at least the time Dxn and the unique event identifier n; and

(d) receiving at each destination device a directive message to do one or both of:

adjusting its clock frequency by an amount; or

performing a sample rate conversion on media received from the media source device to carry out a frequency adjustment.

Assignments (3)
SECURITY INTEREST Recorded Sep 18, 2024
From: ROKU, INC.
To: CITIBANK, N.A.
Reel/Frame 068982/0377 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 23, 2021
From: BLACKFIRE RESEARCH CORPORATION
To: ROKU, INC.
Reel/Frame 055695/0161 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 18, 2015
From: RAJAPAKSE, RAVI
To: BLACKFIRE RESEARCH CORPORATION
Reel/Frame 036816/0143 →
Continuity (13)
Continuation 14303502 · Jun 12, 2014
Continuation In Part 13561029 · Jul 28, 2012
Continuation In Part 14083426 · Nov 18, 2013
Continuation In Part 11627957 · Jan 27, 2007
Continuation In Part 14505411
Continuation 14303527 · Jun 12, 2014
Continuation In Part 13561029
Continuation In Part 14083426
Continuation In Part 11627957
Provisional Application 61833927 · Jun 12, 2013
Provisional Application 61727624 · Nov 16, 2012
Provisional Application 61833928 · Jun 12, 2013
Related Publication 20150074239A1 · Mar 12, 2015