IP Library Granted Patent US 12707108
Granted Patent B2
US 12707108 · App. 18/823,607 · Granted Aug 11, 2026

Methods and systems for content control

Inventor: Ross Gilson (Philadelphia, PA)
Assignee: Adeia Media Holdings Inc.
H04N21/4122H04N21/23406H04N21/234345H04N21/234381H04N21/23611H04N21/2401H04N21/242H04N21/4302H04N21/47202H04N21/8456H04N21/85406
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 12707108
App. No.
18/823,607
Granted
Aug 11, 2026
Kind
B2
Abstract

Methods and system for providing content are disclosed. One method can comprise receiving a request for data at a first time, wherein the data comprises a first time duration, determining a buffer size based upon the first time duration, and determining a playback window based upon the determined buffer size and the first time. The method can also comprise synchronizing presentation of content on a plurality of devices.

Claims (36)

1 . A method comprising:

receiving a request to synchronize a first transmission of a content to a first device with a second transmission of the same content to a second device;

monitoring bitrate requests for both the first and the second devices;

determining, based on the monitoring, that the bitrate requests from the first device are for a series of data blocks at a decreasing bitrate;

determining, based on the bitrate requests for the series of data blocks at the decreasing bitrates, that rendering of the same content by the first device is on a decline and trailing as compared to rendering by the second device; and

in response to determining that the rendering of the same content by the first device is on the decline and trailing as compared to the rendering by the second device, transmitting, to the second device, data blocks at a lower bitrate than a current bitrate, until the first device's play position catches up with the second device's play position.

2 . The method of claim 1 , further comprising, determining a playback window and a range of positions in a content stream being rendered by the first device based on the series of data blocks requested by the first device at the decreasing bitrate.

3 . The method of claim 2 , further comprising, determining a length of a buffer used by the first device based on the bitrate requests from the first device for the series of data blocks at the decreasing bitrate.

4 . The method of claim 3 , further comprising, determining that the buffer's capacity has reached capacity based on the determined buffer length and the bitrate requests from the first device for the series of data blocks at the decreasing bitrate.

5 . The method of claim 3 , further comprising, determining a start of the playback window for the first device by subtracting the length of the buffer used by the first device from a time associated with a last data block, from the series of data blocks at the decreasing bitrate requested by the first device.

6 . The method of claim 2 , wherein the determining that the rendering of the same content by the first device is trailing as compared to the rendering by the second device further comprises:

determining a range of positions in a content stream being rendered by the second device based on monitoring the bitrate requests for second device; and

determining that the rendering of the same content by the first device is trailing as compared to the rendering by the second device based on comparing the range of positions in the content stream being rendered by the first device with the range of positions in the content stream being rendered by the second device.

7 . The method of claim 1 , wherein the data blocks transmitted at the lower bitrate than the current bitrate to the second device include a manipulated audio pitch.

8 . The method of claim 1 , further comprising, transmitting an indication that the rendering of the same content by the first device is on the decline to the second device.

9 . The method of claim 1 , wherein the series of data blocks associated with the bitrate requests from the first device are sequential data blocks of the same content.

10 . The method of claim 1 , further comprising, causing removal of the data blocks from a buffer associated with the first device to alter processing of data blocks.

11 . A system comprising:

a memory to play position of a content item on a first device and play position of the same content item on a second device; and

a processor, coupled to the memory, configured to perform steps comprising:

receive a request to synchronize a first transmission of the content item to a first device with a second transmission of the same content item to a second device;

monitor bitrate requests for both the first and the second devices;

determine, based on the monitoring, that the bitrate requests from the first device are for a series of data blocks at a decreasing bitrate;

determine, based on the bitrate requests for the series of data blocks at the decreasing bitrates, that rendering of the same content item by the first device is on a decline and trailing as compared to rendering by the second device; and

in response to determining that the rendering of the same content item by the first device is on the decline and trailing as compared to the rendering by the second device, transmit, to the second device, data blocks at a lower bitrate than a current bitrate, until the first device's play position catches up with the second device's play position.

12 . The system of claim 11 , further comprising, the processor configured to determine a playback window and a range of positions in a content stream being rendered by the first device based on the series of data blocks requested by the first device at the decreasing bitrate.

13 . The system of claim 12 , further comprising, the processor configured to determine a length of a buffer used by the first device based on the bitrate requests from the first device for the series of data blocks at the decreasing bitrate.

14 . The system of claim 13 , further comprising, the processor configured to determine that the buffer's capacity has reached capacity based on the determined buffer length and the bitrate requests from the first device for the series of data blocks at the decreasing bitrate.

15 . The system of claim 13 , further comprising, the processor configured to determine a start of the playback window for the first device by subtracting the length of the buffer used by the first device from a time associated with a last data block, from the series of data blocks at the decreasing bitrate requested by the first device.

16 . The system of claim 12 , wherein the determining that the rendering of the same content item by the first device is trailing as compared to the rendering by the second device further comprises, the processor configured to:

determine a range of positions in a content stream being rendered by the second device based on monitoring the bitrate requests for second device; and

determine that the rendering of the same content item by the first device is trailing as compared to the rendering by the second device based on comparing the range of positions in the content stream being rendered by the first device with the range of positions in the content stream being rendered by the second device.

17 . The system of claim 11 , wherein the data blocks transmitted at the lower bitrate than the current bitrate by the processor to the second device include a manipulated audio pitch.

18 . The system of claim 11 , further comprising, the processor configured to transmit an indication that the rendering of the same content item by the first device is on the decline to the second device.

19 . The system of claim 11 , wherein the series of data blocks associated with the bitrate requests from the first device are sequential data blocks of the content item.

20 . The system of claim 11 , further comprising, the processor configured to cause removal of the data blocks from a buffer associated with the first device to alter processing of the data blocks.