From 2b280de663bc53b4f37dbb3f875cd630bad22c82 Mon Sep 17 00:00:00 2001 From: Mark Furneaux Date: Sun, 8 Jul 2018 22:15:57 -0400 Subject: [PATCH] Attempt to fix track change hang When switching between tracks with different sample rates, the probe queue blocks before the pipeline can emit EOS. This prevents the track change from proceeding without manual intervention. This appears to be because the queue element doesn't handle the rate change correctly (either due to buffer length, or cap negotiation). The queue2 element however does handle this without blocking indefinitely. --- src/engines/gstenginepipeline.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/engines/gstenginepipeline.cpp b/src/engines/gstenginepipeline.cpp index add3f27e9..a47d32aa6 100644 --- a/src/engines/gstenginepipeline.cpp +++ b/src/engines/gstenginepipeline.cpp @@ -276,7 +276,7 @@ bool GstEnginePipeline::Init() { audioconvert_ = engine_->CreateElement("audioconvert", audiobin_); tee = engine_->CreateElement("tee", audiobin_); - probe_queue = engine_->CreateElement("queue", audiobin_); + probe_queue = engine_->CreateElement("queue2", audiobin_); probe_converter = engine_->CreateElement("audioconvert", audiobin_); probe_sink = engine_->CreateElement("fakesink", audiobin_);