# very WIP
defmodule Ticker do
use Membrane.Filter
alias Membrane.RawAudio
def_input_pad :input, accepted_format: RawAudio, flow_control: :auto
def_output_pad :output, accepted_format: RawAudio, flow_control: :auto
def handle_init(ctx, options) do
{[], %{sample_count: 0}}
end
def handle_buffer(:input, buffer, ctx, state) do
stream_format = ctx.pads.input.stream_format
sample_rate = stream_format.sample_rate
sample_size = RawAudio.sample_size(stream_format)
state = Map.put(state, :sample_count, state.sample_count + Membrane.Payload.size(buffer.payload))
elapsed_time = state.sample_count / (sample_rate * sample_size * 2)
IO.inspect(elapsed_time)
{[buffer: {:output, buffer}], state}
end
end
# very WIP
defmodule Ticker do
use Membrane.Filter
alias Membrane.RawAudio
def_input_pad :input, accepted_format: RawAudio, flow_control: :auto
def_output_pad :output, accepted_format: RawAudio, flow_control: :auto
def handle_init(ctx, options) do
{[], %{sample_count: 0}}
end
def handle_buffer(:input, buffer, ctx, state) do
stream_format = ctx.pads.input.stream_format
sample_rate = stream_format.sample_rate
sample_size = RawAudio.sample_size(stream_format)
state = Map.put(state, :sample_count, state.sample_count + Membrane.Payload.size(buffer.payload))
elapsed_time = state.sample_count / (sample_rate * sample_size * 2)
IO.inspect(elapsed_time)
{[buffer: {:output, buffer}], state}
end
end