@@ -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
8281end
0 commit comments