mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-27 04:01:08 +00:00
memory: take offset into account
Take the offset into account whem mapping and unmapping the buffer.
This commit is contained in:
parent
cff9b3715f
commit
6e0024e76e
3 changed files with 13 additions and 3 deletions
|
@ -127,7 +127,7 @@ Data Access
|
|||
When the final reference on a memory object is dropped, all outstanding
|
||||
mappings are automatically unmapped.
|
||||
|
||||
Resizing a GstMemory does not influence any current mappings.
|
||||
Resizing a GstMemory does not influence any current mappings an any way.
|
||||
|
||||
|
||||
Copy
|
||||
|
|
|
@ -206,7 +206,7 @@ _default_mem_map (GstMemoryDefault * mem, gsize * size, gsize * maxsize,
|
|||
if (size)
|
||||
*size = mem->size;
|
||||
if (maxsize)
|
||||
*maxsize = mem->maxsize;
|
||||
*maxsize = mem->maxsize - mem->offset;
|
||||
|
||||
return mem->data + mem->offset;
|
||||
}
|
||||
|
@ -215,7 +215,7 @@ static gboolean
|
|||
_default_mem_unmap (GstMemoryDefault * mem, gpointer data, gsize size)
|
||||
{
|
||||
if (size != -1) {
|
||||
g_return_val_if_fail (size <= mem->maxsize, FALSE);
|
||||
g_return_val_if_fail (mem->offset + size <= mem->maxsize, FALSE);
|
||||
mem->size = size;
|
||||
}
|
||||
return TRUE;
|
||||
|
|
|
@ -421,6 +421,16 @@ GST_START_TEST (test_map)
|
|||
ASSERT_CRITICAL (gst_memory_unmap (mem, data, maxsize + 1));
|
||||
gst_memory_unmap (mem, data, maxsize);
|
||||
|
||||
/* add offset, maxsize should be smaller now */
|
||||
gst_memory_resize (mem, 1, 99);
|
||||
|
||||
data = gst_memory_map (mem, &size, &maxsize, GST_MAP_READ);
|
||||
fail_unless (data != NULL);
|
||||
fail_unless (size == 99);
|
||||
fail_unless (maxsize == maxalloc - 1);
|
||||
ASSERT_CRITICAL (gst_memory_unmap (mem, data, maxsize + 1));
|
||||
gst_memory_unmap (mem, data, maxsize);
|
||||
|
||||
gst_memory_unref (mem);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue