@@ -270,7 +270,12 @@ defmodule Membrane.FFmpeg.SWResample.Converter do
270270 filter_pts_queue ( state , output_duration , flush_trigger , nil )
271271 end
272272
273- defp filter_pts_queue ( state , output_duration , flush_trigger , target_pts_acc ) do
273+ defp filter_pts_queue (
274+ % { pts_queue: [ _ | _ ] } = state ,
275+ output_duration ,
276+ flush_trigger ,
277+ target_pts_acc
278+ ) do
274279 [ { out_pts , expected_duration } | rest ] = state . pts_queue
275280
276281 cond do
@@ -287,24 +292,24 @@ defmodule Membrane.FFmpeg.SWResample.Converter do
287292 output_duration = output_duration - expected_duration
288293 pts = get_target_pts ( target_pts_acc , out_pts )
289294
290- cond do
291- rest != [ ] ->
292- filter_pts_queue ( % { state | pts_queue: rest } , output_duration , flush_trigger , pts )
293-
294- flush_trigger ->
295- { state , state . last_valid_pts }
296-
297- true ->
298- Membrane.Logger . warning ( "Converter returned more data than expected" )
299- { state , state . last_valid_pts }
300- end
295+ filter_pts_queue ( % { state | pts_queue: rest } , output_duration , flush_trigger , pts )
301296
302297 output_duration == expected_duration ->
303298 pts = get_target_pts ( target_pts_acc , out_pts )
304299 { % { state | pts_queue: rest , last_valid_pts: pts } , pts }
305300 end
306301 end
307302
303+ defp filter_pts_queue ( state , _output_duration , flush_trigger , _target_pts_acc )
304+ when flush_trigger == true do
305+ { state , state . last_valid_pts }
306+ end
307+
308+ defp filter_pts_queue ( state , _output_duration , _flush_trigger , _target_pts_acc ) do
309+ Membrane.Logger . warning ( "Converter returned more data than expected" )
310+ { state , state . last_valid_pts }
311+ end
312+
308313 defp get_target_pts ( target_pts_acc , out_pts ) do
309314 if is_nil ( target_pts_acc ) do
310315 out_pts
0 commit comments