View Source Membrane.PrecompiledDependencyProvider (Membrane Precompiled Dependency Provider v0.2.2)

Module providing URLs for precompiled dependencies used by Membrane plugins.

Dependencies that are fully located in the repositories of membraneframework-precompiled will be referred to as generic. Otherwise they will be referred to as non-generic.

Summary

Types

An atom representing a dependency.

List of desired versions of the precompiled dependencies.

Functions

Get URL of a precompiled build of given dependency for a platform from which this function is being called.

Types

Link to this type

precompiled_dependency()

View Source
@type precompiled_dependency() :: atom()

An atom representing a dependency.

Dependency can be non-generic, which is handled in get_dependency_url/2, such as :ffmpeg, or generic, which has a corresponding repository in https://github.com/membraneframework-precompiled organization, such as :opus or :libvpx.

@type version_config() :: [{precompiled_dependency(), String.t()}]

List of desired versions of the precompiled dependencies.

If an application requires specific versions of used precompiled dependencies, they can be specified by passing such list to a Config.config/3 function with :membrane_precompiled_dependency_provider root key and :versions key, like so

config :membrane_precompiled_dependency_provider, :versions,
  ffmpeg: "6.0.1",
  opus: "1.5.2"

Functions

Link to this function

get_dependency_url(dependency, options \\ [])

View Source
@spec get_dependency_url(precompiled_dependency(), [{:version, String.t()}]) ::
  String.t() | nil

Get URL of a precompiled build of given dependency for a platform from which this function is being called.

A specific version of the dependency can be provided with :version option or through config (see version_config/0). If provided in both ways, the config value will be taken. For generic dependencies this version needs to be the same as a release name from the repository of the precompiled dependency, but without the leading "v". By default the latest version is chosen.