Patent ID: 7080380

Claim:
A computing device comprising: one or more processors; one or more computer-readable media; computer-readable instructions embodied on the one or more computer-readable media which, when executed by the one or more processors, 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; based, at least in part, on the identified media sources, exposing sources, transform filters and rendering filters configured for use 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 including said matrix switch filter, transform filters and rendering filters; and instructing filters of the filter graph to negotiate buffer size and attribute characteristics between 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.