From 32fce730edfef6f9ed0573b3d5fae8b23f114787 Mon Sep 17 00:00:00 2001 From: Haihao Xiang Date: Thu, 30 May 2019 11:10:58 +0800 Subject: [PATCH] msdk: set parameters in mfxFrameData for a MFX_FOURCC_Y210 frame --- sys/msdk/gstmsdkallocator_libva.c | 9 +++++++++ sys/msdk/gstmsdksystemmemory.c | 6 ++++++ 2 files changed, 15 insertions(+) diff --git a/sys/msdk/gstmsdkallocator_libva.c b/sys/msdk/gstmsdkallocator_libva.c index b0c417d7cf..382f29a87c 100644 --- a/sys/msdk/gstmsdkallocator_libva.c +++ b/sys/msdk/gstmsdkallocator_libva.c @@ -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; diff --git a/sys/msdk/gstmsdksystemmemory.c b/sys/msdk/gstmsdksystemmemory.c index 62f5c8f305..add427ae1d 100644 --- a/sys/msdk/gstmsdksystemmemory.c +++ b/sys/msdk/gstmsdksystemmemory.c @@ -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;