mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-04-26 06:54:49 +00:00
buffer: reuse more code
This commit is contained in:
parent
0e9241cfc6
commit
f3aad8b430
1 changed files with 12 additions and 15 deletions
|
@ -261,13 +261,18 @@ _replace_memory (GstBuffer * buffer, guint len, guint idx, guint length,
|
||||||
for (i = idx; i < end; i++)
|
for (i = idx; i < end; i++)
|
||||||
gst_memory_unref (GST_BUFFER_MEM_PTR (buffer, i));
|
gst_memory_unref (GST_BUFFER_MEM_PTR (buffer, i));
|
||||||
|
|
||||||
if (end != len) {
|
if (mem != NULL) {
|
||||||
g_memmove (&GST_BUFFER_MEM_PTR (buffer, idx + 1),
|
/* replace with single memory */
|
||||||
|
GST_BUFFER_MEM_PTR (buffer, idx) = mem;
|
||||||
|
idx++;
|
||||||
|
length--;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (end < len) {
|
||||||
|
g_memmove (&GST_BUFFER_MEM_PTR (buffer, idx),
|
||||||
&GST_BUFFER_MEM_PTR (buffer, end), (len - end) * sizeof (gpointer));
|
&GST_BUFFER_MEM_PTR (buffer, end), (len - end) * sizeof (gpointer));
|
||||||
}
|
}
|
||||||
/* replace with single memory */
|
GST_BUFFER_MEM_LEN (buffer) = len - length;
|
||||||
GST_BUFFER_MEM_PTR (buffer, idx) = mem;
|
|
||||||
GST_BUFFER_MEM_LEN (buffer) = len - length + 1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void
|
static inline void
|
||||||
|
@ -876,7 +881,7 @@ gst_buffer_replace_memory_range (GstBuffer * buffer, guint idx, gint length,
|
||||||
void
|
void
|
||||||
gst_buffer_remove_memory_range (GstBuffer * buffer, guint idx, gint length)
|
gst_buffer_remove_memory_range (GstBuffer * buffer, guint idx, gint length)
|
||||||
{
|
{
|
||||||
guint len, i, end;
|
guint len;
|
||||||
|
|
||||||
g_return_if_fail (GST_IS_BUFFER (buffer));
|
g_return_if_fail (GST_IS_BUFFER (buffer));
|
||||||
g_return_if_fail (gst_buffer_is_writable (buffer));
|
g_return_if_fail (gst_buffer_is_writable (buffer));
|
||||||
|
@ -887,15 +892,7 @@ gst_buffer_remove_memory_range (GstBuffer * buffer, guint idx, gint length)
|
||||||
if (length == -1)
|
if (length == -1)
|
||||||
length = len - idx;
|
length = len - idx;
|
||||||
|
|
||||||
end = idx + length;
|
_replace_memory (buffer, len, idx, length, NULL);
|
||||||
for (i = idx; i < end; i++)
|
|
||||||
gst_memory_unref (GST_BUFFER_MEM_PTR (buffer, i));
|
|
||||||
|
|
||||||
if (end != len) {
|
|
||||||
g_memmove (&GST_BUFFER_MEM_PTR (buffer, idx),
|
|
||||||
&GST_BUFFER_MEM_PTR (buffer, end), (len - end) * sizeof (gpointer));
|
|
||||||
}
|
|
||||||
GST_BUFFER_MEM_LEN (buffer) = len - length;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in a new issue