v4l2codecs: Introdude a V4L2 CODECs Accelerator plugin
authorNicolas Dufresne <nicolas.dufresne@collabora.com>
Mon, 3 Feb 2020 15:06:46 +0000 (10:06 -0500)
committerNicolas Dufresne <nicolas.dufresne@collabora.com>
Tue, 31 Mar 2020 13:34:05 +0000 (09:34 -0400)
This plugin will support new CODECs uAPI in the Linux kernel. These
consist of an accelerator interface similar to DXVA, NVDEC, VDPAU and
VAAPI.

sys/meson.build
sys/v4l2codecs/meson.build [new file with mode: 0644]
sys/v4l2codecs/plugin.c [new file with mode: 0644]

index 270a5490e1479a45aa513a39711308c566b005ff..24ce84ba382f4bb39c178085fc4b8a8788e5d2e3 100644 (file)
@@ -19,6 +19,7 @@ subdir('opensles')
 subdir('shm')
 subdir('tinyalsa')
 subdir('uvch264')
+subdir('v4l2codecs')
 subdir('wasapi')
 subdir('winks')
 subdir('winscreencap')
diff --git a/sys/v4l2codecs/meson.build b/sys/v4l2codecs/meson.build
new file mode 100644 (file)
index 0000000..7c5afcd
--- /dev/null
@@ -0,0 +1,15 @@
+v4l2codecs_sources = [
+  'plugin.c',
+]
+
+gstv4l2codecs = library('gstv4l2codecs',
+  v4l2codecs_sources,
+  c_args : gst_plugins_bad_args,
+  cpp_args: gst_plugins_bad_args,
+  include_directories : [configinc],
+  dependencies : [gstbase_dep, gstcodecs_dep],
+  install : true,
+  install_dir : plugins_install_dir,
+)
+pkgconfig.generate(gstv4l2codecs, install_dir : plugins_pkgconfig_install_dir)
+plugins += [gstv4l2codecs]
diff --git a/sys/v4l2codecs/plugin.c b/sys/v4l2codecs/plugin.c
new file mode 100644 (file)
index 0000000..8db87ef
--- /dev/null
@@ -0,0 +1,37 @@
+/* GStreamer
+ * Copyright (C) 2020 Collabora Ltd.
+ *   Author: Nicolas Dufresne <nicolas.dufresne@collabora.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <gst/gst.h>
+
+static gboolean
+plugin_init (GstPlugin * plugin)
+{
+  return TRUE;
+}
+
+GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,
+    GST_VERSION_MINOR,
+    v4l2codecs,
+    "V4L2 CODEC Accelerators plugin",
+    plugin_init, VERSION, "LGPL", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN)