IP Library Granted Patent US 12,495,183
Granted Patent B2
US 12,495,183 · App. 18/657,215 · Granted Dec 9, 2025

Systems and methods for switching content providers to maintain streaming experience

Inventors: Vijay Kumar (Karnataka, IN); Vikram Makam Gupta (Karnataka, IN)
Assignee: Adeia Guides Inc.
H04N21/4516H04L65/61H04L65/80H04N21/41407H04N21/442H04N21/4667
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 12,495,183
App. No.
18/657,215
Granted
Dec 9, 2025
Kind
B2
Abstract

Systems and methods are described herein for selecting content providers based on performance scores of the respective content providers. The system monitors the performance of a content provider, where the performance is based on the quality of service for receiving a media content item from the content provider. Based on the monitored performance, the system may determine if an adequate performance is not achievable. In response to determining that an adequate performance is not achievable, the system compares the performance of the content provider to the performance of a second content provider and provides, on the user device, the media content item from the second content provider.

Claims (74)

1 . A method comprising:

selecting a media stream associated with a media asset either from a first service provider or a second service provider based on a quality of the media stream, wherein the selection comprises:

obtaining a first value for each of a plurality of characteristics of the media stream for each of the first and second service providers, wherein the plurality of characteristics are associated with the quality of the media stream, by:

determining a current location of a user device that is to receive the media stream;

determining a current time at the first and second service providers that are to transmit the media stream to the user device; and

determining, for the first service provider, by an aggregator, the first value of each of the plurality of characteristics based on the current location of the user device and the current time at the first service provider, and determining for the second service provider, by the aggregator, the first value of each of the plurality of characteristics based on the current location of the user device and the current time at the second service provider;

applying, for each of the plurality of characteristics obtained from each respective service provider, a respective weight to the obtained first value to determine a second weighted value for each of the first and second service providers;

comparing the second weighted value of the first service provider with the second weighted value of the second service provider; and

selecting, based on the comparison, either the first or the second service provider that has the higher second weighted value.

2 . The method of claim 1 , wherein determining the second weighted value for each of the first and second service providers further comprises:

retrieving, from a user profile, the respective weight for each of the plurality of characteristics;

multiplying, for each of the plurality of characteristics, the respective weight by the obtained first value to determine a third value; and

summing each determined third value to determine the second weighted value for each of the first and second service providers, wherein the second weighted value correspond to a perceived quality.

3 . The method of claim 1 , further comprises:

presenting the results of the comparison of the second weighted value of the first service provider with the second weighted value of the second service provider on the user device.

4 . The method of claim 1 , wherein the plurality of characteristics include at least one of a bit error rate, a video resolution, a transmission delay, a frame rate, or a combination of at least two of the bit error rate, a video resolution, a transmission delay, and frame rate.

5 . The method of claim 1 , further comprising:

receiving, from the user device, a request to access either the first or the second service provider that has the higher second weighted value; and

transmitting, to the user device, a media stream from either the first or the second service provider that has the higher second weighted value.

6 . The method of claim 1 , further comprising:

comparing the second weighted value of the first service provider to a predetermined threshold to determine whether the second weighted value of the first service provider is below the predetermined threshold; and

in response to determining that the second weighted value of first service provider is below the predetermined threshold, determining a second weighted value for a content provider, different from the first content provider, that is to transmit the media stream to the user device.

7 . The method of claim 6 , wherein comparing the second weighted value of the first service provider to the predetermined threshold further comprises:

determining the predetermined threshold, wherein the predetermined threshold relates to the first service provider; and

comparing the second weighted value for the first service provider with the predetermined threshold.

8 . The method of claim 7 , wherein determining the predetermined threshold further comprises:

selecting, from a data structure, a plurality of historical second weighted values for the first service provider; and

determining the predetermined threshold based on the selected plurality of historical second weighted values for the first service provider.

9 . The method of claim 8 , wherein selecting, from the data structure, the plurality of historical second weighted values for the first service provider further comprises:

retrieving, from the data structure, for each of the plurality of historical second weighted values for the first service provider, a historical location and a historical time;

determining, for each of the plurality of the historical second weighted values for the first service provider, a difference between the current time and the historical time;

determining, for each of the plurality of the historical second weighted values for the first service provider, a difference between the current location and the historical location; and

selecting each historical second weighted value of the plurality of historical second weighted values for the first service provider, for which:

the difference between the current time and the historical time is below a first error margin; and

the difference between the current location and the historical location is below a second error margin.

10 . A system comprising:

control circuitry configured to:

select a media stream associated with a media asset either from a first service provider or a second service provider based on a quality of the media stream, wherein the selection comprises:

obtain a first value for each of a plurality of characteristics of the media stream for each of the first and second service providers, wherein the plurality of characteristics are associated with the quality of the media stream, by:

determining a current location of a user device that is to receive the media stream;

determining a current time at the first and second service providers that are to transmit the media stream to the user device; and

determining, for the first service provider, by an aggregator, the first value of each of the plurality of characteristics based on the current location of the user device and the current time at the first service provider, and determining for the second service provider, by the aggregator, the first value of each of the plurality of characteristics based on the current location of the user device and the current time at the second service provider;

apply, for each of the plurality of characteristics obtained from each respective service provider, a respective weight to the obtained first value to determine a second weighted value for each of the first and second service providers;

compare the second weighted value of the first service provider with the second weighted value of the second service provider; and

select, based on the comparison, either the first or the second service provider that has the higher second weighted value.

11 . The system of claim 10 , wherein the control circuitry is further configured to determine the second weighted value for each of the first and second service by:

retrieving, from a user profile, the respective weight for each of the plurality of characteristics;

multiplying, for each of the plurality of characteristics, the respective weight by the obtained first value to determine a third value; and

summing each determined third value to determine the second weighted value for each of the first and second service providers, wherein the second weighted value correspond to a perceived quality.

12 . The system of claim 10 , wherein the control circuitry is further configured to:

present the results of the comparison of the second weighted value of the first service provider with the second weighted value of the second service provider on the user device.

13 . The system of claim 10 , wherein the plurality of characteristics include at least one of a bit error rate, a video resolution, a transmission delay, a frame rate, or a combination of at least two of the bit error rate, a video resolution, a transmission delay, and frame rate.

14 . The system of claim 10 , further comprising:

communications circuitry configured to:

receive, from the user device, a request to access either the first or the second service provider that has the higher second weighted value; and

transmit, to the user device, a media stream from either the first or the second service provider that has the higher second weighted value.

15 . The system of claim 10 , wherein the control circuitry is further configured to:

compare the second weighted value of the first service provider to a predetermined threshold to determine whether the second weighted value of the first service provider is below the predetermined threshold; and

in response to determining that the second weighted value of first service provider is below the predetermined threshold, determine a second weighted value for a content provider, different from the first content provider, that is to transmit the media stream to the user device.

16 . The system of claim 15 , wherein the control circuitry is further configured to compare the second weighted value of the first service provider to the predetermined threshold by:

determining the predetermined threshold, wherein the predetermined threshold relates to the first service provider; and

comparing the second weighted value for the first service provider with the predetermined threshold.

17 . The system of claim 16 , wherein the control circuitry is further configured to determine the predetermined threshold by:

selecting, from a data structure, a plurality of historical second weighted values for the first service provider; and

determining the predetermined threshold based on the selected plurality of historical second weighted values for the first service provider.

18 . The system of claim 17 , wherein the control circuitry is further configured to select, from the data structure, the plurality of historical second weighted values for the first service provider by:

retrieving, from the data structure, for each of the plurality of historical second weighted values for the first service provider, a historical location and a historical time;

determining, for each of the plurality of the historical second weighted values for the first service provider, a difference between the current time and the historical time;

determining, for each of the plurality of the historical second weighted values for the first service provider, a difference between the current location and the historical location; and

selecting each historical second weighted value of the plurality of historical second weighted values for the first service provider, for which:

the difference between the current time and the historical time is below a first error margin; and

the difference between the current location and the historical location is below a second error margin.

19 . The method of claim 1 , wherein the current location comprises global positioning system (GPS) coordinates.

20 . The system of claim 10 , wherein the current location comprises global positioning system (GPS) coordinates.

Assignments (3)
SECURITY INTEREST Recorded May 28, 2025
From: ADEIA INC. (F/K/A XPERI HOLDING CORPORATION); ADEIA HOLDINGS INC.; ADEIA MEDIA HOLDINGS INC.; ADEIA IMAGING LLC; ADEIA MEDIA LLC; ADEIA MEDIA SOLUTIONS INC.; ADEIA SEMICONDUCTOR BONDING TECHNOLOGIES INC.; ADEIA TECHNOLOGIES INC.; ADEIA GUIDES INC.; ADEIA SOLUTIONS LLC; ADEIA SEMICONDUCTOR ADVANCED TECHNOLOGIES INC.; ADEIA SEMICONDUCTOR SOLUTIONS LLC; ADEIA SEMICONDUCTOR INTELLECTUAL PROPERTY LLC; ADEIA SEMICONDUCTOR TECHNOLOGIES LLC; ADEIA PUBLISHING INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 071454/0343 →
CHANGE OF NAME Recorded Oct 3, 2024
From: ROVI GUIDES, INC.
To: ADEIA GUIDES INC.
Reel/Frame 069106/0231 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 7, 2024
From: KUMAR, VIJAY; GUPTA, VIKRAM MAKAM
To: ROVI GUIDES, INC.
Reel/Frame 067337/0994 →
Continuity (4)
Continuation 17525149 · Nov 12, 2021
Continuation 17182409 · Feb 23, 2021
Continuation 16417261 · May 20, 2019
Related Publication 20240298070A1 · Sep 5, 2024
References Cited (49)
US 6341374B2 · Schein et al. · 2002 [cited by applicant]
US 7761892B2 · Ellis et al. · 2010 [cited by applicant]
US 8046801B2 · Ellis et al. · 2011 [cited by applicant]
US 8549150B1 · Roseman et al. · 2013 [cited by applicant]
US 9015335B1 · Gigliotti et al. · 2015 [cited by applicant]
US 11202123B2 · Kumar et al. · 2021 [cited by applicant]
US 11706468B1 · Almeida et al. · 2023 [cited by applicant]
US 12010383B2 · Kumar et al. · 2024 [cited by applicant]
US 20020154892A1 · Hoshen et al. · 2002 [cited by applicant]
US 20030093803A1 · Ishikawa et al. · 2003 [cited by applicant]
US 20040024886A1 · Saxena · 2004 [cited by applicant]
US 20050251827A1 · Ellis et al. · 2005 [cited by applicant]
US 20060128422A1 · Van · 2006 [cited by applicant]
US 20070056002A1 · Ganesan et al. · 2007 [cited by applicant]
US 20100122305A1 · Moloney · 2010 [cited by applicant]
US 20100146569A1 · Janardhan et al. · 2010 [cited by applicant]
US 20100223641A1 · Hubbard · 2010 [cited by examiner]
US 20110138424A1 · Vlot · 2011 [cited by applicant]
US 20110209025A1 · Takahashi · 2011 [cited by applicant]
US 20110302324A1 · Karaoguz · 2011 [cited by examiner]
US 20110320588A1 · Raleigh · 2011 [cited by applicant]
US 20130114940A1 · Merzon et al. · 2013 [cited by applicant]
US 20140125703A1 · Roveta et al. · 2014 [cited by applicant]
US 20140130092A1 · Kunisetty · 2014 [cited by applicant]
US 20140208360A1 · Kardatzke · 2014 [cited by applicant]
US 20150012662A1 · Li et al. · 2015 [cited by applicant]
US 20150019465A1 · Littlejohn et al. · 2015 [cited by applicant]
US 20150120957A1 · Yun et al. · 2015 [cited by applicant]
US 20150348177A1 · Craft et al. · 2015 [cited by applicant]
US 20160080815A1 · Ruffini · 2016 [cited by examiner]
US 20160353148A1 · Prins et al. · 2016 [cited by applicant]
US 20170013296A1 · Millar et al. · 2017 [cited by applicant]
US 20170094332A1 · Thomas · 2017 [cited by examiner]
US 20170188059A1 · Major · 2017 [cited by applicant]
US 20170332146A1 · Klappert et al. · 2017 [cited by applicant]
US 20170339457A1 · Patel et al. · 2017 [cited by applicant]
US 20170339466A1 · Patel et al. · 2017 [cited by applicant]
US 20190045241A1 · Alexander et al. · 2019 [cited by applicant]
US 20190238856A1 · Dasari et al. · 2019 [cited by applicant]
US 20190327510A1 · Kalagi et al. · 2019 [cited by applicant]
US 20190373296A1 · Oakley · 2019 [cited by applicant]
US 20200162725A1 · Hong et al. · 2020 [cited by applicant]
US 20200296451A1 · Hassler · 2020 [cited by applicant]
US 20210185107A1 · Kumar et al. · 2021 [cited by applicant]
US 20210240342A1 · Jin et al. · 2021 [cited by applicant]
US 20220078517A1 · Kumar et al. · 2022 [cited by applicant]
US 20230023731A1 · Offeman · 2023 [cited by examiner]
US 20240098323A1 · Biggs · 2024 [cited by examiner]
US 20240098338A1 · Gupta · 2024 [cited by examiner]