# US 7,412,704 B2 · Generating and managing filter strings in a filter graph

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 7,412,704 B2
- Document ID: US7412704B2
- Status: Granted
- Kind: B2
- Application number: 11/280,503
- Filed: 2005-11-16
- Published: 2006-03-30
- Granted: 2008-08-12
- Earliest claimed: 2000-12-06
- Assignees: Microsoft Corporation
- Inventors: Daniel J. Miller; Eric H. Rudolph
- Web page: https://patentgrep.com/patent/US7412704B2

## CPC

- G11B 27/034: on discs (G11B27/036, G11B27/038 take precedence)
- G11B: INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER (recording measured values in a way that does not require playback through a transducer G01D9/00; recording or playback apparatus using mechanically marked tape, e.g. punched paper tape, or using unit records, e.g. punched or magnetically marked cards G06K; transferring data from one type of record carrier to another G06K1/18; circuits for coupling output of reproducer to radio receiver H04B1/20; gramophone pick-ups or like acoustic electromechanical transducers or circuits therefor H04R)

## Abstract

A source chain is generated for use in a development project, and cached when it is not currently required in the development project.

## Claims

### Claim 1

A system for processing of media content, comprising:
a processor to execute a development project
means for loading one or more source processing chains to support execution of a development project, the source processing chains comprising a series of filters to process and render media content, wherein means for loading of the one or more processing chains comprises:
means for identifying which source(s) will be required to support execution of the next M seconds of the development project, wherein M is at least as long as necessary to construct a processing chain;
means for searching one or more cache(s) to determine whether the source processing chain(s) associated with the source(s) are available within the one or more cache(s); and
means for retrieving the one or more processing chains from a memory location denoted by an associated one or more pointers in the cache for integration with the development project; and
means for determining whether each of the one or more processing chains will be subsequently required during execution of this or another development project and, if so, means for caching those filter chains which will be subsequently required.

### Claim 2 (depends on 1)

The system of claim 1, further comprising:
means for determining whether processing chain(s) retrieved from the cache(s) satisfy processing requirements of the development project; and
means for modifying one or more objects of one or more of the processing chain(s) retrieved from the cache(s) that do not satisfy the processing requirements of the development project.

### Claim 3 (depends on 2)

The system of claim 2, wherein said means for modifying one or more objects may comprise one or more of means for adding processing objects to the processing chain(s), means for removing one or more processing objects from the processing chain(s), or means for changing one or more operating attributes of one or more processing objects within the processing chain(s).

### Claim 4 (depends on 1)

The system of claim 1, wherein said means for determining whether a processing chain will subsequently be required comprises:
means for determining whether any future calls to a source coupled to the processing chain exist within this development project; and
means for determining whether any future calls to a source coupled to the processing chain may be received during execution of future development projects.

### Claim 5 (depends on 4)

The system of claim 4, wherein it is assumed that each processing chain may well be required to support future execution of this or a future development project.

### Claim 6 (depends on 1)

The system of claim 1, wherein said means for caching the processing chain comprises:
means for assigning the processing chain a unique identifier; and
means for storing the unique identifier along with a pointer to a memory location occupied by the processing chain in a cache.

### Claim 7 (depends on 6)

A method according to claim 6, wherein the unique identifier is one or more of a source file handle, a source file name, a random numeric identifier uniquely assigned to the processing chain, a graphical icon, an alphanumeric character, and the like.

### Claim 8

One or more computer-readable having computer-readable instructions thereon which, when executed, implement a method comprising:
loading one or more source processing chains to support execution of a development project, the source processing chains comprising a series of filters to process and render media content, wherein loading of the one or more processing chains comprises:
identifying which source(s) will be required to support execution of the next M seconds of the development project, wherein M is at least as long as necessary to construct a processing chain;
searching one or more cache(s) to determine whether the source processing chain(s) associated with the source(s) are available within the one or more cache(s); and
retrieving the one or more processing chains from a memory location denoted by an associated one or more pointers in the cache for integration with the development project; and
determining whether each of the one or more processing chains will be subsequently required during execution of this or another development project and, if so, caching those filter chains which will be subsequently required, wherein determining whether a processing chain will subsequently be required comprises:
determining whether any future calls to a source coupled to the processing chain exist within this development project; and
determining whether any future calls to a source coupled to the processing chain may be received during execution of future development projects.

### Claim 9 (depends on 8)

The method of claim 8, further comprising:
determining whether processing chain(s) retrieved from the cache(s) satisfy processing requirements of the development project; and
modifying one or more objects of one or more of the processing chain(s) retrieved from the cache(s) that do not satisfy the processing requirements of the development project.

### Claim 10 (depends on 9)

The method of claim 9, wherein modifying one or more objects may comprise one or more of adding processing objects to the processing chain(s), removing one or more processing objects from the processing chain(s), or changing one or more operating attributes of one or more processing objects within the processing chain(s).

### Claim 11 (depends on 8)

The method of claim 8, wherein it is assumed that each processing chain may well be required to support future execution of this or a future development project.

### Claim 12 (depends on 8)

The method of claim 8, wherein caching the processing chain comprises:
assigning the processing chain a unique identifier; and
storing the unique identifier along with a pointer to a memory location occupied by the processing chain in a cache.

### Claim 13 (depends on 12)

The method of claim 12, wherein the unique identifier is one or more of a source file handle, a source file name, a random numeric identifier uniquely assigned to the processing chain, a graphical icon, an alphanumeric character, and the like.
