summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
Diffstat (limited to 'sys')
-rw-r--r--sys/ximage/ximagepool.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/ximage/ximagepool.c b/sys/ximage/ximagepool.c
index 6a0d12361..64d468763 100644
--- a/sys/ximage/ximagepool.c
+++ b/sys/ximage/ximagepool.c
@@ -213,7 +213,7 @@ ximage_memory_alloc (GstXImageBufferPool * xpool)
int (*handler) (Display *, XErrorEvent *);
gboolean success = FALSE;
GstXContext *xcontext;
- gint width, height, align = 15, offset;
+ gint width, height, align, offset;
GstXImageMemory *mem;
ximagesink = xpool->sink;
@@ -276,6 +276,7 @@ ximage_memory_alloc (GstXImageBufferPool * xpool)
mem->size, width, mem->ximage->bytes_per_line);
/* get shared memory */
+ align = 0;
mem->SHMInfo.shmid =
shmget (IPC_PRIVATE, mem->size + align, IPC_CREAT | 0777);
if (mem->SHMInfo.shmid == -1)
@@ -330,6 +331,8 @@ ximage_memory_alloc (GstXImageBufferPool * xpool)
allocsize =
GST_ROUND_UP_4 (mem->ximage->bytes_per_line) * mem->ximage->height;
+ /* we want 16 byte aligned memory, g_malloc may only give 8 */
+ align = 15;
mem->ximage->data = g_malloc (allocsize + align);
GST_LOG_OBJECT (ximagesink,
"non-XShm image size is %" G_GSIZE_FORMAT " (alloced: %u), width %d, "