IP Library Granted Patent US 10,560,504
Granted Patent B2
US 10,560,504 · App. 14/510,545 · Granted Feb 11, 2020

Stream duration management

Inventor: Bradley Outlaw (San Francisco, CA)
Assignee: Adobe Inc.
H04L65/4092G06F3/04855H04L65/4084H04N21/4305
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,560,504
App. No.
14/510,545
Granted
Feb 11, 2020
Kind
B2
Abstract

In general, in one aspect, streaming content is received from a server, the streaming content being stored and queued for client-side playback from the server. Information about the streaming content is received. A virtual current duration of the streaming content is determined at a client-side application based on the information about the streaming content. A timeline control is generated based on the determined virtual duration, the timeline control presenting a representation of the virtual duration and allowing navigation forward and backward in the streaming content. The timeline control is displayed at the client-side display device.

Claims (71)

1. A computer-implemented method, comprising:

receiving a content stream from a server;

storing at least a portion of the content stream at a client-side display device;

playing back the content stream at the client-side display device;

after playback of the content stream has commenced, sending a request from the client-side display device to the server, wherein the request is for current duration information that indicates a playback point of the content stream corresponding to a time of the request, wherein the current duration information further indicates a duration of the content stream available to be streamed from the server at the time of the request, and wherein the content stream that is played back at the client-side display device does not have embedded therein the current duration information;

receiving, from the server, and in response to the server having processed the request, and in a communication that is separate from the content stream, the current duration information;

after the current duration information is received, calculating, at a client-side application, a virtual duration that indicates a current playback point of the content stream when the virtual duration is calculated, wherein the virtual duration is calculated as an addition to the current duration information, and wherein the virtual duration is calculated without obtaining additional duration information from the server beyond the current duration information;

generating a timeline control based on the virtual duration, the timeline control presenting a representation of the virtual duration and allowing navigation forward and backward in the content stream; and

displaying the timeline control at the client-side display device.

2. The method of claim 1 , further comprising repeatedly calculating the virtual duration until a threshold duration is reached, and upon reaching the threshold duration:

sending to the server a subsequent request for subsequent current duration information indicating a subsequent playback point of the content stream corresponding to a time of the subsequent request; and

receiving, from the server, the subsequent current duration information in response to the subsequent request.

3. The method of claim 1 , further comprising repeatedly calculating the virtual duration until a threshold duration is reached, and upon reaching the threshold duration sending to the server a subsequent request for subsequent current duration information indicating a subsequent playback point of the content stream corresponding to a time of the subsequent request.

4. The method of claim 1 , further comprising:

receiving a command that manipulates the timeline control;

navigating in the content stream based on the command; and

displaying the content stream based on said navigating.

5. The method of claim 1 , further comprising:

receiving a command to seek to a live time in the content stream, wherein the live time corresponds to a currently-streaming portion of the content stream;

determining, in response to the received command, a difference between the virtual duration and a playback buffer capacity;

determining a particular time in the content stream based on the determined difference; and

displaying the content stream at the determined particular time.

6. A machine-readable storage device storing a computer program product, the computer program product having instructions operable to cause one or more data processing apparatus to perform operations comprising:

receiving a content stream from a server;

storing at least a portion of the content stream at a client-side display device;

playing back the content stream at the client-side display device;

after playback of the content stream has commenced, receiving, from the server and in response to a request, and in a communication that is separate from the content stream, current duration information indicating a playback point of the content stream corresponding to a time of the request and a duration of the content stream available to be streamed from the server at the time of the request;

after the current duration information is received, calculating, at a client-side application, a virtual duration that indicates a current playback point of the content stream when the virtual duration is calculated, wherein the virtual duration is calculated as an addition to the current duration information, and wherein the virtual duration is calculated without obtaining additional duration information from the server beyond the current duration information;

generating a timeline control based on the virtual duration, the timeline control presenting a representation of the virtual duration and allowing navigation forward and backward in the content stream; and

displaying the timeline control at the client-side display device;

wherein the content stream received from the server does not have embedded therein the current duration information, thus reducing channel traffic between the server and the client-side playback device as compared to channel traffic used to transmit a content stream that has the current duration information embedded therein.

7. The storage device of claim 6 , wherein the virtual duration is greater than the duration of the content stream available to be streamed from the server at the time of the request.

8. The storage device of claim 6 , wherein the request is generated in response to a command to manipulate playback of the content stream at the client-side display device.

9. The storage device of claim 6 , wherein the operations further comprise repeatedly calculating the virtual duration until a threshold duration is reached, and upon reaching the threshold duration:

sending to the server a subsequent request for subsequent current duration information indicating a subsequent playback point of the content stream corresponding to a time of the subsequent request; and

receiving, from the server, the subsequent current duration information in response to the subsequent request.

10. The storage device of claim 6 , wherein the operations further comprise repeatedly calculating the virtual duration until a threshold duration is reached, and upon reaching the threshold duration sending to the server a subsequent request for subsequent current duration information indicating a subsequent playback point of the content stream corresponding to a time of the subsequent request.

11. The storage device of claim 6 , wherein the operations further comprise:

receiving a command that manipulates the timeline control;

navigating in the content stream based on the command; and

displaying the content stream based on said navigating.

12. The storage device of claim 6 , wherein the operations further comprise:

receiving a command to seek to a live time in the content stream, wherein the live time corresponds to a currently-streaming portion of the content stream;

determining, in response to the received command, a difference between the virtual duration and a playback buffer capacity;

determining a particular time in the content stream based on the determined difference; and

displaying the content stream at the determined particular time.

13. A system, comprising:

at least one processing device that forms part of a client-side display device; and

a storage device storing instructions operable to cause the at least one processing device to perform operations comprising:

receiving a content stream from a server;

storing at least a portion of the content stream at the client-side display device;

playing back the content stream at the client-side display device;

after playback of the content stream has commenced, receiving, from the server and in response to a request, and in a communication that is separate from the content stream, current duration information indicating a playback point of the content stream corresponding to a time of the request, wherein the current duration information further indicates a duration of the content stream available to be streamed from the server at the time of the request, wherein the content stream received from the server does not have embedded therein the current duration information, thus reducing channel traffic between the server and the client-side display device as compared to channel traffic used to transmit a content stream that has the current duration information embedded therein;

after the current duration information is received, calculating, at a client-side application, a virtual duration that indicates a current playback point of the content stream when the virtual duration is calculated, wherein the virtual duration is calculated as an addition to the current duration information, and wherein the virtual duration is calculated without obtaining additional duration information from the server beyond the current duration information;

generating a timeline control based on the virtual duration, the timeline control presenting a representation of the virtual duration and allowing navigation forward and backward in the content stream; and

displaying the timeline control at the client-side display device.

14. The system of claim 13 , wherein the calculated virtual duration depends on a timestamp generated at the time of the request.

15. The system of claim 13 , wherein the request is generated in response to a command to cue the content stream forward or backward at the client-side display device.

16. The system of claim 13 , wherein the operations further comprise repeatedly calculating the virtual duration until a threshold duration is reached, and upon reaching the threshold duration:

sending to the server a subsequent request for subsequent current duration information corresponding to a subsequent playback point of the content stream corresponding to a time of the subsequent request, wherein the subsequent request is sent to the server without user intervention; and

receiving, from the server, the subsequent current duration information in response to the subsequent request.

17. The system of claim 13 , wherein the operations further comprise repeatedly calculating the virtual duration until a threshold duration is reached, and upon reaching the threshold duration sending to the server a subsequent request for subsequent current duration information indicating a subsequent playback point of the content stream corresponding to a time of the subsequent request.

18. The system of claim 13 , wherein the operations further comprise:

receiving a command that manipulates the timeline control;

navigating in the content stream based on the command; and

displaying the content stream based on said navigating.

19. The system of claim 13 , wherein the operations further comprise:

receiving a command to seek to a live time in the content stream, wherein the live time corresponds to a currently-streaming portion of the content stream;

determining, in response to the received command, a difference between the virtual duration and a playback buffer capacity;

determining a particular time in the content stream based on the determined difference; and

displaying the content stream at the determined particular time.

Assignments (2)
CHANGE OF NAME Recorded Nov 30, 2018
From: ADOBE SYSTEMS INCORPORATED
To: ADOBE INC.
Reel/Frame 047688/0530 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 9, 2014
From: OUTLAW, BRADLEY
To: ADOBE SYSTEMS INCORPORATED
Reel/Frame 033923/0089 →