membrane_core
membrane_core copied to clipboard
The core of the Membrane Framework, advanced multimedia processing framework
Design doc: https://membraneframework.atlassian.net/wiki/spaces/MEMBRANEFR/pages/8978457/Playback+states+refactor TODO: - [ ] Espec tests - [ ] FilterAggregator - [ ] handle_terminate_graceful
The following functions won't be callbacks anymore: * Membrane.Element.Base.[membrane_clock?](https://hexdocs.pm/membrane_core/Membrane.Element.Base.html#c:membrane_clock?/0) * Membrane.Element.Base.[membrane_element_type](https://hexdocs.pm/membrane_core/Membrane.Element.Base.html#c:membrane_element_type/0) * Membrane.Element.Base.[membrane_element?](https://hexdocs.pm/membrane_core/Membrane.Element.Base.html#c:membrane_element?/0) * Membrane.Element.Base.[membrane_pads](https://hexdocs.pm/membrane_core/Membrane.Element.Base.html#c:membrane_pads/0) * Membrane.Bin.membrane_bin? * Membrane.Pipeline.membrane_pipeline?
This PR updates the Ratio dependency do 3.0 and updates the code accordingly to the changes in API. This PR should be merged once we decide to update Ratio dependency...
_Originally posted by @mat-hek in https://github.com/membraneframework/membrane_core/pull/355#discussion_r873556771_ FilterAggregator can possibly reuse some part of the ActionHandler. That may require refactoring the said handler. MC-52
On the contribution page [here](https://hexdocs.pm/membrane_core/contributing.html) and [here](https://github.com/membraneframework/membrane_core/blob/master/CONTRIBUTING.md) there is a link [coding style guide](https://github.com/membraneframework/membrane_core/wiki/Coding-style-guide) which points to non existing wiki page.
do_handle_action can only return an error on * [ ] `Parent.ChildLifeController.handle_forward` - it has an error that could be replaced with `raise` (`lib/membrane/core/parent/child_life_controller.ex:86`) * [ ] `Parent.ChildLifeController.handle_remove_child` that ultimately can...
Some tests for pipeline and element are a bit outdated. They should be revisited and Espec ones should be rewritten to ExUnit. We should consider adding a code coverage tool...
Currently it kills entire pipeline, so crash groups can't help
`handle_stopped_to_terminating/2` is described as a part of an API in the documentation: https://hexdocs.pm/membrane_core/Membrane.Pipeline.html#c:handle_stopped_to_terminating/2 but the implementation looks as follows: https://github.com/membraneframework/membrane_core/blob/f7ff09f929d26c455cc2b3d117c8ddf428f162d3/lib/membrane/core/playback_handler.ex#L82 and this callback never gets called. There are no tests...