# `Membrane.FilterAggregator`
[🔗](https://github.com/membraneframework/membrane-core/blob/v1.3.0/lib/membrane/filter_aggregator.ex#L1)

> This module is deprecated. This module is deprecated, if you need to aggregate children into a single component, use Membrane.Bin.

An element allowing to aggregate many filters within one Elixir process.

Warning: This element is still in experimental phase

This element supports only filters with one input and one output
with following restrictions:
* not using timers
* not relying on received messages
* not expecting any events coming from downstream elements
* their pads have to be named `:input` and `:output`
* their pads cannot use manual demands
* the first filter must make demands in buffers

## Element options

Passed via struct `t:Membrane.FilterAggregator.t/0`

- `filters`  

  ```
  [{Membrane.Child.name(), module() | struct()}]
  ```
  
  ***Required***  
  A list of filters applied to incoming stream

## Pads

### `:input`

Accepted formats:
```
_any
```

Direction: | `:input`
Availability: | `:always`
Flow control: | `:auto`

### `:output`

Accepted formats:
```
_any
```

Direction: | `:output`
Availability: | `:always`
Flow control: | `:auto`

# `t`

```elixir
@type t() :: %Membrane.FilterAggregator{
  filters: [{Membrane.Child.name(), module() | struct()}]
}
```

Struct containing options for `Membrane.FilterAggregator`

# `options`

```elixir
@spec options() :: keyword()
```

Returns description of options available for this module

---

*Consult [api-reference.md](api-reference.md) for complete listing*
