ExCubecl.NIF (ExCubecl v0.8.0)

Copy Markdown View Source

NIF stubs for the CubeCL Rust backend.

Each function delegates to the Rust NIF implementation. If the NIF is not loaded, returns {:error, :nif_not_loaded}.

Summary

Types

result(t)

@type result(t) :: {:ok, t} | {:error, term()}

Functions

buffer_dtype(buffer)

@spec buffer_dtype(reference()) :: result(String.t())

buffer_new(data, shape, dtype)

@spec buffer_new(binary(), [non_neg_integer()], String.t()) :: result(reference())

buffer_read(buffer)

@spec buffer_read(reference()) :: result(binary())

buffer_shape(buffer)

@spec buffer_shape(reference()) :: result([non_neg_integer()])

buffer_size(buffer)

@spec buffer_size(reference()) :: result(non_neg_integer())

device_count()

@spec device_count() :: result(non_neg_integer())

device_info()

@spec device_info() :: result(map())

kernel_list()

@spec kernel_list() :: result([String.t()])

kernel_run(name, inputs, output, params)

@spec kernel_run(String.t(), [reference()], reference(), map()) ::
  result(non_neg_integer())

media_close(source)

@spec media_close(reference()) :: :ok | {:error, term()}

media_open(path)

@spec media_open(String.t()) :: result(reference())

media_read_audio_samples(source)

@spec media_read_audio_samples(reference()) :: result(map())

media_read_video_frame(source)

@spec media_read_video_frame(reference()) :: result(map())

media_streams(source)

@spec media_streams(reference()) :: result(list())

pipeline_add(pipeline_id, name, inputs, output, params)

@spec pipeline_add(non_neg_integer(), String.t(), [reference()], reference(), map()) ::
  result(non_neg_integer())

pipeline_free(pipeline_id)

@spec pipeline_free(non_neg_integer()) :: :ok | {:error, term()}

pipeline_new()

@spec pipeline_new() :: result(non_neg_integer())

pipeline_run(pipeline_id)

@spec pipeline_run(non_neg_integer()) :: result(non_neg_integer())

poll(command_id)

@spec poll(non_neg_integer()) :: result(:completed | :pending | :failed)

submit(command)

@spec submit(String.t()) :: result(non_neg_integer())

transcode_finish(encoder)

@spec transcode_finish(reference()) :: result(map())

transcode_start(path, opts)

@spec transcode_start(String.t(), map()) :: result(reference())

transcode_write_audio(encoder, samples)

@spec transcode_write_audio(reference(), reference()) :: :ok | {:error, term()}

transcode_write_video(encoder, frame)

@spec transcode_write_video(reference(), reference()) :: :ok | {:error, term()}

wait(command_id)

@spec wait(non_neg_integer()) :: :ok | {:error, term()}