From 6750123d5cbb3464efa2ec141f12ea4c4bbed877 Mon Sep 17 00:00:00 2001 From: Haihao Xiang Date: Thu, 29 Apr 2021 09:35:51 +0800 Subject: [PATCH] msdk: set correct parameters for BGRx frame Otherwise when mapping BGRx frame onto CPU's memory, CPU will get wrong data for B, G, R components Part-of: --- sys/msdk/gstmsdksystemmemory.c | 1 + sys/msdk/gstmsdkvideomemory.c | 1 + 2 files changed, 2 insertions(+) diff --git a/sys/msdk/gstmsdksystemmemory.c b/sys/msdk/gstmsdksystemmemory.c index 4c3937b..39ff647 100644 --- a/sys/msdk/gstmsdksystemmemory.c +++ b/sys/msdk/gstmsdksystemmemory.c @@ -110,6 +110,7 @@ ensure_data (GstMsdkSystemMemory * mem) mem->surface->Data.Pitch = mem->destination_pitches[0]; break; case GST_VIDEO_FORMAT_BGRA: + case GST_VIDEO_FORMAT_BGRx: mem->surface->Data.B = mem->cached_data[0]; mem->surface->Data.G = mem->surface->Data.B + 1; mem->surface->Data.R = mem->surface->Data.B + 2; diff --git a/sys/msdk/gstmsdkvideomemory.c b/sys/msdk/gstmsdkvideomemory.c index c296ae8..5d5d411 100644 --- a/sys/msdk/gstmsdkvideomemory.c +++ b/sys/msdk/gstmsdkvideomemory.c @@ -239,6 +239,7 @@ gst_video_meta_map_msdk_memory (GstVideoMeta * meta, guint plane, switch (meta->format) { case GST_VIDEO_FORMAT_BGRA: + case GST_VIDEO_FORMAT_BGRx: *data = mem->surface->Data.B + offset; break; -- 2.7.4