summaryrefslogtreecommitdiff
path: root/sys/msdk/gstmsdkvideomemory.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/msdk/gstmsdkvideomemory.c')
-rw-r--r--sys/msdk/gstmsdkvideomemory.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/sys/msdk/gstmsdkvideomemory.c b/sys/msdk/gstmsdkvideomemory.c
index 6428b5963..831a54013 100644
--- a/sys/msdk/gstmsdkvideomemory.c
+++ b/sys/msdk/gstmsdkvideomemory.c
@@ -117,6 +117,8 @@ gst_video_meta_map_msdk_memory (GstVideoMeta * meta, guint plane,
GstMsdkVideoMemory *mem =
GST_MSDK_VIDEO_MEMORY_CAST (gst_buffer_peek_memory (meta->buffer, 0));
GstMsdkMemoryID *mem_id;
+ guint offset = 0;
+ gint pitch = 0;
g_return_val_if_fail (mem, FALSE);
@@ -146,8 +148,19 @@ gst_video_meta_map_msdk_memory (GstVideoMeta * meta, guint plane,
mem->mapped++;
mem_id = mem->surface->Data.MemId;
- *data = mem->surface->Data.Y + mem_id->image.offsets[plane];
- *stride = mem_id->image.pitches[plane];
+#ifndef _WIN32
+ offset = mem_id->image.offsets[plane];
+ pitch = mem_id->image.pitches[plane];
+#else
+ /* TODO: This is just to avoid compile errors on Windows.
+ * Implement handling Windows-specific video-memory.
+ */
+ offset = mem_id->offset;
+ pitch = mem_id->pitch;
+#endif
+
+ *data = mem->surface->Data.Y + offset;
+ *stride = pitch;
info->flags = flags;
ret = (*data != NULL);