US 11,868,819 B2
System and method for constructing filter graph-based media processing pipelines in a browser
James Edward Pearce, Newbury (GB)
Assigned to GRASS VALLEY LIMITED, Newbury (GB)
Filed by Grass Valley Limited, Newbury (GB)
Filed on Oct. 29, 2020, as Appl. No. 17/084,112.
Claims priority of provisional application 62/943,058, filed on Dec. 3, 2019.
Claims priority of provisional application 62/929,600, filed on Nov. 1, 2019.
Prior Publication US 2021/0182123 A1, Jun. 17, 2021
Int. Cl. G06F 9/52 (2006.01); G06F 9/54 (2006.01); G06F 16/25 (2019.01); G06F 16/957 (2019.01)
CPC G06F 9/52 (2013.01) [G06F 9/546 (2013.01); G06F 9/547 (2013.01); G06F 16/258 (2019.01); G06F 16/957 (2019.01)] 20 Claims
OG exemplary drawing
 
1. A system for constructing filter graph-based media processing pipelines directly in a web browser, the system comprising:
a media processing functionality determiner configured to determine a processing function of media data received by a web browser; and
a main application thread configured to construct a filter graph directly in the web browser that includes a connected upstream filter and a renderer filter, each configured to execute a respective function for the processing function of the media data, wherein the main application thread is configured to:
instantiate the upstream filter and the renderer filter of the filter graph as JavaScripts configured as web workers for performing the respective functions;
assess a compatibility between the upstream filter and the renderer filter; and
connect the upstream filter and the renderer filter via a MessageChannel if the main application thread determines that the upstream filter is compatible with the renderer filter;
wherein the upstream filter is configured to process and transmit, via the MessageChannel, media samples to the renderer filter, wherein the media samples include timestamps; and
wherein the renderer filter is configured to enter the media samples in a queue and render media in the browser based on the media samples and the timestamps.