Skip to content

Commit 297c33d

Browse files
authored
Merge pull request #16 from membraneframework/add_timestamps_in_silence_generator
Add timestamps to generated buffers in silence generator
2 parents 3866d84 + 18e2fce commit 297c33d

3 files changed

Lines changed: 12 additions & 13 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ The package can be installed by adding `membrane_generator_plugin` to your list
1515
```elixir
1616
def deps do
1717
[
18-
{:membrane_generator_plugin, "~> 0.6.0"}
18+
{:membrane_generator_plugin, "~> 0.7.0"}
1919
]
2020
end
2121
```

lib/silence_generator.ex

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -59,24 +59,23 @@ defmodule Membrane.SilenceGenerator do
5959
do_handle_demand(time, state)
6060
end
6161

62-
defp do_handle_demand(time, %{caps: caps, duration: :infinity} = state) do
63-
buffer = %Buffer{payload: RawAudio.silence(caps, time)}
64-
{{:ok, buffer: {:output, buffer}}, state}
62+
defp do_handle_demand(
63+
time,
64+
%{caps: caps, duration: :infinity, passed_time: passed_time} = state
65+
) do
66+
buffer = %Buffer{payload: RawAudio.silence(caps, time), pts: passed_time}
67+
{{:ok, buffer: {:output, buffer}}, %{state | passed_time: passed_time + time}}
6568
end
6669

6770
defp do_handle_demand(time, state) do
6871
%{caps: caps, duration: duration, passed_time: passed_time} = state
6972

7073
if passed_time + time < duration do
71-
buffer = %Buffer{payload: RawAudio.silence(caps, time)}
72-
state = %{state | passed_time: passed_time + time}
73-
74-
{{:ok, buffer: {:output, buffer}}, state}
74+
buffer = %Buffer{payload: RawAudio.silence(caps, time), pts: passed_time}
75+
{{:ok, buffer: {:output, buffer}}, %{state | passed_time: passed_time + time}}
7576
else
76-
buffer = %Buffer{payload: RawAudio.silence(caps, duration - passed_time)}
77-
state = %{state | passed_time: duration}
78-
79-
{{:ok, buffer: {:output, buffer}, end_of_stream: :output}, state}
77+
buffer = %Buffer{payload: RawAudio.silence(caps, duration - passed_time), pts: passed_time}
78+
{{:ok, buffer: {:output, buffer}, end_of_stream: :output}, %{state | passed_time: duration}}
8079
end
8180
end
8281
end

mix.exs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
defmodule Membrane.Generator.Plugin.Mixfile do
22
use Mix.Project
33

4-
@version "0.6.0"
4+
@version "0.7.0"
55
@github_url "https://github.com/membraneframework/membrane_generator_plugin"
66

77
def project do

0 commit comments

Comments
 (0)