IP Library Granted Patent US 11,652,876
Granted Patent B2
US 11,652,876 · App. 17/383,055 · Granted May 16, 2023

Assisted delivery service for networks

Inventors: Daina Emmanuel (Bangalore, IN); Padmassri Chandrashekar (Karnataka, IN); Reda Harb (Bellevue, WA)
Assignee: ROVI GUIDES, INC.
H04L67/1061H04L67/52
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,652,876
App. No.
17/383,055
Granted
May 16, 2023
Kind
B2
Abstract

Systems and methods are provided for switching computing devices between edge servers and peer groups. One example method includes receiving, at a client computing device and from a first computing device, media content. A request to initiate an assisted delivery service is sent from the client computing device to a second computing device. The assisted delivery service is initiated in response to the request. The assisted delivery service comprises identifying, at the second computing device, one or more peer computing devices receiving the media content. At the second computing device, instructions that enable the client computing device to discover at least one of the peer computing devices are generated. The instructions are sent from the second computing device to the client computing device. At the client computing device, a peer computing device is discovered. A request to receive a portion of the media content is sent from the client computing device to a discovered peer computing device. The portion of the media content is received at the client computing device from the peer computing device.

Claims (71)

1. A method for switching computing devices between edge servers and peer groups, the method comprising:

receiving, at a client computing device and from a first computing device, media content;

sending, from the client computing device to a second computing device, a request to initiate an assisted delivery service;

initiating the assisted delivery service at the second computing device in response to the request, wherein the assisted delivery service comprises:

identifying, at the second computing device, one or more peer computing devices receiving the media content;

generating, at the second computing device, discovery data that enables the client computing device to discover at least one of the peer computing devices;

sending, from the second computing device to the client computing device, the discovery data;

determining, at the client computing device, a maximum display resolution for the media content, wherein the maximum display resolution is the highest resolution that is supported by the client computing device or is based on a setting set at the client computing device;

discovering, based on the discovery data and at the client computing device, a first peer computing device capable of providing content at the maximum display resolution for the media content and a second peer computing device capable of providing content below the maximum display resolution for the media content;

sending a request, from the client computing device to the first peer computing device, to receive a first portion of the media content in a first resolution, wherein the first resolution is the maximum display resolution for the media content;

sending a query, based on the media content, from the client computing device to the second peer computing device;

receiving the first portion of the media content, at the client computing device, from the first peer computing device and a response to the query from the second peer computing device;

in response to identifying a number of portions of media content being below a threshold level, sending a request, from the client computing device to the second peer computing device, to receive a second portion of the media content in a second resolution, wherein the second resolution below the maximum display resolution for the media content and the response to the query; and

receiving the second portion of the media content, at the client computing device, from the second peer computing device.

2. The method of claim 1 , wherein the client computing device requests the initiation of the assisted delivery service in response to detecting an error-state when receiving media content from the first computing device.

3. The method of claim 1 , wherein:

initiating the assisted delivery service further comprises sending location data from the client computing device to the second computing device, wherein the location data indicates a location of the client computing device; and

generating the discovery data further comprises identifying the one or more peer computing devices based on a proximity of the one or more peer computing devices to the client computing device.

4. The method of claim 3 further comprising:

sending updated location data from the client computing device to the second computing device;

identifying, at the second computing device, one or more additional client computing devices based the updated location data; and

sending, from the second computing device to the client computing device, updated discovery data that enables the client computing device to discover the one or more additional client computing devices.

5. The method of claim 1 , further comprising storing at least a portion of the media content in a buffer at the client computing device, and wherein the request to initiate the assisted delivery service is sent when the buffer is storing at least a threshold amount of the media content.

6. The method of claim 1 , further comprising:

sending error-state data from the client computing device to the second computing device, wherein the error-state data comprises one or more error-states with respect to the one or more peer computing devices;

identifying, at the second computing device, one or more peer computing devices based on the error-state data;

generating, at the second computing device, updated discovery data that excludes the identified one or more peer computing devices based on error-state data;

sending, from the second computing device to the client computing device, the updated discovery data.

7. The method of claim 1 , further comprising:

sending, from the client computing device to the second computing device, data indicating the maximum supported resolution; and

wherein generating the discovery data further comprises identifying the one or more peer computing devices based on whether they enable the media content to be delivered to the client computing device at the maximum resolution.

8. The method of claim 1 , further comprising storing at least a portion of the media content in a buffer at the client computing device, and wherein generating the discovery data further comprises indicating a size of the portion of the media content to be received from a peer computing device, wherein the size of the portion is determined based on at least one of the amount of media content stored in the buffer and a peer computing device response time.

9. The method of claim 1 , further comprising sending a portion of the media content from the client computing device to a peer computing device.

10. The method of claim 1 , wherein generating the discovery data further comprises identifying one or more peer computing devices based on a predetermined ranking.

11. A system for switching computing devices between edge servers and peer groups, the system comprising:

a communication port;

a memory storing instructions; and

control circuitry communicably coupled to the memory and the communication port and configured to execute the instructions to:

receive, at a client computing device and from a first computing device, media content;

send, from the client computing device to a second computing device, a request to initiate an assisted delivery service;

initiate the assisted delivery service in response to the request, wherein the control circuitry configured to initiate the assisted delivery service is configured to:

identify, at the second computing device, one or more peer computing devices receiving the media content;

generate, at the second computing device, discovery data that enables the client computing device to discover at least one of the peer computing devices;

send, from the second computing device to the client computing device, the discovery data;

determine, at the client computing device, a maximum display resolution for the media content, wherein the maximum display resolution is the highest resolution that is supported by the client computing device or is based on a setting set at the client computing device;

discover, based on the discovery data and at the second computing device, a first peer computing device capable of providing content at the maximum display resolution for the media content and a second peer computing device capable of providing content below the maximum display resolution for the media content;

send a request, from the client computing device to the first peer computing device, to receive a first portion of the media content in a first resolution, wherein the first resolution is the maximum display resolution for the media content;

send a query, based on the media content, from the client computing device to the second peer computing device;

receive the first portion of the media content, at the client computing device, from the first peer computing device and a response to the query from the second peer computing device;

in response to identifying a number of portions of media content being below a threshold level, send a request, from the client computing device to the second peer computing device, to receive a second portion of the media content in a second resolution, wherein the second resolution is based on the second capability of the second peer computing device and the response to the query; and

receive the second portion of the media content, at the client computing device, from the second peer computing device.

12. The system of claim 11 , wherein the control circuitry configured to initiate the assisted delivery service is further configured to initiate the assisted delivery service in response to the client computing device detecting an error-state when receiving media content from the first computing device.

13. The system of claim 11 , wherein:

the control circuitry configured to initiate the assisted delivery service is further configured to send location data from the client computing device to the second computing device, wherein the location data indicates a location of the client computing device; and

the control circuitry configured to generate the discovery data is further configured to identify the one or more peer computing devices based on a proximity of the one or more peer computing devices to the client computing device.

14. The system of claim 13 , wherein the control circuitry is further configured to:

send updated location data from the client computing device to the second computing device;

identify, at the second computing device, one or more additional client computing devices based on the updated location data; and

send, from the second computing device to the client computing device, updated discovery data that enables the client computing device to discover the one or more additional computing devices.

15. The system of claim 11 , wherein the control circuitry is further configured to store at least a portion of the media content in a buffer at the client computing device, and wherein the control circuitry configured to send the request to initiate the assisted delivery service is further configured to send the request when the buffer is storing at least a threshold amount of the media content.

16. The system of claim 11 , wherein the control circuitry is further configured to:

send error-state data from the client computing device to the second computing device, wherein the error-state data comprises one or more error-states with respect to the one or more peer computing devices;

identify, at the second computing device, one or more peer computing devices based on the error-state data;

generate, at the second computing device, updated discovery data that excludes the identified one or more peer computing devices based on error-state data;

send, from the second computing device to the client computing device, the updated discovery data.

17. The system of claim 11 , wherein the control circuitry is further configured to:

send, from the client computing device to the second computing device, data indicating the maximum supported resolution; and

wherein the control circuitry configured to generate the discovery data is further configured to identify the one or more peer computing devices based on whether they enable the media content to be delivered to the client computing device at the maximum resolution.

18. The system of claim 11 , wherein the control circuitry is further configured to store at least a portion of the media content in a buffer at the client computing device, and wherein the control circuitry configured to generate the discovery data is further configured to indicate a size of the portion of the media content to be received from a peer computing device, wherein the size of the portion is determined based on at least one of the amount of media content stored in the buffer and a peer computing device response time.

19. The system of claim 11 , wherein the control circuitry is further configured to send a portion of the media content from the client computing device to a peer computing device.

20. The system of claim 11 , wherein the control circuitry configured to generate the discovery data is further configured to identify one or more peer computing devices based on a predetermined ranking.

Assignments (3)
CHANGE OF NAME Recorded Oct 4, 2024
From: ROVI GUIDES, INC.
To: ADEIA GUIDES INC.
Reel/Frame 069113/0399 →
SECURITY INTEREST Recorded May 19, 2023
From: ADEIA GUIDES INC.; ADEIA MEDIA HOLDINGS LLC; ADEIA MEDIA SOLUTIONS INC.; ADEIA SEMICONDUCTOR BONDING TECHNOLOGIES INC.; ADEIA SEMICONDUCTOR SOLUTIONS LLC; ADEIA SEMICONDUCTOR TECHNOLOGIES LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 063707/0884 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 4, 2021
From: EMMANUEL, DAINA; CHANDRASHEKAR, PADMASSRI; HARB, REDA
To: ROVI GUIDES, INC.
Reel/Frame 057693/0424 →
Continuity (1)
Related Publication 20230023528A1 · Jan 26, 2023