Packages
vk video plugin for Membrane Framework
Retired package: Release invalid - Native code was missing in the release
Current section
Files
Jump to
Current section
Files
lib/native.ex
defmodule Membrane.VKVideo.Native do
@moduledoc false
use Rustler, otp_app: :membrane_vk_video_plugin, crate: :vkvideo
@type t :: reference()
@type raw_frame :: %{
payload: binary(),
pts: non_neg_integer() | nil,
width: non_neg_integer(),
height: non_neg_integer()
}
@type encoded_frame :: %{
payload: binary(),
pts: non_neg_integer() | nil
}
@spec create_device() :: t() | no_return()
def create_device(), do: :erlang.nif_error(:nif_not_loaded)
@spec new_decoder(t()) :: t() | no_return()
def new_decoder(_device), do: :erlang.nif_error(:nif_not_loaded)
@spec decode(t(), binary(), pts_ns :: non_neg_integer() | nil) ::
[raw_frame()] | no_return()
def decode(_decoder, _frame, _pts \\ nil), do: :erlang.nif_error(:nif_not_loaded)
@spec flush_decoder(t()) ::
[raw_frame()] | no_return()
def flush_decoder(_decoder), do: :erlang.nif_error(:nif_not_loaded)
@spec new_encoder(
t(),
non_neg_integer(),
non_neg_integer(),
{non_neg_integer(), non_neg_integer()},
:low_latency | :high_quality,
:encoder_default
| :disabled
| {:variable_bitrate, Membrane.VKVideo.Encoder.VariableBitrate.t()}
| {:constant_bitrate, Membrane.VKVideo.Encoder.ConstantBitrate.t()}
) :: t() | no_return()
def new_encoder(_device, _width, _height, _framerate, _tune, _rate_control),
do: :erlang.nif_error(:nif_not_loaded)
@spec encode(t(), binary(), pts_ns :: non_neg_integer() | nil) ::
encoded_frame() | no_return()
def encode(_encoder, _raw_frame, _pts_ns \\ nil), do: :erlang.nif_error(:nif_not_loaded)
@spec destroy(t()) :: :ok
def destroy(_resource), do: :erlang.nif_error(:nif_not_loaded)
@spec new_transcoder(
t(),
[Membrane.VKVideo.Transcoder.OutputSpec.t()],
{non_neg_integer(), pos_integer()}
) ::
t() | no_return()
def new_transcoder(_device, _output_specs, _approx_framerate),
do: :erlang.nif_error(:nif_not_loaded)
@spec transcode(t(), binary(), non_neg_integer() | nil) ::
[[encoded_frame()]] | no_return()
def transcode(_transcoder, _payload, _pts_ns \\ nil), do: :erlang.nif_error(:nif_not_loaded)
@spec flush_transcoder(t()) :: [[encoded_frame()]] | no_return()
def flush_transcoder(_transcoder), do: :erlang.nif_error(:nif_not_loaded)
end