# Changelog
# 0.11.2
* Fix bug in Membrane.ChildrenSpec.child/3 spec.
# 0.11.1
* Fix subprocess supervisor crash when a child fails in handle_init [#488](https://github.com/membraneframework/membrane_core/pull/488)
* Fix bug in pads docs generation [#490](https://github.com/membraneframework/membrane_core/pull/490)
* Fix a deadlock when pipeline spawns a spec entailing two dependent specs in a bin [#484](https://github.com/membraneframework/membrane_core/pull/484)
* Implement running all cleanup functions in ResourceGuard [#477](https://github.com/membraneframework/membrane_core/pull/477)
* Stop all timers, when componenet enters zombie mode [#485](https://github.com/membraneframework/membrane_core/pull/485)
## 0.11.0
* Separate element_name and pad arguments in handle_element_{start, end}_of_stream signature [#219](https://github.com/membraneframework/membrane_core/issues/219)
* Refine communication between parent and its children [#270](https://github.com/membraneframework/membrane_core/issues/270)
* Add `handle_call/3` callback in the pipeline, as well as a `:reply` and `:reply_to` actions. Rename `handle_other/3` callback into `handle_info/3` [#334](https://github.com/membraneframework/membrane_core/issues/334)
* Add `Membrane.FilterAggregator` that allows to run multiple filters sequentially within one process. [#355](https://github.com/membraneframework/membrane_core/pull/355)
* Log info about element's playback state change as debug, not as debug_verbose. [#430](https://github.com/membraneframework/membrane_core/pull/430)
* Rename `Membrane.Time.to_<unit name>/1` into `Membrane.Time.round_to_<unit name>/1` to indicate that the result will be rounded. Make `Membrane.Time.<plural unit name>/1` accept `%Ratio{}` as an argument. Add `Membrane.Time.round_to_timebase/2` function.
* New `spec` action syntax - the structure of pipeline is now defined with the use of `Membrane.ChildrenSpec`
* Rename `:caps` to `:stream_format`.
* Use Elixir patterns as `:accepted_format` in pad definition.
* Delete `:ok` from tuples returned from callbacks
* Remove `:type` from specs passed to `def_options/1` macro in bins and elements.
* Add `Membrane.Testing.MockResourceGuard`
## 0.10.0
* Remove all deprecated stuff [#399](https://github.com/membraneframework/membrane_core/pull/399)
* Make `Membrane.Pipeline.{prepare, play, stop}` deprecated and add `:playback` action instead
* Make `Membrane.Pipeline.stop_and_terminate` deprecated and add `Membrane.Pipeline.terminate/2` instead
* Add `Membrane.RemoteControlled.Pipeline` - a basic implementation of a `Membrane.Pipeline` that </br>
can be spawned and controlled by an external process [#366](https://github.com/membraneframework/membrane_core/pull/366)
* Disallow sending buffers without sending caps first [#341](https://github.com/membraneframework/membrane_core/issues/341)
* Refine the `Membrane.Testing.Pipeline` API - deprecate the `Membrane.Testing.Pipeline.Options` usage, use keyword list as options in `Membrane.Testing.Pipeline.start/1` and `Membrane.Testing.Pipeline.start_link/1`
## 0.9.0
* Automatic demands [#313](https://github.com/membraneframework/membrane_core/pull/313)
* Stop forwarding notifications by default in bins [#358](https://github.com/membraneframework/membrane_core/pull/358)
* More fine-grained control over emitted metrics [#365](https://github.com/membraneframework/membrane_core/pull/365)
### PRs not influencing public API:
* Added log metadata when reporting init in telemetry [#376](https://github.com/membraneframework/membrane_core/pull/376)
* Fix generation of pad documentation inside an element [#377](https://github.com/membraneframework/membrane_core/pull/377)
* Leaving static pads unlinked and transiting to a playback state other than `:stopped` will result
in runtime error (previously only a warning was printed out). [#389](https://github.com/membraneframework/membrane_core/pull/389)
* It is possible now to assert on crash group down when using Testing.Pipeline. [#391](https://github.com/membraneframework/membrane_core/pull/391)
## 0.8.2
* Fixed PadAdded spec [#359](https://github.com/membraneframework/membrane_core/pull/359)
### PRs not influencing public API:
* Prevent internal testing notifications from reaching pipeline module [#350](https://github.com/membraneframework/membrane_core/pull/350)
* Fix unknown node error on distribution changes [#352](https://github.com/membraneframework/membrane_core/pull/352)
* Add new type of element, `Membrane.Endpoint` [#382](https://github.com/membraneframework/membrane_core/pull/382)
## 0.8.1
* allow telemetry in version 1.0 only [#347](https://github.com/membraneframework/membrane_core/pull/347)
### PRs not influencing public API:
* fix action enforcing CHANGELOG update with PR [#345](https://github.com/membraneframework/membrane_core/pull/345)
* Release membrane_core v0.8.1 [#348](https://github.com/membraneframework/membrane_core/pull/348)
## 0.8.0
### Release notes:
* PTS and DTS timestamps were added to `Membrane.Buffer` structure explicitly. Timestamps should no longer live in `Membrane.Buffer.metadata` field [#335](https://github.com/membraneframework/membrane_core/pull/335).
### PRs not influencing public API:
* add CHANGELOG update verification [#340](https://github.com/membraneframework/membrane_core/pull/340)
* action enforcing changelog fix [#342](https://github.com/membraneframework/membrane_core/pull/342)
* bump version to 0.8.0 [#344](https://github.com/membraneframework/membrane_core/pull/344)