From a8c1cec0514bfd66c55bfbc848e3fe5bd6793b00 Mon Sep 17 00:00:00 2001 From: Mengkejiergeli Ba Date: Thu, 3 Mar 2022 10:07:19 +0800 Subject: [PATCH] msdk: Use va libs API to get VA surface from buffer Direct apply gst_va_buffer_get_surface to get VASurface from a buffer, so remove corresponding functions which are not used. Part-of: --- .../gst-plugins-bad/sys/msdk/gstmsdk_va.c | 104 ------------------ .../gst-plugins-bad/sys/msdk/gstmsdk_va.h | 48 -------- .../gst-plugins-bad/sys/msdk/gstmsdkenc.c | 4 +- .../gst-plugins-bad/sys/msdk/meson.build | 2 +- 4 files changed, 3 insertions(+), 155 deletions(-) delete mode 100644 subprojects/gst-plugins-bad/sys/msdk/gstmsdk_va.c delete mode 100644 subprojects/gst-plugins-bad/sys/msdk/gstmsdk_va.h diff --git a/subprojects/gst-plugins-bad/sys/msdk/gstmsdk_va.c b/subprojects/gst-plugins-bad/sys/msdk/gstmsdk_va.c deleted file mode 100644 index feabf38809..0000000000 --- a/subprojects/gst-plugins-bad/sys/msdk/gstmsdk_va.c +++ /dev/null @@ -1,104 +0,0 @@ -/* GStreamer Intel MSDK plugin - * Copyright (c) 2021, Intel Corporation - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * 3. Neither the name of the copyright holder nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, - * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; - * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGDECE - * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, - * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef _WIN32 -#include "gstmsdk_va.h" - -#define GST_MAP_VA (GST_MAP_FLAG_LAST << 1) - -static GQuark -gst_msdk_va_memory_surface_quark_get (void) -{ - static gsize g_quark; - - if (g_once_init_enter (&g_quark)) { - gsize quark = (gsize) g_quark_from_static_string ("GstMsdkMemoryVASurface"); - g_once_init_leave (&g_quark, quark); - } - return g_quark; -} - -static gboolean -gst_msdk_is_va_mem (GstMemory * mem) -{ - GstAllocator *allocator; - - allocator = mem->allocator; - if (!allocator) - return FALSE; - - return g_str_equal (allocator->mem_type, "VAMemory"); -} - -VASurfaceID -gst_msdk_va_peek_buffer_surface (GstBuffer * buffer) -{ - GstMemory *mem; - VASurfaceID surface; - GstMapInfo map_info; - gpointer data; - - g_return_val_if_fail (buffer, VA_INVALID_SURFACE); - - mem = gst_buffer_peek_memory (buffer, 0); - if (!mem) - return VA_INVALID_SURFACE; - - if (!gst_msdk_is_va_mem (mem)) - return VA_INVALID_SURFACE; - - data = gst_mini_object_get_qdata (GST_MINI_OBJECT (mem), - gst_msdk_va_memory_surface_quark_get ()); - if (data) { - surface = *(VASurfaceID *) data; - g_assert (surface != VA_INVALID_SURFACE); - return surface; - } - - if (!gst_buffer_map (buffer, &map_info, GST_MAP_READ | GST_MAP_VA)) - return VA_INVALID_SURFACE; - - surface = (*(VASurfaceID *) map_info.data); - gst_buffer_unmap (buffer, &map_info); - - if (surface == VA_INVALID_ID) { - GST_WARNING ("Fail to get va surface by GST_MAP_VA mapping"); - } else { - data = g_new (VASurfaceID, 1); - *(VASurfaceID *) data = surface; - gst_mini_object_set_qdata (GST_MINI_OBJECT_CAST (mem), - gst_msdk_va_memory_surface_quark_get (), data, g_free); - } - - return surface; -} - -#endif /* _WIN32 */ diff --git a/subprojects/gst-plugins-bad/sys/msdk/gstmsdk_va.h b/subprojects/gst-plugins-bad/sys/msdk/gstmsdk_va.h deleted file mode 100644 index 96bbb1c634..0000000000 --- a/subprojects/gst-plugins-bad/sys/msdk/gstmsdk_va.h +++ /dev/null @@ -1,48 +0,0 @@ -/* GStreamer Intel MSDK plugin - * Copyright (c) 2021, Intel Corporation - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * 3. Neither the name of the copyright holder nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, - * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; - * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGDECE - * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, - * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef GST_MSDK_VA_H_ -#define GST_MSDK_VA_H_ - -#ifndef _WIN32 - -#include "msdk.h" -#include -#include - -G_BEGIN_DECLS - -VASurfaceID gst_msdk_va_peek_buffer_surface (GstBuffer * buffer); - -G_END_DECLS - -#endif /* _WIN32 */ -#endif /* GST_MSDK_VA_H_ */ diff --git a/subprojects/gst-plugins-bad/sys/msdk/gstmsdkenc.c b/subprojects/gst-plugins-bad/sys/msdk/gstmsdkenc.c index 80b5c59a3d..40c5fb6169 100644 --- a/subprojects/gst-plugins-bad/sys/msdk/gstmsdkenc.c +++ b/subprojects/gst-plugins-bad/sys/msdk/gstmsdkenc.c @@ -53,7 +53,7 @@ #ifndef _WIN32 #include "gstmsdkallocator_libva.h" -#include "gstmsdk_va.h" +#include #endif static inline void * @@ -1730,7 +1730,7 @@ import_va_surface_to_msdk (GstMsdkEnc * thiz, GstBuffer * buf, VASurfaceID surface; gint i; - surface = gst_msdk_va_peek_buffer_surface (buf); + surface = gst_va_buffer_get_surface (buf); if (surface == VA_INVALID_SURFACE) return FALSE; diff --git a/subprojects/gst-plugins-bad/sys/msdk/meson.build b/subprojects/gst-plugins-bad/sys/msdk/meson.build index 661ca994c6..a0c1664122 100644 --- a/subprojects/gst-plugins-bad/sys/msdk/meson.build +++ b/subprojects/gst-plugins-bad/sys/msdk/meson.build @@ -44,7 +44,7 @@ else endif subdir_done() endif - msdk_sources += ['msdk_libva.c', 'gstmsdkallocator_libva.c', 'gstmsdk_va.c'] + msdk_sources += ['msdk_libva.c', 'gstmsdkallocator_libva.c'] endif mfx_api = get_option('mfx_api')