IP Library Granted Patent US 10,250,659
Granted Patent B2
US 10,250,659 · App. 15/460,145 · Granted Apr 2, 2019

Contextually aware client buffer thresholds

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 10,250,659
App. No.
15/460,145
Granted
Apr 2, 2019
Kind
B2
Abstract

Client buffer thresholds are dynamically adjusted to provide quick start up and smooth playback in a variety of network conditions. In some examples, multiple buffer configurations are available. An initial buffer configuration may be used in typical circumstances and will yield good behavior in most cases. A modified buffer configuration can be used when limited available network resources prevent smooth playback. In some embodiments, a client buffer configuration is continuously adapted based on network throughput and data transfer rates.

Claims (42)

1. A computing device comprising:

a memory module storing a buffer, the buffer having associated therewith a plurality of thresholds including a first data threshold and a second data threshold, the second data threshold being greater than the first data threshold;

a communications interface configured to receive first media stream data associated with a media stream from a remote server via a network and store the received first media stream data in the buffer, wherein the first media stream data encodes the media stream at a first quality level;

a media presentation component configured to present the media stream at the computing device when the first media stream data stored in the buffer reaches the first threshold; and

a processor configured to transmit a first message to the remote server via the communications interface when the first media stream data stored in the buffer reaches the second threshold, wherein the first message includes a request to transmit second media stream data associated with the media stream, and wherein the second media stream data encodes the media stream at a second quality level, wherein the processor is further configured to establish a modified buffer having a modified playback threshold higher than the first data threshold.

2. The computing device recited in claim 1 , wherein the second quality level exceeds the first quality level.

3. The computing device recited in claim 2 , wherein the first and second quality levels are specified as bitrates.

4. The computing device recited in claim 1 , wherein the processor is configured to transmit a second message to the remote server via the communications interface upon determining that data stored in the buffer has fallen below the second data threshold, wherein the second message includes a request to transmit the first media stream data.

5. The computing device recited in claim 1 , wherein the processor is configured to transmit a second message to the remote server via the communications interface upon determining that data stored in the buffer has fallen below the first data threshold, wherein the second message includes a request to transmit third media stream data associated with the media stream.

6. The computing device recited in claim 5 , wherein the third media stream data encodes the media stream at a third quality level, and wherein the first quality level is greater than the third quality level.

7. The computing device recited in claim 1 , wherein the processor is configured to adjust one or more of the first and second data thresholds upon determining that data stored in the buffer has fallen below the first data threshold.

8. A method comprising:

receiving first media stream data via a communications interface from a remote server via a network, the first media stream data associated with a media stream, wherein the first media stream data encodes the media stream at a first quality level;

storing the received first media stream data in a buffer implemented on a memory module, the buffer having associated therewith a plurality of thresholds including a first data threshold and a second data threshold, the second data threshold being greater than the first data threshold;

presenting the media stream via a media presentation component configured when the first media stream data stored in the buffer reaches the first threshold;

transmitting a first message to the remote server via the communications interface when the first media stream data stored in the buffer reaches the second threshold, wherein the first message includes a request to transmit second media stream data associated with the media stream, and wherein the second media stream data encodes the media stream at a second quality level, and

establishing a modified buffer having a modified playback threshold higher than the first data threshold.

9. The method recited in claim 8 , wherein the second quality level exceeds the first quality level.

10. The method recited in claim 9 , wherein the first and second quality levels are specified as bitrates.

11. The method recited in claim 8 , the method further comprising:

determining that data stored in the buffer has fallen below the second data threshold; and

transmitting a second message to the remote server via the communications interface, wherein the second message includes a request to transmit the first media stream data.

12. The method recited in claim 8 , the method further comprising:

determining that data stored in the buffer has fallen below the first data threshold; and

transmitting a second message to the remote server via the communications interface, wherein the second message includes a request to transmit third media stream data associated with the media stream.

13. The method recited in claim 12 , wherein the third media stream data encodes the media stream at a third quality level, and wherein the first quality level is greater than the third quality level.

14. The method recited in claim 8 , wherein the processor is configured to adjust one or more of the first and second data thresholds upon determining that data stored in the buffer has fallen below the first data threshold.

15. One or more non-transitory computer readable media having instructions stored thereon for performing a method, the method comprising:

receiving first media stream data via a communications interface from a remote server via a network, the first media stream data associated with a media stream, wherein the first media stream data encodes the media stream at a first quality level;

storing the received first media stream data in a buffer implemented on a memory module, the buffer having associated therewith a plurality of thresholds including a first data threshold and a second data threshold, the second data threshold being greater than the first data threshold;

presenting the media stream via a media presentation component configured when the first media stream data stored in the buffer reaches the first threshold;

transmitting a first message to the remote server via the communications interface when the first media stream data stored in the buffer reaches the second threshold, wherein the first message includes a request to transmit second media stream data associated with the media stream, and wherein the second media stream data encodes the media stream at a second quality level, and

establishing a modified buffer having a modified playback threshold higher than the first data threshold.

16. The one or more non-transitory computer readable media recited in claim 15 , wherein the second quality level exceeds the first quality level.

17. The one or more non-transitory computer readable media recited in claim 16 , wherein the first and second quality levels are specified as bitrates.

18. The one or more non-transitory computer readable media recited in claim 15 , the method further comprising:

determining that data stored in the buffer has fallen below the second data threshold; and

transmitting a second message to the remote server via the communications interface, wherein the second message includes a request to transmit the first media stream data.

19. The one or more non-transitory computer readable media recited in claim 15 , the method further comprising:

determining that data stored in the buffer has fallen below the first data threshold; and

transmitting a second message to the remote server via the communications interface, wherein the second message includes a request to transmit third media stream data associated with the media stream.

20. The one or more non-transitory computer readable media recited in claim 19 , wherein the third media stream data encodes the media stream at a third quality level, and wherein the first quality level is greater than the third quality level.

Assignments (6)
CHANGE OF NAME Recorded Mar 31, 2026
From: ADEIA MEDIA HOLDINGS LLC
To: ADEIA MEDIA HOLDINGS INC.
Reel/Frame 075304/0001 →
CHANGE OF NAME Recorded Oct 1, 2024
From: TIVO CORPORATION
To: TIVO LLC
Reel/Frame 069083/0250 →
CHANGE OF NAME Recorded Oct 1, 2024
From: TIVO LLC
To: ADEIA MEDIA HOLDINGS LLC
Reel/Frame 069083/0325 →
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 Jun 1, 2021
From: MOBITV, INC.; MOBITV SERVICES, INC.
To: TIVO CORPORATION
Reel/Frame 056444/0076 →
SECURITY INTEREST Recorded Oct 21, 2020
From: MOBITV, INC.
To: ALLY BANK
Reel/Frame 054128/0963 →