From 1d17e3891debfdb72d9db44fcba32c8133ba1ea0 Mon Sep 17 00:00:00 2001 From: Seungha Yang Date: Thu, 28 Feb 2019 21:37:49 +0900 Subject: [PATCH] mskd: Don't use MFX_FOURCC_RGB565 if it's undefined ../subprojects/gst-plugins-bad/sys/msdk/msdk.c(61): error C2065: 'MFX_FOURCC_RGB565' The minimum required version for the format seems to MFX_VERSION >= 1028 --- sys/msdk/gstmsdkallocator_libva.c | 4 ++++ sys/msdk/gstmsdksystemmemory.c | 2 ++ sys/msdk/gstmsdkvpp.c | 17 ++++++++++++++--- sys/msdk/msdk.c | 2 ++ sys/msdk/msdk_libva.c | 2 ++ 5 files changed, 24 insertions(+), 3 deletions(-) diff --git a/sys/msdk/gstmsdkallocator_libva.c b/sys/msdk/gstmsdkallocator_libva.c index 30154517b3..848de68048 100644 --- a/sys/msdk/gstmsdkallocator_libva.c +++ b/sys/msdk/gstmsdkallocator_libva.c @@ -312,12 +312,14 @@ gst_msdk_frame_lock (mfxHDL pthis, mfxMemId mid, mfxFrameData * data) data->B = data->R + 2; data->A = data->R + 3; break; +#if (MFX_VERSION >= 1028) case VA_FOURCC_RGB565: data->Pitch = mem_id->image.pitches[0]; data->R = buf + mem_id->image.offsets[0]; data->G = data->R; data->B = data->R; break; +#endif default: g_assert_not_reached (); break; @@ -454,10 +456,12 @@ gst_msdk_export_dmabuf_to_vasurface (GstMsdkContext * context, va_chroma = VA_RT_FORMAT_YUV422; va_fourcc = VA_FOURCC_UYVY; break; +#if (MFX_VERSION >= 1028) case GST_VIDEO_FORMAT_RGB16: va_chroma = VA_RT_FORMAT_RGB16; va_fourcc = VA_FOURCC_RGB565; break; +#endif default: goto error_unsupported_format; } diff --git a/sys/msdk/gstmsdksystemmemory.c b/sys/msdk/gstmsdksystemmemory.c index 3b659a34df..ecd159252b 100644 --- a/sys/msdk/gstmsdksystemmemory.c +++ b/sys/msdk/gstmsdksystemmemory.c @@ -113,12 +113,14 @@ ensure_data (GstMsdkSystemMemory * mem) mem->surface->Data.B = mem->surface->Data.R + 2; mem->surface->Data.Pitch = mem->destination_pitches[0]; break; +#if (MFX_VERSION >= 1028) case GST_VIDEO_FORMAT_RGB16: 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.Pitch = mem->destination_pitches[0]; break; +#endif default: g_assert_not_reached (); break; diff --git a/sys/msdk/gstmsdkvpp.c b/sys/msdk/gstmsdkvpp.c index e3b0130d51..71d5feccc1 100644 --- a/sys/msdk/gstmsdkvpp.c +++ b/sys/msdk/gstmsdkvpp.c @@ -51,15 +51,26 @@ GST_DEBUG_CATEGORY_EXTERN (gst_msdkvpp_debug); #define GST_CAT_DEFAULT gst_msdkvpp_debug +#if (MFX_VERSION >= 1028) +#define SUPPORTED_SYSTEM_FORMAT \ + "{ NV12, YV12, I420, YUY2, UYVY, BGRA, BGRx, RGB16, P010_10LE }" +#define SUPPORTED_DMABUF_FORMAT \ + "{ NV12, BGRA, YUY2, UYVY, RGB16, P010_10LE}" +#else +#define SUPPORTED_SYSTEM_FORMAT \ + "{ NV12, YV12, I420, YUY2, UYVY, BGRA, BGRx, P010_10LE }" +#define SUPPORTED_DMABUF_FORMAT \ + "{ NV12, BGRA, YUY2, UYVY, P010_10LE}" +#endif + static GstStaticPadTemplate gst_msdkvpp_sink_factory = GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_SINK, GST_PAD_ALWAYS, - GST_STATIC_CAPS (GST_VIDEO_CAPS_MAKE - ("{ NV12, YV12, I420, YUY2, UYVY, BGRA, BGRx, RGB16, P010_10LE }") + GST_STATIC_CAPS (GST_VIDEO_CAPS_MAKE (SUPPORTED_SYSTEM_FORMAT) ", " "interlace-mode = (string){ progressive, interleaved, mixed }" ";" GST_VIDEO_CAPS_MAKE_WITH_FEATURES (GST_CAPS_FEATURE_MEMORY_DMABUF, - "{ NV12, BGRA, YUY2, UYVY, RGB16, P010_10LE}"))); + SUPPORTED_DMABUF_FORMAT))); static GstStaticPadTemplate gst_msdkvpp_src_factory = GST_STATIC_PAD_TEMPLATE ("src", diff --git a/sys/msdk/msdk.c b/sys/msdk/msdk.c index 4598eb5426..e2c3b4520f 100644 --- a/sys/msdk/msdk.c +++ b/sys/msdk/msdk.c @@ -58,7 +58,9 @@ static const struct map gst_msdk_video_format_to_mfx_map[] = { GST_VIDEO_INFO_TO_MFX_MAP (UYVY, YUV422, UYVY), GST_VIDEO_INFO_TO_MFX_MAP (BGRA, YUV444, RGB4), GST_VIDEO_INFO_TO_MFX_MAP (BGRx, YUV444, RGB4), +#if (MFX_VERSION >= 1028) GST_VIDEO_INFO_TO_MFX_MAP (RGB16, YUV444, RGB565), +#endif {0, 0, 0} }; diff --git a/sys/msdk/msdk_libva.c b/sys/msdk/msdk_libva.c index 98453f2356..7a5d554335 100644 --- a/sys/msdk/msdk_libva.c +++ b/sys/msdk/msdk_libva.c @@ -62,7 +62,9 @@ static const struct fourcc_map gst_msdk_fourcc_mfx_to_va[] = { FOURCC_MFX_TO_VA (RGB4, ARGB), FOURCC_MFX_TO_VA (P8, P208), FOURCC_MFX_TO_VA (P010, P010), +#if (MFX_VERSION >= 1028) FOURCC_MFX_TO_VA (RGB565, RGB565), +#endif {0, 0} };