summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHaihao Xiang <haihao.xiang@intel.com>2019-03-21 16:14:47 +0800
committerVíctor Manuel Jáquez Leal <vjaquez@igalia.com>2019-04-09 14:26:02 +0000
commit21f07e95f56486ebfbbf948a7f45d9ba26f46ec4 (patch)
tree8f4309cf01ebe00b7bdcbca49e63e12b3c3849d6
parentc40ecbe7f5a3e5ebdf36f57420ff53134320115c (diff)
downloadgstreamer-plugins-bad-21f07e95f56486ebfbbf948a7f45d9ba26f46ec4.tar.gz
msdk: set some parameters in mfxFrameData for a MFX_FOURCC_A2RGB10 frame
-rw-r--r--sys/msdk/gstmsdkallocator_libva.c8
-rw-r--r--sys/msdk/gstmsdksystemmemory.c8
2 files changed, 14 insertions, 2 deletions
diff --git a/sys/msdk/gstmsdkallocator_libva.c b/sys/msdk/gstmsdkallocator_libva.c
index 46990b5ef..ef94bf7e4 100644
--- a/sys/msdk/gstmsdkallocator_libva.c
+++ b/sys/msdk/gstmsdkallocator_libva.c
@@ -331,7 +331,13 @@ gst_msdk_frame_lock (mfxHDL pthis, mfxMemId mid, mfxFrameData * data)
data->Y = data->V + 2;
data->A = data->V + 3;
break;
-
+ case VA_FOURCC_A2R10G10B10:
+ data->Pitch = mem_id->image.pitches[0];
+ data->R = buf + mem_id->image.offsets[0];
+ data->G = data->R;
+ data->B = data->R;
+ data->A = data->R;
+ break;
default:
g_assert_not_reached ();
break;
diff --git a/sys/msdk/gstmsdksystemmemory.c b/sys/msdk/gstmsdksystemmemory.c
index 53711a513..336e83f49 100644
--- a/sys/msdk/gstmsdksystemmemory.c
+++ b/sys/msdk/gstmsdksystemmemory.c
@@ -131,7 +131,13 @@ ensure_data (GstMsdkSystemMemory * mem)
mem->surface->Data.PitchLow =
(mfxU16) (mem->destination_pitches[0] % (1 << 16));
break;
-
+ case GST_VIDEO_FORMAT_BGR10A2_LE:
+ mem->surface->Data.R = mem->cached_data[0];
+ mem->surface->Data.G = mem->surface->Data.R;
+ mem->surface->Data.B = mem->surface->Data.R;
+ mem->surface->Data.A = mem->surface->Data.R;
+ mem->surface->Data.Pitch = mem->destination_pitches[0];
+ break;
default:
g_assert_not_reached ();
break;