msdk: set parameters in mfxFrameData for a MFX_FOURCC_Y210 frame
authorHaihao Xiang <haihao.xiang@intel.com>
Thu, 30 May 2019 03:10:58 +0000 (11:10 +0800)
committerVíctor Manuel Jáquez Leal <vjaquez@igalia.com>
Sat, 29 Jun 2019 14:15:32 +0000 (14:15 +0000)
sys/msdk/gstmsdkallocator_libva.c
sys/msdk/gstmsdksystemmemory.c

index b0c417d..382f29a 100644 (file)
@@ -347,6 +347,15 @@ gst_msdk_frame_lock (mfxHDL pthis, mfxMemId mid, mfxFrameData * data)
         data->A = data->R;
         break;
 #endif
+#if VA_CHECK_VERSION(1, 2, 0)
+      case VA_FOURCC_Y210:
+        data->Pitch = mem_id->image.pitches[0];
+        data->Y = buf + mem_id->image.offsets[0];
+        data->U = data->Y + 2;
+        data->V = data->Y + 6;
+        break;
+#endif
+
       default:
         g_assert_not_reached ();
         break;
index 62f5c8f..add427a 100644 (file)
@@ -138,6 +138,12 @@ ensure_data (GstMsdkSystemMemory * mem)
       mem->surface->Data.A = mem->surface->Data.R;
       mem->surface->Data.Pitch = mem->destination_pitches[0];
       break;
+    case GST_VIDEO_FORMAT_Y210:
+      mem->surface->Data.Y = mem->cached_data[0];
+      mem->surface->Data.U = mem->surface->Data.Y + 2;
+      mem->surface->Data.V = mem->surface->Data.Y + 6;
+      mem->surface->Data.Pitch = mem->destination_pitches[0];
+      break;
     default:
       g_assert_not_reached ();
       break;