Systems for negotiating buffer size and attribute characteristics in media processing systems that create user-defined development projects
First Claim
1. A computer-readable medium embodying computer-readable instructions thereon which, when executed, implement a method comprising:
- receiving an indication to generate a filter graph representing a user-defined development project;
identifying media sources that are to be used in the user-defined development project;
establishing a programming grid that incorporates a user'"'"'s editing instructions;
generating a matrix switch filter based, at least in part, on the programming grid, wherein the programming grid identifies which matrix switch filter inputs are to be coupled to which matrix switch filter outputs at particular project times;
assembling the filter graph representing the user-defined development project, wherein the filter graph comprises a plurality of individual filters; and
negotiating buffer size and attribute characteristics between an input/output of the matrix switch filter and an input/output of adjacent filters, wherein negotiated buffers are utilized to communicate media content between the matrix switch filter and adjacent filters by sharing a common buffer between inputs and outputs;
wherein the act of assembling comprises providing a separate buffer for each input and output of each filter within the project, andwherein the method further comprises after and responsive to said act of negotiating, replacing at least a pair of separate adjacent buffers with a single buffer shared therebetween.
1 Assignment
0 Petitions
Accused Products
Abstract
A system receives an indication to generate a filter graph representing a user-defined development project. Media sources that are to be used in the user-defined development project are identified and a programming grid is establishing that incorporates a user'"'"'s editing instructions. A matrix switch filter is generated based, at least in part, on the programming grid. The filter graph is assembled and comprises a plurality of individual filters. Buffer size and attribute characteristics are negotiated between an input/output of the matrix switch filter and an input/output of adjacent filters. Negotiated buffers are utilized to communicate media content between the matrix switch filter and adjacent filters by sharing a common buffer between inputs and outputs.
112 Citations
19 Claims
-
1. A computer-readable medium embodying computer-readable instructions thereon which, when executed, implement a method comprising:
-
receiving an indication to generate a filter graph representing a user-defined development project; identifying media sources that are to be used in the user-defined development project; establishing a programming grid that incorporates a user'"'"'s editing instructions; generating a matrix switch filter based, at least in part, on the programming grid, wherein the programming grid identifies which matrix switch filter inputs are to be coupled to which matrix switch filter outputs at particular project times; assembling the filter graph representing the user-defined development project, wherein the filter graph comprises a plurality of individual filters; and negotiating buffer size and attribute characteristics between an input/output of the matrix switch filter and an input/output of adjacent filters, wherein negotiated buffers are utilized to communicate media content between the matrix switch filter and adjacent filters by sharing a common buffer between inputs and outputs; wherein the act of assembling comprises providing a separate buffer for each input and output of each filter within the project, and wherein the method further comprises after and responsive to said act of negotiating, replacing at least a pair of separate adjacent buffers with a single buffer shared therebetween. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A computer-readable medium embodying computer-readable instructions thereon which, when executed, implement a method comprising:
-
providing one or more processing chains that can be utilized to implement a user-defined development project, wherein individual processing chains comprise a plurality of filters; providing a matrix switch, coupled to the one or more processing chains, to recursively pass content received from the one or more processing chains through one or more filters to implement the development project; and negotiating, with the matrix switch, buffer size and attributes between the matrix switch and adjacent filters, wherein the negotiated buffers are utilized to communicate media content between the matrix switch and adjacent filters without requiring a buffer copy operation; wherein the plurality of filters comprises a filter graph having a separate buffer for each input and output of each filter within the project, and wherein the method further comprises after and responsive to said act of negotiating, replacing at least a pair of separate adjacent buffers with a single buffer shared therebetween. - View Dependent Claims (8, 9, 10, 11, 12, 13)
-
-
14. A computer-readable medium embodying computer-readable instructions thereon which, when executed, implement a method comprising:
-
providing a matrix switch object; providing a dynamically determined number of matrix switch object inputs to receive content from one or more processing chains; providing a dynamically determined number of matrix switch object outputs; selectively coupling one or more of the dynamically determined inputs to one or more of the dynamically determined outputs; and negotiating, using the matrix switch object, with filters coupled to each of the dynamically determined inputs and outputs for buffer size and attribute requirements to facilitate communication between filters and within the matrix switch object using a shared buffer of agreed upon size and attribute characteristics; wherein the filters comprise a filter graph having a separate buffer for each input and output of each filter; and wherein the method further comprises after and responsive to said act of negotiating, replacing at least a pair of separate adjacent buffers with a single buffer shared therebetween. - View Dependent Claims (15, 16, 17, 18, 19)
-
Specification