Multimedia pipeline architecture
View Patent ↗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.
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;
encrypting the one or more in-memory buffers, wherein the encrypted in-memory buffers are encrypted in response to determining that one or more unencrypted in-memory buffers have reached an encryption limit, wherein the encryption limit is based on a time limit or a number of unencrypted in-memory buffers currently stored;
receiving, from a client device, a request for the particular media content stream, the request indicating a position within the particular media content stream;
in response to determining that the position within the particular media content stream corresponds to a particular encrypted buffer of the one or more encrypted in-memory data buffers, sending the particular encrypted buffer to the client device.
2. The method of claim 1 , further comprising, subsequent to encrypting the one or more in-memory buffers, storing the one or more encrypted in-memory buffers to a secondary storage device.
3. The method of claim 1 , wherein the one or more encrypted in-memory buffers are stored at the secondary storage device in response to determining that a write limit is reached, wherein the write expiration limit is one or more of a time limit and a number of in-memory data buffers currently stored.
4. The method of claim 1 , wherein the position within the particular media content stream is indicated by one or more of a buffer order number and a timestamp.
5. The method of claim 1 , wherein the one or more encrypted in-memory buffers are a uniform size.
6. The method of claim 1 , wherein at least one buffer of the one or more encrypted in-memory buffers is padded with non-media content data.
7. A system, comprising:
a media device having a memory and control circuitry configured to:
receive a plurality of media content data streams;
store, 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;
encrypt the one or more in-memory buffers, wherein the encrypted in-memory buffers are encrypted in response to determining that one or more unencrypted in-memory buffers have reached an encryption limit, wherein the encryption limit is based on a time limit or a number of unencrypted in-memory buffers currently stored;
receive, from a client device, a request for the particular media content stream, the request indicating a position within the particular media content stream; and
send the particular encrypted buffer to the client device in response to determining that the position within the particular media content stream corresponds to a particular encrypted buffer of the one or more encrypted in-memory data buffers.
8. The system of claim 7 , wherein the control circuitry is further configured to, subsequent to encrypting the one or more in-memory buffers, store the one or more encrypted in-memory buffers to a secondary storage device.
9. The system of claim 7 , wherein the one or more encrypted in-memory buffers are stored at the secondary storage device in response to determining that a write limit is reached, wherein the write expiration limit is one or more of a time limit and a number of in-memory data buffers currently stored.
10. The system of claim 7 , wherein the position within the particular media content stream is indicated by one or more of a buffer order number and a timestamp.
11. The system of claim 7 , wherein the one or more encrypted in-memory buffers are a uniform size.
12. The system of claim 7 , wherein at least one buffer of the one or more encrypted in-memory buffers is padded with non-media content data.