diff options
author | Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com> | 2021-07-23 17:20:20 +0300 |
---|---|---|
committer | GStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org> | 2021-07-28 12:47:03 +0300 |
commit | 97601e49cb84bd0bbcbb8b72bbadbee13615a8c7 (patch) | |
tree | 0e935a4d8c2c21e953b5b9bc9ecf577d273d4529 | |
parent | 408a3bfcf2f81b5ab3e9dc479e13367885301480 (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.c | 4 |
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; |