mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-10-05 18:22:23 +00:00
bufferlist: use faster gst_buffer_list_get()
Use the faster gst_buffer_list_get() to get the first buffer of a list.
This commit is contained in:
parent
939f6045b1
commit
92b0f32d74
2 changed files with 7 additions and 34 deletions
14
gst/gstpad.c
14
gst/gstpad.c
|
@ -3987,18 +3987,12 @@ gst_pad_data_get_caps (gboolean is_buffer, void *data)
|
||||||
if (G_LIKELY (is_buffer)) {
|
if (G_LIKELY (is_buffer)) {
|
||||||
caps = GST_BUFFER_CAPS (data);
|
caps = GST_BUFFER_CAPS (data);
|
||||||
} else {
|
} else {
|
||||||
GstBufferListIterator *it;
|
|
||||||
GstBuffer *buf;
|
GstBuffer *buf;
|
||||||
|
|
||||||
caps = NULL;
|
if ((buf = gst_buffer_list_get (GST_BUFFER_LIST_CAST (data), 0, 0)))
|
||||||
it = gst_buffer_list_iterate (GST_BUFFER_LIST_CAST (data));
|
caps = GST_BUFFER_CAPS (buf);
|
||||||
if (gst_buffer_list_iterator_next_group (it)) {
|
else
|
||||||
buf = gst_buffer_list_iterator_next (it);
|
caps = NULL;
|
||||||
if (buf != NULL) {
|
|
||||||
caps = GST_BUFFER_CAPS (buf);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
gst_buffer_list_iterator_free (it);
|
|
||||||
}
|
}
|
||||||
return caps;
|
return caps;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2660,14 +2660,7 @@ gst_base_sink_render_object (GstBaseSink * basesink, GstPad * pad,
|
||||||
* If buffer list, use the first group buffer within the list
|
* If buffer list, use the first group buffer within the list
|
||||||
* for syncing
|
* for syncing
|
||||||
*/
|
*/
|
||||||
GstBufferListIterator *it;
|
sync_obj = gst_buffer_list_get (GST_BUFFER_LIST_CAST (obj), 0, 0);
|
||||||
gboolean got_group;
|
|
||||||
|
|
||||||
it = gst_buffer_list_iterate (GST_BUFFER_LIST_CAST (obj));
|
|
||||||
got_group = gst_buffer_list_iterator_next_group (it);
|
|
||||||
g_assert (got_group);
|
|
||||||
sync_obj = gst_buffer_list_iterator_next (it);
|
|
||||||
gst_buffer_list_iterator_free (it);
|
|
||||||
g_assert (NULL != sync_obj);
|
g_assert (NULL != sync_obj);
|
||||||
} else {
|
} else {
|
||||||
sync_obj = obj;
|
sync_obj = obj;
|
||||||
|
@ -2850,14 +2843,7 @@ gst_base_sink_preroll_object (GstBaseSink * basesink, gboolean is_list,
|
||||||
GstClockTime timestamp;
|
GstClockTime timestamp;
|
||||||
|
|
||||||
if (is_list) {
|
if (is_list) {
|
||||||
GstBufferListIterator *it;
|
buf = gst_buffer_list_get (GST_BUFFER_LIST_CAST (obj), 0, 0);
|
||||||
gboolean got_group;
|
|
||||||
|
|
||||||
it = gst_buffer_list_iterate (GST_BUFFER_LIST_CAST (obj));
|
|
||||||
got_group = gst_buffer_list_iterator_next_group (it);
|
|
||||||
g_assert (got_group);
|
|
||||||
buf = gst_buffer_list_iterator_next (it);
|
|
||||||
gst_buffer_list_iterator_free (it);
|
|
||||||
g_assert (NULL != buf);
|
g_assert (NULL != buf);
|
||||||
} else {
|
} else {
|
||||||
buf = GST_BUFFER_CAST (obj);
|
buf = GST_BUFFER_CAST (obj);
|
||||||
|
@ -3277,14 +3263,7 @@ gst_base_sink_chain_unlocked (GstBaseSink * basesink, GstPad * pad,
|
||||||
goto was_eos;
|
goto was_eos;
|
||||||
|
|
||||||
if (is_list) {
|
if (is_list) {
|
||||||
GstBufferListIterator *it;
|
time_buf = gst_buffer_list_get (GST_BUFFER_LIST_CAST (obj), 0, 0);
|
||||||
gboolean got_group;
|
|
||||||
|
|
||||||
it = gst_buffer_list_iterate (GST_BUFFER_LIST_CAST (obj));
|
|
||||||
got_group = gst_buffer_list_iterator_next_group (it);
|
|
||||||
g_assert (got_group);
|
|
||||||
time_buf = gst_buffer_list_iterator_next (it);
|
|
||||||
gst_buffer_list_iterator_free (it);
|
|
||||||
g_assert (NULL != time_buf);
|
g_assert (NULL != time_buf);
|
||||||
} else {
|
} else {
|
||||||
time_buf = GST_BUFFER_CAST (obj);
|
time_buf = GST_BUFFER_CAST (obj);
|
||||||
|
|
Loading…
Reference in a new issue