Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/GStreamer/gstreamer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>2021-07-23 17:20:20 +0300
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>2021-07-28 12:47:03 +0300
commit97601e49cb84bd0bbcbb8b72bbadbee13615a8c7 (patch)
tree0e935a4d8c2c21e953b5b9bc9ecf577d273d4529
parent408a3bfcf2f81b5ab3e9dc479e13367885301480 (diff)
input-selector: Use proper segments when cleaning cached buffers
We need to use the segment associated with the cached buffer, not the current segment of the pad, otherwise we miscalculate the running time of cached buffers from before a segment change. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/859>
-rw-r--r--plugins/elements/gstinputselector.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/plugins/elements/gstinputselector.c b/plugins/elements/gstinputselector.c
index 4d509e2f2b..069e7329f0 100644
--- a/plugins/elements/gstinputselector.c
+++ b/plugins/elements/gstinputselector.c
@@ -914,7 +914,6 @@ gst_input_selector_cleanup_old_cached_buffers (GstInputSelector * sel,
GST_DEBUG_OBJECT (sel, "Cleaning up old cached buffers");
for (walk = GST_ELEMENT_CAST (sel)->sinkpads; walk; walk = g_list_next (walk)) {
GstSelectorPad *selpad;
- GstSegment *seg;
GstSelectorPadCachedBuffer *cached_buffer;
GSList *maybe_remove;
guint queue_position;
@@ -923,13 +922,12 @@ gst_input_selector_cleanup_old_cached_buffers (GstInputSelector * sel,
if (!selpad->cached_buffers)
continue;
- seg = &selpad->segment;
-
maybe_remove = NULL;
queue_position = 0;
while ((cached_buffer = g_queue_peek_nth (selpad->cached_buffers,
queue_position))) {
GstBuffer *buffer = cached_buffer->buffer;
+ GstSegment *seg = &cached_buffer->segment;
GstClockTime running_time;
GSList *l;