Skip to content

Releases: membraneframework/membrane_core

v1.0.0-rc1

Choose a tag to compare

@FelonEkonom FelonEkonom released this 02 Oct 12:41
fd16779

Here comes the second release candidate for Membrane Core 1.0.0! Compared to v1.0.0-rc0, this release does not contain a lot of changes in API, but it introduces many bug fixes, improvements and optimizations in the Membrane private modules. We wrote a migration guide, helping you in adjusting your code to this version of membrane_core. But now, let's take a look at the summary, of what changes we have just introduced:

Improvements and optimizations in the demands mechanism

Release v1.0.0-rc1 contains a lot of changes in Membrane private modules responsible for managing the backpressure mechanism. The two biggest changes are:

  • Implementation of :push effective flow control in elements containing pads with flow_control: :auto - it allows avoiding work related to the calculation of the value of auto-demand in input pads with flow_contro: :auto, when a pipeline topology allows us to skip it without damage of backpressure mechanism. This change also fixes the problem with toilet overflow error occurring far from the element, which works too slowly.
  • Passing the value of demand using :atomics, instead of message passing - this change is a big performance and memory optimisation and allowed us to make auto-demands more precise in the amount of demanded data.

Support for kino_membrane

This release brings compatibility with kino_membrane, the tool for visualization and introspection of Membrane pipelines in Livebook.

Sending end of stream, even if there was no start of stream before

Since now, we can send end of stream on pads, even if we haven't sent start of stream there yet. Moreover, before unlinking an input pad, every element will always execute handle_end_of_stream for this pad, no matter, if it received start of stream earlier, or not. This will happen before calling handle_pad_removed/3 in the case of dynamic pads and on entering terminating state, in the case of static pads.

Removing c:Membrane.Element.WithInputPads.handle_buffers_batch/4

This release reverts support for this callback, so if you have used it, you have to rewrite your element to use c:Membrane.Element.WithInputPads.handle_buffer/4 instead.

Crash groups in bins

Until now, it was possible, to create a crash group only from the level of pipelines. v1.0.0-rc1 introduces support for doing it also from bins!

All changes

Breaking changes

Non-breaking changes

Bug fixes

New Contributors

Full Changelog: v1.0.0-rc0...v1.0.0-rc1

v0.12.9

Choose a tag to compare

@FelonEkonom FelonEkonom released this 14 Sep 15:01

What's Changed

  • Add :pause_auto_demand and :resume_auto_demand actions. #586
  • Fix process leak in starting clocks. #594
  • Add child exit reason to the supervisor exit reason. #595

Full Changelog: v0.12.8...v0.12.9

v0.12.8

Choose a tag to compare

@FelonEkonom FelonEkonom released this 24 Aug 12:51

What's Changed

  • Move metrics ets creation to stalker by @mat-hek in #589
  • Refactor code related to crash groups and linking mechanism by @FelonEkonom in #574
  • Fix specs for default pipeline functions by @FelonEkonom in #585
  • Fix stream format error message, fix race condition in handling child pad removed by @FelonEkonom in #591

Full Changelog: v0.12.7...v0.12.8

v0.12.7

Choose a tag to compare

@FelonEkonom FelonEkonom released this 21 Jul 11:29

What's Changed

Full Changelog: v0.12.6...v0.12.7

v0.12.6

Choose a tag to compare

@FelonEkonom FelonEkonom released this 21 Jul 09:37
7b4f912

Changes:

  • Implement functionalities needed for integration with membrane_kino_dashboard. #571

Full Changelog: v0.12.5...v0.12.6

v0.12.5

Choose a tag to compare

@FelonEkonom FelonEkonom released this 30 Jun 12:39

Changes:

  • Fix compilation error occurring with Elixir 1.15. #573

Full Changelog: v0.12.4...v0.12.5

v0.12.4

Choose a tag to compare

@FelonEkonom FelonEkonom released this 29 Jun 15:34

What's Changed

Full Changelog: v0.12.3...v0.12.4

v0.11.5

Choose a tag to compare

@FelonEkonom FelonEkonom released this 29 Jun 15:33

What's changed

  • Fix compilation error occuring with Elixir 1.15. #570

Full Changelog: v0.11.4...v0.11.5

v0.12.3

Choose a tag to compare

@FelonEkonom FelonEkonom released this 23 Jun 14:10

What's Changed

  • Fix bug in fields naming in callback contexts. #569
  • Update exit reasons of Membrane Components and their supervisors. #567

Full Changelog: v0.12.2...v0.12.3

v0.12.2

Choose a tag to compare

@FelonEkonom FelonEkonom released this 20 Jun 16:10

What's Changed

  • Fix bug in order of handling actions returned from callbacks.

Full Changelog: v0.12.1...v0.12.2