US 12,407,746 B2
Realtime distribution of granular data streams on a network
Martin George Lafferty, Auckland (NZ)
Assigned to Matrox Graphics Inc., Dorval (CA)
Filed by Matrox Graphics Inc., Dorval (CA)
Filed on Dec. 30, 2024, as Appl. No. 19/004,567.
Application 19/004,567 is a continuation of application No. 17/800,391, previously published as PCT/NZ2021/050019, filed on Feb. 24, 2021.
Claims priority of provisional application 62/981,476, filed on Feb. 25, 2020.
Prior Publication US 2025/0141948 A1, May 1, 2025
Int. Cl. G06F 7/06 (2006.01); G06F 9/54 (2006.01); H04L 65/65 (2022.01)
CPC H04L 65/65 (2022.05) [G06F 9/544 (2013.01); G06F 2209/548 (2013.01)] 14 Claims
OG exemplary drawing
 
1. A method for processing real-time media streams asynchronously by at least one host under control of a media-processing application, the method comprising:
configuring the at least one host with a plurality of media-processing function processes each configured to operate, under control of the media-processing application, to at least one of capture, process and/or output a media stream including a sequence of grains, where each media stream is identified by a stream name, respectively, and each grain within an identified media stream is identified by a nominal timestamp, respectively;
transferring, under control of the media-processing application, grains between the plurality of media-processing function processes to create a signal path, 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, wherein the nominal timestamp of each grain is related to at least one of a grain capture time from the real-time synchronous input stream and/or a grain presentation time to the real-time synchronous output stream;
employing, by the media-processing application, in real-time, a plurality of control streams to provide values of control parameters to the plurality of media-processing function processes, where the values of the control parameters included in the control streams are defined as a function of the grain nominal timestamps;
processing, by the plurality of media-processing function processes, each grain according to the value of the control parameter associated with the nominal timestamp of the grain being processed;
including in each respective host an asynchronous media fabric service configured to:
create and delete shared memory pools, each of the shared memory pools associated with an identified media stream present on the respective host and used to allow the plurality of media-processing function processes running on the respective host direct access to the grains included in the identified media stream; and
serve as an application programming interface endpoint for the plurality of media-processing function processes to create, delete and obtain references to the shared memory pools.