| US 7,478,164 B1 | ||
| Methods and apparatus for pacing delivery of streaming media data | ||
| Jason Lango, Mountain View, Calif. (US); Konstantinos Roussos, Sunnyvale, Calif. (US); Robert Lieh-Yuan Tsai, Atlanta, Ga. (US); and J. Christopher Wagner, Langley, Wash. (US) | ||
| Assigned to NetApp, Inc., Sunnyvale, Calif. (US) | ||
| Filed on Oct. 16, 2001, as Appl. No. 9/981,644. | ||
| Claims priority of provisional application 60/297943, filed on Jun. 12, 2001. | ||
| Int. Cl. G06F 15/16 (2006.01); H04N 7/173 (2006.01) | ||
| U.S. Cl. 709—231 [725/92; 725/94] | 18 Claims |

| 1. A network caching system to cache streaming media, comprising:
a processor;
a non-volatile mass storage facility coupled to the processor, to cache streaming media data; and
a memory storing program code, for execution by the processor, the code implementing:
an operating system;
a protocol dependent caching subsystem, which includes a plurality of streaming media encoders to support a plurality of streaming
media protocols, wherein the protocol dependent caching subsystem is configured to interact with an upstream server, including
to obtain from the upstream server streaming media data encoded according to a particular streaming media protocol, to decode
the streaming media data for storage in the mass storage facility, and subsequently to encode the streaming media data into
a first streaming media protocol used by a client system after the streaming media data is retrieved from the mass storage
facility for delivery to the client system; and
a protocol independent caching subsystem, distinct from the protocol dependent caching subsystem, configured to manage flow
of streaming media data to and from the operating system in a streaming media protocol independent manner, including to store
the streaming media data obtained from the upstream server in the mass storage facility after the streaming media data has
been decoded by the protocol dependent caching subsystem, in a form that is encapsulated in a network protocol to be optimized
for delivery to the client system, and to store streaming protocol specific metadata with the streaming media data in the
mass storage facility, and subsequently to retrieve the streaming media data from the mass storage facility for subsequent
encoding by the protocol dependent caching subsystem and delivery to the client system, wherein the protocol independent caching
subsystem further is configured to deliver the streaming media data to the client system according to the first streaming
media protocol and to control a pace of delivery of the streaming media data to the client.
|