# US 2016/0366206 A1 · Platform for multiple device playout

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2016/0366206 A1
- Document ID: US20160366206A1
- Status: Published application
- Kind: A1
- Application number: 14/735,489
- Filed: 2015-06-10
- Published: 2016-12-15
- Earliest claimed: 2015-06-10
- Assignees: Google Inc.
- Applicants: Google Inc.
- Inventors: Mikhal SHEMER; Patrik Göran WESTIN
- Web page: https://patentgrep.com/patent/US20160366206A1

## CPC

- H04L 65/80: Responding to QoS
- G06F 9/54: Interprogram communication
- H04L 65/762: {at the source (reformatting of additional data in video distribution servers H04N21/2355)}
- H04L 67/10: in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46)
- H04J 3/0632: {Synchronisation of packets and cells, e.g. transmission of voice via a packet network, circuit emulation service [CES] (queuing arrangements in packet switching elements H04L49/90; synchronising systems for the synchronous transmission of a pulse code modulated video signal with one or more other pulse code modulated signals H04N7/56)}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04J: MULTIPLEX COMMUNICATION (transmission in general H04B; peculiar to transmission of digital information H04L5/00; systems for the simultaneous or sequential transmission of more than one television signal H04N7/08; in exchanges H04Q11/00; stereophonic systems H04S)

## Abstract

Provided is a platform for data devices in which the architecture and runtime parameters of the platform are adaptively updated based on real-time data collected about a network on which the platform operates, the source type (e.g., codec selection) for data being communicated between devices, the grouping/architecture of the devices, or any combination thereof. The platform is thus able to support multiple different types and configurations of data devices under varied, constantly-changing conditions. The platform offers a flexible architecture for a content management and rendering system in which multiple data devices connected via the network each play a unique role in the operation of the system. The data devices are capable of dynamically switching between different roles while the system is in active operation. The platform also includes adaptive delay capabilities as well as adaptive codec selection capabilities.

## Claims

### Claim 1

A system comprising:
a plurality of data modules connected to at least one network, wherein each of the data modules is configured to:
operate in accordance with a determined operating role, wherein the determined operating role is one of a plurality of operating roles that together define a group of the data modules, and wherein each of the operating roles is characterized by specific functions to be performed by the data module within the group; and
switch between different operating roles, different groups of data modules, or both, while the system is in active operation based on one or more parameters associated with the network, with the data module, and/or with other data modules.

### Claim 2 (depends on 1)

The system of claim 1, wherein each of the plurality of data modules is configured to:
receive data from a data source;
send the received data to each of the other data modules within the group of the data modules; and
playback the data from the data source in a pre-set time established for the group of the data modules.

### Claim 3 (depends on 2)

The system of claim 2, wherein a data module in the group operating in accordance with a first operating role is configured to:
establish the pre-set time for playback of the data from the data source; and
communicate the pre-set time to the other data modules in the group such that the playback of the data by the group of data modules is in synchronization.

### Claim 4 (depends on 1)

The system of claim 1, wherein a data module operating in accordance with a first operating role is configured to:
receive data from a data source;
determine, for each of the other data modules in the group of data modules, a format in which to send the received data to the data module based on a level of connectivity with the data module and/or a capability of the data module; and
send the data to each of the other data modules in the determined format for the respective data module.

### Claim 5 (depends on 4)

The system of claim 4, wherein the determined format for sending the received data to each of the other data modules is as raw data or as coded data.

### Claim 6 (depends on 1)

The system of claim 1, wherein the one or more parameters associated with the network, with the data module, and/or with other data modules includes one or more of: a condition of the network, a configuration of the network, a capability of the data module, and a capability of the other data modules.

### Claim 7 (depends on 4)

The system of claim 4, wherein determining the format in which to send the received data to each of the other data modules in the group is based on one or more of: network capacity between different data modules, physical proximity between different data modules, hardware capabilities of each of the data modules, and available licensing for the data to be transmitted.

### Claim 8 (depends on 1)

The system of claim 1, wherein a data module operating in accordance with a first operating role is configured to:
determine a delay associated with each of the other data modules in the group of data modules; and
modify a common delay applied to the playout of data between different data modules in the group based on the determined delays associated with each of the other data modules.

### Claim 9 (depends on 8)

The system of claim 8, wherein the delay associated with each of the other data modules in the group is one or both of a network delay and a processing delay internal to the data module.

### Claim 10 (depends on 8)

The system of claim 8, wherein the data module operating in accordance with the first operating role is configured to:
receive aggregated delay values from data modules in the group operating in accordance with a second operating role;
determine a maximum delay from the aggregated delay values; and
modify the common delay applied to the playout of data between different data modules based on the determined maximum delay.

### Claim 11 (depends on 10)

The system of claim 10, wherein the aggregated delay values received from the data modules operating in accordance with a second operating role include delay values associated with data modules in the group operating in accordance with a third operating role, wherein the third operating role is characterized by playout of the data from the data source.

### Claim 12 (depends on 2)

The system of claim 2, wherein the data received from the data source is audio data.

### Claim 13 (depends on 12)

The system of claim 12, wherein each of the plurality of data modules is an independent audio device.

### Claim 14 (depends on 12)

The system of claim 12, wherein at least one of the plurality of data modules is an independent audio device.

### Claim 15 (depends on 14)

The system of claim 14, wherein the audio device is a loudspeaker device.

### Claim 16

A computer-implemented method comprising:
determining, by a data module, an operating role for the data module to operate within a group of data modules in communication with one another over a network, wherein the determined operating role is one of a plurality of operating roles that together define the group of data modules, and wherein each of the operating roles is characterized by specific functions to be performed by the data module within the group;
operating, by the data module, in accordance with the determined operating role; and
while operating, switching to a different operating role, to a different group of data modules, or both, based on one or more parameters associated with the network, with the data module, and/or with other data modules in the group.

### Claim 17 (depends on 16)

The method of claim 16, wherein the one or more parameters associated with the network, with the data module, and/or with other data modules in the group includes one or more of: a condition of the network, a configuration of the network, a capability of the data module, and a capability of the other data modules.

### Claim 18 (depends on 16)

The method of claim 16, wherein operating in accordance with the determined operating role includes one or more of:
receiving data from a data source;
sending the received data to one or more of the other data modules within the group of the data modules; and
playing back the data from the data source in a pre-set time established for the group of the data modules.

### Claim 19 (depends on 18)

The method of claim 18, wherein the data received from the data source is audio data.

### Claim 20 (depends on 16)

The method of claim 16, wherein the group of data modules is a group of independent audio devices.
