Multimedia pipeline architecture
First Claim
1. A method, comprising:
- receiving, by a media device, a plurality of media content data streams;
storing, in one or more in-memory buffers, at least a portion of a particular media content stream of the plurality of media content data streams;
prior to the one or more in-memory buffers becoming full by the storage of the at least the portion of the particular media content stream, transferring content from the one or more in-memory buffers to a secondary storage device in response to determining that an amount of time since the portion of the particular media content stream started being stored in the one or more buffers exceeds a threshold amount of time;
determining whether on or more in-memory buffers have reached an encryption limit, wherein the encryption limit is one or more of a time limit, and a number of unencrypted in-memory buffers currently stored;
in response to determining that on or more in-memory buffers have reached an encryption limit, encrypting the one or more in-memory buffers;
receiving, from a client device, a request for the particular media content stream, the request indicating a position within the particular media content stream; and
in response to determining that the position within the particular media content stream corresponds to a particular buffer of the one or more in-memory data buffers, sending the particular buffer to the client device.
9 Assignments
0 Petitions
Accused Products
Abstract
A media content pipeline architecture is described that enables media devices to efficiently receive, store, play, and stream media content. In general, a media content pipeline as described herein is configured to receive media content streams from one or more input sources, segment and store the media content streams into fixed-sized or variable-sized data buffers, encrypt the data stored in the buffers, and store the encrypted data in an in-memory buffer cache for further processing. The media content pipeline further may be configured to write the encrypted buffers stored in the in-memory buffer cache to a secondary storage device (e.g., a hard disk) in response to the occurrence of one or more defined operating conditions. The media content pipeline may enable a media device to efficiently receive and process media content data streams, write the media content data streams to storage, and stream the media content data to client devices.
-
Citations
21 Claims
-
1. A method, comprising:
-
receiving, by a media device, a plurality of media content data streams; storing, in one or more in-memory buffers, at least a portion of a particular media content stream of the plurality of media content data streams; prior to the one or more in-memory buffers becoming full by the storage of the at least the portion of the particular media content stream, transferring content from the one or more in-memory buffers to a secondary storage device in response to determining that an amount of time since the portion of the particular media content stream started being stored in the one or more buffers exceeds a threshold amount of time; determining whether on or more in-memory buffers have reached an encryption limit, wherein the encryption limit is one or more of a time limit, and a number of unencrypted in-memory buffers currently stored; in response to determining that on or more in-memory buffers have reached an encryption limit, encrypting the one or more in-memory buffers; receiving, from a client device, a request for the particular media content stream, the request indicating a position within the particular media content stream; and in response to determining that the position within the particular media content stream corresponds to a particular buffer of the one or more in-memory data buffers, sending the particular buffer to the client device. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A non-transitory computer readable medium storing a program of instructions that is executable by a device to perform a method, the method comprising:
-
receiving, by a media device, a plurality of media content data streams; storing, in one or more in-memory buffers, at least a portion of a particular media content stream of the plurality of media content data streams; prior to the one or more in-memory buffers becoming full by the storage of the at least the portion of the particular media content stream, transferring content from the one or more in-memory buffers to a secondary storage device in response to determining that an amount of time since the portion of the particular media content stream started being stored in the one or more buffers exceeds a threshold amount of time; determining whether one or more in-memory buffers have reached an encryption limit, wherein the encryption limit is one or more of a time limit and a number of in-memory buffers currently stored; in response to determining that one or more in-memory buffers have reached an encryption limit, encrypting the one or more in-memory buffers; receiving, from a client device, a request for the particular media content stream, the request indicating a position within the particular media content stream; and in response to determining that the position within the particular media content stream corresponds to a particular buffer of the one or more in-memory data buffers, sending the particular buffer to the client device. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. An apparatus, comprising:
-
a subsystem, implemented at least partially in hardware, that receives a plurality of media content data streams; a subsystem, implemented at least partially in hardware, that stores, in one or more in-memory buffers, at least a portion of a particular media content stream of the plurality of media content data streams; a subsystem, implemented at least partially in hardware, that prior to the one or more in-memory buffers becoming full by the storage of the at least the portion of the particular media content stream, transfers content from the one or more in-memory buffers to a secondary storage device in response to determining that an amount of time since the portion of the particular media content stream started being stored in the one or more buffers exceeds a threshold amount of time; a subsystem, implemented at least partially in hardware, that determines whether one or more in-memory buffers have reached an encryption limit, wherein the encryption limit is one or more of a time limit and a number of unencrypted in-memory buffers currently stored; a subsystem, implemented at least partially in hardware that, in response to determining that one or more in-memory buffers have reached an encryption limit, encrypts the one or more in-memory buffers; a subsystem, implemented at least partially in hardware, that receives, from a client device, a request for the particular media content stream, the request indicating a position within the particular media content stream; a subsystem, implemented at least partially in hardware, that, in response to determining that the position within the particular media content stream corresponds to a particular buffer of the one or more in-memory data buffers, sends the particular buffer to the client device. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
Specification