msdk: set correct parameters for BGRx frame
authorHaihao Xiang <haihao.xiang@intel.com>
Thu, 29 Apr 2021 01:35:51 +0000 (09:35 +0800)
committerHaihao Xiang <haihao.xiang@intel.com>
Fri, 30 Apr 2021 02:12:46 +0000 (02:12 +0000)
Otherwise when mapping BGRx frame onto CPU's memory, CPU will get wrong
data for B, G, R components

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2205>

sys/msdk/gstmsdksystemmemory.c
sys/msdk/gstmsdkvideomemory.c

index 4c3937b..39ff647 100644 (file)
@@ -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;
index c296ae8..5d5d411 100644 (file)
@@ -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;