GNOME Bugzilla – Bug 751918
dataqueue: Make it understand buffers, segments, gaps
Last modified: 2018-11-03 12:28:33 UTC
In practice, every queue in GStreamer is buffers and synchronized events/queries, so it doesn't make sense to have a GstDataQueue that tries to abstract them, then re-implement the processing every it's used. As we integrate queues in more elements (like in demuxers), we can reduce duplication.
Created attachment 306746 [details] [review] multiqueue: gst_m_q_buffer_item_new() is only for buffers Simplify by treating it as such.
Created attachment 306747 [details] [review] multiqueue: Use actual GstDataQueueItem instead of mimicking it
Created attachment 306748 [details] [review] multiqueue: Move setting the dataqueueitem contents into dataqueue
Created attachment 306749 [details] [review] dataqueue: Also set duration from GAP events
Created attachment 306750 [details] [review] dataqueue: Use cleanup function to initialize Reduces code duplication a little
Created attachment 306751 [details] [review] multiqueue: Hold lock while reading sq->flushing
Created attachment 306752 [details] [review] dataqueue: Migrate timestamp handling code from multiqueue Move the code to handle segments and timestamps from the multiqueue into the dataqueue.
Created attachment 306753 [details] [review] dataqueue: Treat gap event like as if they were buffers
Created attachment 306754 [details] [review] dataqueue: Add non-blocking peek function
Created attachment 306755 [details] [review] queuearray: Make the find finding return a zero-based index This makes it possible to know from the index if the returned item was the head or the tail of the queue.
Created attachment 306756 [details] [review] queuearray: Add gst_queue_array_foreach() This has an option to drop the elements as the queue is traversed.
Created attachment 306757 [details] [review] dataqueue: Add foreach function This foreach function can also be used to remove items when it returns FALSE.
Created attachment 306956 [details] [review] queuearray: Make the find finding return a zero-based index Updated patch against Tim's dataqueue updates This makes it possible to know from the index if the returned item was the head or the tail of the queue.
Created attachment 306957 [details] [review] queuearray: Add gst_queue_array_foreach() Updated patch against Tim's dataqueue updates This has an option to drop the elements as the queue is traversed.
Comment on attachment 306956 [details] [review] queuearray: Make the find finding return a zero-based index Isn't it possible to do this with less code churn (the s/idx/index/ everywhere)? Is 'idx' used again after the 'index = ...'? If not, can't we just do 'idx = ...' ?
Created attachment 307099 [details] [review] queuearray: Make the find finding return a zero-based index Updated patch which doesn't rename the variable, the resulting code is a bit more confusing, but the patch is a low shorter. This makes it possible to know from the index if the returned item was the head or the tail of the queue.
-- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/gstreamer/gstreamer/issues/120.