From fd81036909f1714c95da4fafe6b5a5906f37f3e7 Mon Sep 17 00:00:00 2001 From: Guzpido Date: Sat, 8 Jun 2024 19:43:57 -0300 Subject: [PATCH] GstEnginePipeline: Divide samples and format by channels for buffer duration --- src/engine/gstenginepipeline.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/engine/gstenginepipeline.cpp b/src/engine/gstenginepipeline.cpp index c3166695b..339d755b4 100644 --- a/src/engine/gstenginepipeline.cpp +++ b/src/engine/gstenginepipeline.cpp @@ -1140,7 +1140,7 @@ GstPadProbeReturn GstEnginePipeline::BufferProbeCallback(GstPad *pad, GstPadProb } gst_buffer_unmap(buf, &map_info); buf16 = gst_buffer_new_wrapped(d, buf16_size); - GST_BUFFER_DURATION(buf16) = GST_FRAMES_TO_CLOCK_TIME(samples * sizeof(int16_t) * channels, rate); + GST_BUFFER_DURATION(buf16) = GST_FRAMES_TO_CLOCK_TIME(samples * sizeof(int16_t) / channels, rate); buf = buf16; instance->logged_unsupported_analyzer_format_ = false; @@ -1162,7 +1162,7 @@ GstPadProbeReturn GstEnginePipeline::BufferProbeCallback(GstPad *pad, GstPadProb } gst_buffer_unmap(buf, &map_info); buf16 = gst_buffer_new_wrapped(d, buf16_size); - GST_BUFFER_DURATION(buf16) = GST_FRAMES_TO_CLOCK_TIME(samples * sizeof(int16_t) * channels, rate); + GST_BUFFER_DURATION(buf16) = GST_FRAMES_TO_CLOCK_TIME(samples * sizeof(int16_t) / channels, rate); buf = buf16; instance->logged_unsupported_analyzer_format_ = false; @@ -1185,7 +1185,7 @@ GstPadProbeReturn GstEnginePipeline::BufferProbeCallback(GstPad *pad, GstPadProb } gst_buffer_unmap(buf, &map_info); buf16 = gst_buffer_new_wrapped(s16, buf16_size); - GST_BUFFER_DURATION(buf16) = GST_FRAMES_TO_CLOCK_TIME(samples * sizeof(int16_t) * channels, rate); + GST_BUFFER_DURATION(buf16) = GST_FRAMES_TO_CLOCK_TIME(samples * sizeof(int16_t) / channels, rate); buf = buf16; instance->logged_unsupported_analyzer_format_ = false; @@ -1210,7 +1210,7 @@ GstPadProbeReturn GstEnginePipeline::BufferProbeCallback(GstPad *pad, GstPadProb } gst_buffer_unmap(buf, &map_info); buf16 = gst_buffer_new_wrapped(s16, buf16_size); - GST_BUFFER_DURATION(buf16) = GST_FRAMES_TO_CLOCK_TIME(samples * sizeof(int16_t) * channels, rate); + GST_BUFFER_DURATION(buf16) = GST_FRAMES_TO_CLOCK_TIME(samples * sizeof(int16_t) / channels, rate); buf = buf16; instance->logged_unsupported_analyzer_format_ = false;