Patent ID: 7716359
Filing Date: 2010-05-11
Classification: H04L

Abstract:
1. A communications system for streaming content from a source to a sink, the communications system having managed and unmanaged memory, managed memory being memory that provides automatic garbage collection using indirect references to buffers to facilitate moving buffers without affecting an application that uses the buffers, unmanaged memory being memory that does not provide automatic garbage collection, comprising: a channel including a send stream and a receive stream, the send stream for connecting to a source and a network and for sending content of the source to a destination sink via the network, the receive stream for connecting a sink to the network and for receiving content from an originating source via the network, the send stream including a send stream engine and the receive stream including a receive stream engine, the send stream engine and the receive stream engine for processing content stored in unmanaged memory; a media sender object in managed memory for connecting to the send stream of the channel, the media sender object for receiving content from an application and providing the content to the send stream; the media sender object including a reference to an instantiated mirror media sender object in unmanaged memory, the media sender object providing an application interface for queueing buffers of content to be provided to the send stream; a media receiver object in managed memory for connecting to the receive stream of the channel, the media receiver object for receiving content from the receive stream and providing the received content to an application; the media receiver object including a reference to an instantiated mirror media receiver object in unmanaged memory; and an application that registers the media sender object with the send stream of the channel and enqueues with the media sender object media buffers stored in managed memory and referencing content stored in managed memory to be sent by the media sender object wherein the enqueueing includes copying the content from managed memory to unmanaged memory and updating a reference in mirror media buffers stored in unmanaged memory to reference the content in unmanaged memory and that registers the media receiver object with the receive stream of the channel and enqueues with the media receiver object media buffers stored in managed memory and referencing a buffer in managed memory for storing content to be received by the media receiver object, wherein the enqueueing includes allocating a buffer in unmanaged memory for storing the content and updating a reference in mirror media buffers stored in unmanaged memory to reference the allocated buffer in unmanaged memory wherein the send stream engine invokes a retrieve content component of the mirror media sender object to retrieve a reference to the content stored in unmanaged memory from the mirror media buffers and returns the retrieved reference to the send stream engine for sending via the send stream, and wherein the receive stream engine invokes a store content component of the mirror media receiver object to store in unmanaged memory content in the mirror media buffers that was received by the receive stream engine via the receive stream and add a reference to the mirror media buffers to reference the stored content.