Back to results
US 12,495,084 B2Granted
Realtime distribution of granular data streams on a network
AssigneeMatrox Graphics Inc.
InventorMartin George Lafferty
Life of this patent
Estimating the term…
Abstract
A system and method for an asynchronous media fabric service. The system includes at least one host configured with the asynchronous media fabric service. The asynchronous media fabric service is configured to: create and delete shared memory pools that are used to allow processes running on a single host direct access to grain data; send and receive grains from other hosts; and serve as an API endpoint for asynchronous media fabric function processes to create, delete and obtain references to streams.
Claims20
A system comprising:
- at least one processor;
- a memory comprising instructions executable by the at least one processor;
- and
- a plurality of hosts each configured with at least one media-processing function process, respectively, together providing a plurality of media-processing function processes, each of the plurality of media-processing function processes configured to operate, under control of a media-processing application, to at least one of capture, process and/or output a media stream including a sequence of grains, where at least one of the plurality of media-processing function processes operates to at least one of capture from a real-time synchronous input stream and/or output to a real-time synchronous output stream, the plurality of hosts including at least a first host and a second host that are remote from one another, wherein the instructions when executed by the at least one processor cause the at least one processor to configure each of the plurality of hosts with an asynchronous media fabric service, each asynchronous media fabric service being configured to:
- create and delete shared memory pools, each of the shared memory pools associated with an identified media stream and used to allow the at least one media-processing function process running on the respective host direct access to the grains included in the identified media stream, with each of the grains included in the identified media stream being uniquely identified;
- create a first instance of a first shared memory pool on the first host, the first shared memory pool configured to store grains of a first media stream, wherein a producer function process included in the at least one media-processing function process running on the first host operates to produce grains that are written to the first instance of the first shared memory pool, wherein each of the grains is written in a respective local write operation;
- create a second instance of the first shared memory pool on the second host, wherein a consumer function process included in the at least one media-processing function process running on the second host operates to consume grains that are retrieved from the second instance of the first shared memory pool;
- establish a grain transfer link for a transfer of grains between the first instance of the first shared memory pool and the second instance of the first shared memory pool;
- send and receive grains from other hosts, wherein following a first local write operation of a first grain to the first instance of the first shared memory pool, the asynchronous media fabric service operating on the first host is notified by the producer function process that the first grain is available for transfer to the second instance of the first shared memory pool on the second host via the grain transfer link;
- and
- serve as an application programming interface endpoint for the plurality of media-processing function processes to create, delete and obtain references to media streams.
8 more elements
A system comprising:
- at least one processor;
- a memory comprising instructions executable by the at least one processor;
- and
- a plurality of hosts each configured with at least one media-processing function process, respectively, together providing a plurality of media-processing function processes, each of the plurality of media-processing function processes configured to operate, under control of a media-processing application, to at least one of capture, process and/or output a media stream including a sequence of grains, where at least one of the plurality of media-processing function processes operates to at least one of capture from a real-time synchronous input stream and/or output to a real-time synchronous output stream, the plurality of hosts including at least a first host and a second host that are remote from one another, wherein the instructions when executed by the at least one processor cause the at least one processor to configure each of the plurality of hosts with an asynchronous media fabric service, each asynchronous media fabric service being configured to:
- create and delete shared memory pools, each of the shared memory pools associated with an identified media stream and used to allow the at least one media-processing function process running on the respective host direct access to the grains included in the identified media stream, with each of the grains included in the identified media stream being uniquely identified;
- create a first instance of a first shared memory pool on the first host, the first shared memory pool configured to store grains of a first media stream, wherein a producer function process included in the at least one media-processing function process running on the first host operates to produce grains that are written to the first instance of the first shared memory pool, wherein each of the grains is written in a respective local write operation;
- create a second instance of the first shared memory pool on the second host, wherein a consumer function process included in the at least one media-processing function process running on the second host operates to consume grains that are retrieved from the second instance of the first shared memory pool;
- establish a grain transfer link for a transfer of grains between the first instance of the first shared memory pool and the second instance of the first shared memory pool;
- and
- send and receive grains from other hosts, wherein following a first local write operation of a first grain to the first instance of the first shared memory pool, the asynchronous media fabric service operating on the first host is notified by the producer function process that the first grain is available for transfer to the second instance of the first shared memory pool on the second host via the grain transfer link.
7 more elements
Dependencies are inferred from the claim text.