IP Library › Granted Patent US 11,991,232
Granted Patent B2
US 11,991,232 · App. 17/334,143 · Granted May 21, 2024

Command buffering

Inventors: Hilmar Birger Ólafsson (Stockholm, SE); Jérôme Ceccato (Stockholm, SE)
Assignee: Spotify AB
H04L65/613H04L43/0852H04L49/90
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 11,991,232
App. No.
17/334,143
Granted
May 21, 2024
Kind
B2
Abstract

A method of processing playback content control commands generated at a client device and communicated by a backend server to the client device and a controlled device to control media content playback at the controlled device is provided. The method includes the following steps: sending, by the client device, a playback content control command to the backend server, wherein the backend server is configured to communicated the playback content control command to the client device and to the controlled device; initiating a buffer time period; and refraining from processing, at the client device, one or more subsequent playback content control commands from the backend server during the buffer time period.

Claims (61)

1. A method of processing playback content control commands generated at a client device and communicated by a backend server to the client device and a controlled device to control media content playback at the controlled device, the method comprising:

sending, by the client device, a playback content control command to the backend server, wherein the backend server is configured to communicate the playback content control command to the client device and to the controlled device;

initiating a buffer time period, wherein the buffer time period is calculated based at least in part on an average network latency of a network connecting the client device, the backend server, and the controlled device, wherein calculating the buffer time period further comprises:

obtaining a current network latency of the network; and

calculating the buffer time period based at least in part on the current network latency, and previous network latencies of the network; and

refraining from processing, at the client device, one or more subsequent playback content control commands received from the backend server during the buffer time period and discarding the one or more subsequent playback content control commands received from the backend server during the buffer time period to avoid executing the one or more subsequent playback content control commands.

2. The method of claim 1 , wherein the initiating the buffer time period comprises:

initiating the buffer time period upon sending the playback content control command to the backend server.

3. The method of claim 2 , wherein the initiating the buffer time period comprises:

triggering a command buffer to be active upon sending the playback content control command to the backend server.

4. The method of claim 1 , wherein the playback content control command comprises at least one of:

a skip forward command;

a skip backward command;

a play/pause command; and

a scrubbing command.

5. The method of claim 1 , wherein the buffer time period is dynamically adjusted.

6. The method of claim 5 , wherein the buffer time period has a minimum value.

7. The method of claim 6 , wherein the minimum value is 200 milliseconds.

8. A non-transitory computer-readable medium storing instructions that, when executed by a processor of a client device, cause the client device to:

send a playback content control command to a backend server, wherein the backend server is configured to communicate the playback content control command to the client device and to a controlled device;

initiate a buffer time period, wherein the buffer time period is calculated based at least in part on an average network latency of a network connecting the client device, the backend server, and the controlled device, wherein calculating the buffer time period further comprises to:

obtain a current network latency of the network; and

calculate a new buffer time period based on the current network latency and previous network latencies of the network; and

refrain from processing one or more subsequent playback content control commands received from the backend server during the buffer time period and discard the one or more subsequent playback content control commands received from the backend server during the buffer time period to avoid executing the one or more subsequent playback content control commands.

9. The non-transitory computer-readable medium of claim 8 , wherein the playback content control command comprises at least one of:

a skip forward command;

a skip backward command;

a play/pause command; and

a scrubbing command.

10. The non-transitory computer-readable medium of claim 8 , wherein the instructions further cause the client device to:

send a prior playback content control command to the backend server;

determine whether the playback content control command is within the buffer time period starting from the sending of the prior playback content control command;

when the playback content control command is within the buffer time period, store the playback content control command;

after the buffer time period has elapsed, determine whether the playback content control command is a latest playback content control command stored;

when the playback content control command is the latest playback content control command stored, send the playback content control command to the backend server; and

when the playback content control command is not the latest content control command stored, discard the playback content control command.

11. The non-transitory computer-readable medium of claim 10 , wherein the playback content control command is stored in a pending command register.

12. A system for processing playback content control commands, the system comprising:

a client device comprising at least one processor and at least one non-transitory computer-readable medium storing data instructions that, when executed by the at least one processor, cause the client device to:

generate a playback content control command;

send the playback content control command to a backend server;

trigger a command buffer to be active for a buffer time period, wherein the buffer time period is calculated based at least in part on an average network latency of a network connecting the client device, the backend server, and a controlled device, wherein calculating the buffer time period further comprises to:

obtain a current network latency of the network; and

calculate the buffer time period based on the current network latency and previous network latencies of the network; and

refrain from processing one or more subsequent playback content control commands received from the backend server during the buffer time period and discard the one or more subsequent playback content control commands received from the backend server during the buffer time period to avoid executing the one or more subsequent playback content control commands.

13. The system of claim 12 , wherein the client device further comprises a command throttler having the buffer time period.

14. The system of claim 12 , wherein the data instructions further cause the client device to:

determine whether the playback content control command is within the buffer time period starting from when a prior playback content control command was sent;

when the playback content control command is within the buffer time period, store the playback content control command in a pending command register;

after the buffer time period has elapsed, determine whether the playback content control command is a latest playback content control command stored in the pending command register;

when the playback content control command is the latest playback content control command stored in the pending command register, send the playback content control command to the backend server when the buffer time period ends; and

when the playback content control command is not the latest content control command stored in the pending command register, discard the playback content control command.

15. The system of claim 14 , wherein the client device further comprises a buffer time management engine configured to dynamically adjust the buffer time period.

16. The system of claim 12 , wherein the system further comprises a controlled device configured to:

receive the playback content control command communicated from the backend server; and

control media content playback at the controlled device according to the playback content control command communicated from the backend server.

17. The system of claim 12 , wherein the playback content control command comprises at least one of:

a skip forward command;

a skip backward command;

a play/pause command; and

a scrubbing command.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 23, 2021
From: ÓLAFSSON, HILMAR BIGGER; CECCATO, JÉRÔME
To: SPOTIFY AB
Reel/Frame 058194/0155 →
Continuity (1)
Related Publication 20220385709A1 · Dec 1, 2022