Claims
- 1. Method for allocating cache memory for streaming, comprising:
receiving a request from a user for streaming content from a content file, said request including a play position; checking if the content is in cache memory, and if the content is not in memory, caching the content at least at the play position from a content provider; determining a cache fill initiate horizon (CFIH), said CFIH defining a cache memory content sufficient to begin streaming to the user, and caching content from the content provider that is missing between the play position and the CFIH; defining a cache fill terminate horizon (CFTH), said CFTH defining additional cache memory content sufficient for maintaining a content stream of predetermined duration after streaming to the user has begun; advancing said CFIH and CFTH synchronously during play; and caching content from the content provider that is missing between the CFIH and the CFTH.
- 2. The method of claim 1, wherein said setting of the CFIH and the CFTH depends on a transmission rate of the streamed content to the user.
- 3. The method of claim 1, wherein said setting of the CFIH and the CFTH depends on a header duration information of the content file.
- 4. The method of claim 1, wherein said setting of the CFIH and the CFTH depends on a bit rate of the content file.
- 5. The method of claim 1, wherein said setting of the CFIH and the CFTH depends on a time for establishing a connection to the content provider.
- 6. The method of claim 1, further including stopping a position of the CFTH when reaching an end of file and disconnecting from the content provider.
- 7. The method of claim 1, further including disconnecting from the content provider when the content between the play position and the CFTH is in the cache memory.
- 8. The method of claim 1, further including:
upon detection of an interruption in streaming the content to the user, determine if the cache memory contains more than a predetermined fraction of the content file; and if the cache memory contains more than the predetermined fraction of the content file, finish caching the remaining fraction of the content file from the content provider; and if the cache memory contains less than the predetermined fraction of the content file, purge the cached content from cache memory.
- 9. Method of managing cache memory for streaming, comprising:
receiving from a content provider content of a content file; caching said content and storing at least a portion of said content as a cache file in a cache memory for streaming; collecting a request history for streaming of the cache file; determining from the request history the portion of the cache file that meets predetermined cache eviction criterion; and evicting from the cache memory the determined portion of the cache file that meets the cache eviction criterion.
- 10. The method of claim 9, wherein the cache eviction criterion includes a fixed time period, an elapsed time since a previous request, a frequency of previous requests, and a quality metric.
- 11. The method of claim 9, wherein the cache eviction criterion includes a location of the cached content within a cache file.
- 12. The method of claim 11, wherein the location includes at least one of a central and a trailing segment of the cache file.
- 13. The method of claim 9, further including storing said content in the cache file as payload data and as system data, and evicting from the cache memory the payload data of the determined portion of the cache file before evicting the system data of the determined portions.
- 14. The method of claim 13, wherein the system data include metadata.
- 15. A computer-readable medium containing instructions for causing a computer to manage a cache memory for streaming, including:
computer instructions for receiving from a content provider content of a content file; computer instructions for caching said content and storing at least a portion of said content as a cache file in a cache memory for streaming; computer instructions for collecting a request history for streaming of the cache file; computer instructions for determining from the request history the portion of the cache file that meets predetermined cache eviction criterion; and computer instructions for evicting from the cache memory the determined portion of the cache file that meets the cache eviction criterion.
- 16. The computer-readable medium of claim 15, wherein the cache eviction criterion includes a fixed time period, an elapsed time since a previous request, a frequency of previous requests, and a quality metric.
- 17. The computer-readable medium of claim 15, wherein the cache eviction criterion includes a location of the cached content within a cache file.
- 18. The computer-readable medium of claim 17, wherein the location includes at least one of a central and a trailing segment of the cache file.
- 19. The computer-readable medium of claim 15, further including storing said content in the cache file as payload data and as system data, and evicting from the cache memory the payload data of the determined portion of the cache file before evicting the system data of the determined portions.
- 20. The computer-readable medium of claim 19, wherein the system data include metadata.
CROSS-REFERENCE TO OTHER PATENT APPLICATIONS
[0001] This application claims the benefit of U.S. provisional applications Nos. 60/284,973, filed Apr. 19, 2001, and 60/289,409, filed May 8, 2001, the entire disclosures of which are incorporated herein by reference.
Provisional Applications (2)
|
Number |
Date |
Country |
|
60284973 |
Apr 2001 |
US |
|
60289409 |
May 2001 |
US |