IP Library Granted Patent US 11,381,855
Granted Patent B2
US 11,381,855 · App. 16/951,180 · Granted Jul 5, 2022

Content-modification system with multiple video buffers feature

Inventor: Matthew George Grover (Cardiff, GB)
Assignee: Roku, Inc.
H04N21/2365H04N21/23614H04N21/4348H04N21/4621H04N21/647
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,381,855
App. No.
16/951,180
Granted
Jul 5, 2022
Kind
B2
Abstract

In one aspect, a method includes transmitting a request for supplemental content for use by a content-presentation device that is scheduled to perform a content-modification operation at a start-time and, in response to the request: receiving, into a first buffer of the content-presentation device, first supplemental content having a first video quality that is higher than or equal to a predefined threshold, and receiving, into a second, different buffer of the content-presentation device, second supplemental content having a second video quality lower than the predefined threshold. The method also includes within a predefined time period before the start-time, determining whether an entirety of the first supplemental content has been received into the first buffer. The method also includes based on the determination, selecting supplemental content from a set of supplemental content that includes the first and second supplemental content, and performing the content-modification operation using the selected supplemental content.

Claims (74)

1. A method comprising:

transmitting a request for supplemental content for use by a content-presentation device in performing a content-modification operation, wherein the content-modification operation comprises modifying a modifiable content-segment that is part of a linear sequence of content-segments received by the content-presentation device, and wherein the content-presentation device is scheduled to perform the content-modification operation at a scheduled modification start-time;

in response to the request:

receiving, into a first input buffer of the content-presentation device, first supplemental content having a first video quality that is higher than or equal to a predefined video quality threshold, and

receiving, into a second input buffer of the content-presentation device, second supplemental content having a second video quality that is lower than the predefined video quality threshold, wherein the second input buffer is different from the first input buffer;

determining that there is less than a predefined time period before the modification start-time;

in response to determining that there is less than the predefined time period before the modification start-time, making a determination of whether the entirety of the first supplemental content has been received into the first input buffer; and

in response to making the determination;

selecting supplemental content from a set of supplemental content that includes the first supplemental content and the second supplemental content; and

performing the content-modification operation by modifying the modifiable content-segment using the selected supplemental content.

2. The method of claim 1 , wherein making the determination of whether the entirety of the first supplemental content has been received into the first input buffer comprises making a determination that the entirety of the first supplemental content has been received into the first input buffer,

wherein selecting the supplemental content from the set of supplemental content based on the determination comprises selecting the first supplemental content based on the determination, and

wherein performing the content-modification operation by modifying the modifiable content-segment using the selected supplemental content comprises performing the content-modification operation by modifying the modifiable content-segment using the selected first supplemental content.

3. The method of claim 1 , wherein making the determination of whether the entirety of the first supplemental content has been received into the first input buffer comprises making a determination that less than the entirety of the first supplemental content has been received into the first input buffer,

wherein selecting the supplemental content from the set of supplemental content based on the determination comprises selecting the second supplemental content based on the determination, and

wherein performing the content-modification operation by modifying the modifiable content-segment using the selected supplemental content comprises performing the content-modification operation by modifying the modifiable content-segment using the selected second supplemental content.

4. The method of claim 1 , wherein the first supplemental content and the second supplemental content are the same supplemental content.

5. The method of claim 1 , wherein the first supplemental content and the second supplemental content are different supplemental content.

6. The method of claim 1 , wherein the content-modification operation is a content-replacement operation, and

wherein performing the content-modification operation by modifying the modifiable content-segment using the selected supplemental content comprises performing the content-replacement operation by replacing the modifiable content-segment with the selected supplemental content.

7. The method of claim 1 , wherein the content-modification operation is a content-overlay operation, and

wherein performing the content-modification operation by modifying the modifiable content-segment using the selected supplemental content comprises performing the content-overlay operation by overlaying the selected supplemental content over the modifiable content-segment.

8. The method of claim 1 , wherein the predefined video quality threshold is a 720p display resolution.

9. The method of claim 1 , wherein transmitting the request for supplemental content comprises transmitting, to a computing system associated with delivery of supplemental content to the content-presentation device, a request for a link pointing to supplemental content, and

wherein receiving the first supplemental content into the first input buffer and the second supplemental content into the second input buffer in response to the request comprises:

in response to the request:

receiving, from the computing system, a first link pointing to the first supplemental content and using the first link to download the first supplemental content from the computing system into the first input buffer, and

receiving, from the computing system, a second link pointing to the second supplemental content and using the second link to download the second supplemental content from the computing system into the second input buffer.

10. The method of claim 1 , further comprising:

determining a client-side bandwidth associated with the content-presentation device;

determining a server-side bandwidth associated with a computing system that is associated with delivery of supplemental content to the content-presentation device; and

based on one or more of the client-side bandwidth and the server-side bandwidth, selecting a download operation from a set of download operations that includes (i) a first download operation in which the content-presentation device receives the first supplemental content into the first input buffer at substantially the same time as the content-presentation device receives the second supplemental content into the second input buffer and (ii) a second download operation in which the content-presentation device receives an entirety of the second supplemental content into the second input buffer before receiving the first supplemental content into the first input buffer,

wherein receiving the first supplemental content into the first input buffer comprises receiving the first supplemental content into the first input buffer in accordance with the selected download operation, and

wherein receiving the second supplemental content into the second input buffer comprises receiving the second supplemental content into the second input buffer in accordance with the selected download operation.

11. A non-transitory computer-readable storage medium, having stored thereon program instructions that, upon execution by a processor, cause performance of a set of operations comprising:

transmitting a request for supplemental content for use by a content-presentation device in performing a content-modification operation, wherein the content-modification operation comprises modifying a modifiable content-segment that is part of a linear sequence of content-segments received by the content-presentation device, and wherein the content-presentation device is scheduled to perform the content-modification operation at a scheduled modification start-time;

in response to the request:

receiving, into a first input buffer of the content-presentation device, first supplemental content having a first video quality that is higher than or equal to a predefined video quality threshold, and

receiving, into a second input buffer of the content-presentation device, second supplemental content having a second video quality that is lower than the predefined video quality threshold, wherein the second input buffer is different from the first input buffer;

determining that there is less than a predefined time period before the modification start-time;

in response to determining that there is less than the predefined time period before the modification start-time, making a determination of whether the entirety of the first supplemental content has been received into the first input buffer; and

in response to making the determination:

selecting supplemental content from a set of supplemental content that includes the first supplemental content and the second supplemental content; and

performing the content-modification operation by modifying the modifiable content-segment using the selected supplemental content.

12. The non-transitory computer-readable storage medium of claim 11 , wherein making the determination of whether the entirety of the first supplemental content has been received into the first input buffer comprises making a determination that the entirety of the first supplemental content has been received into the first input buffer,

wherein selecting the supplemental content from the set of supplemental content based on the determination comprises selecting the first supplemental content based on the determination, and

wherein performing the content-modification operation by modifying the modifiable content-segment using the selected supplemental content comprises performing the content-modification operation by modifying the modifiable content-segment using the selected first supplemental content.

13. The non-transitory computer-readable storage medium of claim 11 , wherein making the determination of whether the entirety of the first supplemental content has been received into the first input buffer comprises making a determination that less than the entirety of the first supplemental content has been received into the first input buffer,

wherein selecting the supplemental content from the set of supplemental content based on the determination comprises selecting the second supplemental content based on the determination, and

wherein performing the content-modification operation by modifying the modifiable content-segment using the selected supplemental content comprises performing the content-modification operation by modifying the modifiable content-segment using the selected second supplemental content.

14. The non-transitory computer-readable storage medium of claim 11 , wherein the first supplemental content and the second supplemental content are the same supplemental content.

15. The non-transitory computer-readable storage medium of claim 11 , wherein the first supplemental content and the second supplemental content are different supplemental content.

16. The non-transitory computer-readable storage medium of claim 11 , wherein the content-modification operation is a content-replacement operation, and

wherein performing the content-modification operation by modifying the modifiable content-segment using the selected supplemental content comprises performing the content-replacement operation by replacing the modifiable content-segment with the selected supplemental content.

17. The non-transitory computer-readable storage medium of claim 11 , wherein the content-modification operation is a content-overlay operation, and

wherein performing the content-modification operation by modifying the modifiable content-segment using the selected supplemental content comprises performing the content-overlay operation by overlaying the selected supplemental content over the modifiable content-segment.

18. The non-transitory computer-readable storage medium of claim 11 , wherein the predefined video quality threshold is a 720p display resolution.

19. The non-transitory computer-readable storage medium of claim 11 , the set of operations further comprising:

determining a client-side bandwidth associated with the content-presentation device;

determining a server-side bandwidth associated with a computing system that is associated with delivery of supplemental content to the content-presentation device; and

based on one or more of the client-side bandwidth and the server-side bandwidth, selecting a download operation from a set of download operations that includes (i) a first download operation in which the content-presentation device receives the first supplemental content into the first input buffer at substantially the same time as the content-presentation device receives the second supplemental content into the second input buffer and (ii) a second download operation in which the content-presentation device receives an entirety of the second supplemental content into the second input buffer before receiving the first supplemental content into the first input buffer, wherein receiving the first supplemental content into the first input buffer comprises receiving the first supplemental content into the first input buffer in accordance with the selected download operation, and

wherein receiving the second supplemental content into the second input buffer comprises receiving the second supplemental content into the second input buffer in accordance with the selected download operation.

20. A computing system comprising:

a processor; and

a non-transitory computer-readable storage medium, having stored thereon program instructions that, upon execution by the processor, cause performance of a set of operations comprising:

transmitting a request for supplemental content for use by a content-presentation device in performing a content-modification operation, wherein the content-modification operation comprises modifying a modifiable content-segment that is part of a linear sequence of content-segments received by the content-presentation device, and wherein the content-presentation device is scheduled to perform the content-modification operation at a scheduled modification start-time;

in response to the request:

receiving, into a first input buffer of the content-presentation device, first supplemental content having a first video quality that is higher than or equal to a predefined video quality threshold, and

receiving, into a second input buffer of the content-presentation device, second supplemental content having a second video quality that is lower than the predefined video quality threshold, wherein the second input buffer is different from the first input buffer;

determining that there is less than a predefined time period before the modification start-time;

in response to determining that there is less than the predefined time period before the modification start-time, making a determination of whether the entirety of the first supplemental content has been received into the first input buffer; and

in response to making the determination:

selecting supplemental content from a set of supplemental content that includes the first supplemental content and the second supplemental content; and

performing the content-modification operation by modifying the modifiable content-segment using the selected supplemental content.

Assignments (5)
SECURITY INTEREST Recorded Sep 18, 2024
From: ROKU, INC.
To: CITIBANK, N.A.
Reel/Frame 068982/0377 →
TERMINATION AND RELEASE OF INTELLECTUAL PROPERTY SECURITY AGREEMENT (REEL/FRAME 056982/0194) Recorded Feb 22, 2023
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: ROKU, INC.; ROKU DX HOLDINGS, INC.
Reel/Frame 062826/0664 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Jun 29, 2021
From: ROKU, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 056982/0194 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 30, 2021
From: THE NIELSEN COMPANY (US), LLC
To: ROKU, INC.
Reel/Frame 056106/0376 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 18, 2020
From: GROVER, MATTHEW GEORGE
To: THE NIELSEN COMPANY (US), LLC
Reel/Frame 054405/0015 →