View Source Changelog
1.2.0
- Add
:max_instancesoption for dynamic pads. #876 - Implement
Membrane.Connector. #904 - Implememnt diamonds detection. #909
- Incorporate
Membrane.Funnel,Membrane.TeeandMembane.Fake.Sink. #922 - Added new, revised Telemetry system #905
1.1.2
- Add new callback
handle_child_terminated/3along with new assertions. #894 - Remove 'failed to insert a metric' stalker warning. #849
1.1.1
- Fix 'table identifier does not refer to an existing ETS table' error when inserting metrics into the observability ETS. #835
- Fix bug occuring in distributed atomic implementation. #837
1.1.0
- Add new callbacks
handle_child_setup_completed/3andhandle_child_playing/3in Bins and Pipelines. #801 - Deprecate
handle_spec_started/3callback in Bins and Pipelines. #708 - Handle buffers from input pads having
flow_control: :autoonly if demand on all output pads havingflow_control: :autois positive. #693 - Set
:ratiodependency version to"~> 3.0 or ~> 4.0". #780 - Deprecate
Membrane.Testing.Pipeline.message_child/3. IntroduceMembrane.Testing.Pipeline.notify_child/3instead. #779
1.0.1
- Specify the order in which state fields will be printed in the error logs. #614
- Fix clock selection #626
- Log messages in the default handle_info implementation #680
- Fix typespecs in Membrane.UtilitySupervisor #681
- Improve callback return types and group actions types #702
- Add
crash_reasontohandle_crash_group_down/3callback context in bins and pipelines. #720
1.0.0
- Introduce
:remove_linkaction in pipelines and bins. - Add children groups - a mechanism that allows refering to multiple children with a single identifier.
- Rename
remove_childaction intoremove_childrenand allow for removing a children group with a single action. - Add an ability to spawn anonymous children.
- Replace
Membrane.Time.round_to_<unit_name>withMembrane.Time.as_<unit_name>/2with second argument equal:round. RenameMembrane.Time.round_to_timebasetoMembrane.Time.divide_by_timebase/2. #494 - Remove
:playbackaction. Introduce:setupaction. #496 - Add
Membrane.Testing.Pipeline.get_child_pid/2. #497 - Make callback contexts to be maps. #504
- All Membrane Elements can be compatible till now on - pads working in
:pullmode, handling differentdemand_units, can be now linked. - Output pads working in
:pullmode should have theirdemand_unitspecified. If case it's not available, it's assumed that the pad handles demands in both:bytesand:buffersunits. - Rename callbacks
handle_process/4andhandle_write/4tohandle_buffer/4in #506 - The flow control of the pad is now set with a single
:flow_controloption instead of:modeand:demand_modeoptions. - Remove _t suffix from types #509
- Implement automatic demands in Membrane Sinks and Endpoints. #512
- Add
handle_child_pad_removed/4callback in Bins and Pipelines. #513 - Introduce support for crash groups in Bins. #521
- Remove
assert_pipeline_play/2fromMembrane.Testing.Assertions. #528 - Make sure enumerable with all elements being
Membrane.Buffer.t(), passed as:outputparameter forMembrane.Testing.Sourcewon't get rewrapped inMembrane.Buffer.t()struct. - Implement
Membrane.Debug.FilterandMembrane.Debug.Sink. #552 - Add
:pause_auto_demandand:resume_auto_demandactions. #586 - Send
:end_of_stream, even if it is not preceded by:start_of_stream. #557 - Fix process leak in starting clocks. #594
- Add child exit reason to the supervisor exit reason. #595
- Remove default implementation of
start_/2,start_link/2andterminate/2in modules usingMembrane.Pipeline. #598 - Remove callback Membrane.Element.WithInputPads.handle_buffers_batch/4. #601
- Sort component state fields in the error logs in the order from the most to the least important. #614
0.11.0
- Separate elementname and pad arguments in handle_element{start, end}_of_stream signature #219
- Refine communication between parent and its children #270
- Add
handle_call/3callback in the pipeline, as well as a:replyand:reply_toactions. Renamehandle_other/3callback intohandle_info/3#334 - Add
Membrane.FilterAggregatorthat allows to run multiple filters sequentially within one process. #355 - Log info about element's playback state change as debug, not as debug_verbose. #430
- Rename
Membrane.Time.to_<unit name>/1intoMembrane.Time.round_to_<unit name>/1to indicate that the result will be rounded. MakeMembrane.Time.<plural unit name>/1accept%Ratio{}as an argument. AddMembrane.Time.round_to_timebasefunction. - New
specaction syntax - the structure of pipeline is now defined with the use ofMembrane.ChildrenSpec - Rename
:capsto:stream_format. - Use Elixir patterns as
:accepted_formatin pad definition. - Delete
:okfrom tuples returned from callbacks. - Remove
:typefrom specs passed todef_options/1macro in bins and elements. - Add
Membrane.Testing.MockResourceGuard.
0.10.0
- Remove all deprecated stuff #399
- Make
Membrane.Pipeline.{prepare, play, stop}deprecated and add:playbackaction instead - Make
Membrane.Pipeline.stop_and_terminatedeprecated and addMembrane.Pipeline.terminate/2instead - Add
Membrane.RemoteControlled.Pipeline- a basic implementation of aMembrane.Pipelinethat can be spawned and controlled by an external process #366 - Disallow sending buffers without sending caps first #341
- Refine the
Membrane.Testing.PipelineAPI - deprecate theMembrane.Testing.Pipeline.Optionsusage, use keyword list as options inMembrane.Testing.Pipeline.start/1andMembrane.Testing.Pipeline.start_link/1
0.9.0
- Automatic demands #313
- Stop forwarding notifications by default in bins #358
- More fine-grained control over emitted metrics #365
### PRs not influencing public API:
- Added log metadata when reporting init in telemetry #376
- Fix generation of pad documentation inside an element #377
- Leaving static pads unlinked and transiting to a playback state other than
:stoppedwill result in runtime error (previously only a warning was printed out). #389 - It is possible now to assert on crash group down when using Testing.Pipeline. #391
0.8.2
- Fixed PadAdded spec #359
PRs not influencing public API:
- Prevent internal testing notifications from reaching pipeline module #350
- Fix unknown node error on distribution changes #352
- Add new type of element,
Membrane.Endpoint#382
0.8.1
- allow telemetry in version 1.0 only #347
PRs not influencing public API:
0.8.0
Release notes:
- PTS and DTS timestamps were added to
Membrane.Bufferstructure explicitly. Timestamps should no longer live inMembrane.Buffer.metadatafield #335.