kumquat-buildroot/package/gstreamer1/gst1-vaapi/0001-O_CLOEXEC-needs-_GNU_SOURCE-defined.patch
Adam Duskett c1e4e8545d gst1-vaapi: new package
gstreamer-vaapi consists in a collection of VA-API based plugins for
GStreamer and helper libraries.  These libraries are used for hardware
decoding and encoding of several video formats.

decoding formats:
JPEG, MPEG-2, MPEG-4:2, H.264 AVC, H.264 MVC, VP8, VC-1, WMV3, and HEVC.

encoding formats:
MPEG-2, H.264 AVC, H.264 MVC, JPEG, VP8, HEVC

The package won't compile without at least one renderer enabled, so I
chose to enable DRM by default, as X11, GLX, and wayland are heavy
handed with the dependencies.  As such, I have disabled every option
defaulting to yes except for DRM for the first patch.

Also, these codecs are only for x86 and require a Intel CPU (See Hardware
Requirements on line 82 of the README file.)

Signed-off-by: Adam Duskett <Adamduskett@outlook.com>
[Thomas:
 - Add entry to DEVELOPERS file.
 - Add BR2_TOOLCHAIN_HAS_THREADS dependency to the main Config.in
   option.
 - Add BR2_PACKAGE_HAS_UDEV dependency to the main Config.in option.
 - Add comments about the BR2_STATIC_LIBS config option.
 - Rewrap Config.in help text and removing trailing tabs/spaces.
 - Remove restriction to i386/x86-64
 - Add patch to fix build with uClibc.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-03-12 21:32:21 +01:00

53 lines
1.7 KiB
Diff

From 3e392e097fc0e98e606721748e8baee0e079a1a2 Mon Sep 17 00:00:00 2001
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Date: Sun, 12 Mar 2017 18:59:42 +0100
Subject: [PATCH] O_CLOEXEC needs _GNU_SOURCE defined
From man open(2):
The O_CLOEXEC, O_DIRECTORY, and O_NOFOLLOW flags are not specified
in POSIX.1-2001, but are specified in POSIX.1-2008. Since glibc
2.12, one can obtain their definitions by defining either
_POSIX_C_SOURCE with a value greater than or equal to 200809L or
_XOPEN_SOURCE with a value greater than or equal to 700. In glibc
2.11 and earlier, one obtains the definitions by defining
_GNU_SOURCE.
And indeed, with the uClibc C library, O_CLOEXEC is not exposed if
_GNU_SOURCE is not defined. Therefore, this commit fixes the build of
gstreamer-vaapi with the uClibc C library.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
gst-libs/gst/vaapi/gstvaapidisplay_drm.c | 1 +
tests/test-display.c | 1 +
2 files changed, 2 insertions(+)
diff --git a/gst-libs/gst/vaapi/gstvaapidisplay_drm.c b/gst-libs/gst/vaapi/gstvaapidisplay_drm.c
index f436036..00ff039 100644
--- a/gst-libs/gst/vaapi/gstvaapidisplay_drm.c
+++ b/gst-libs/gst/vaapi/gstvaapidisplay_drm.c
@@ -25,6 +25,7 @@
* @short_description: VA/DRM display abstraction
*/
+#define _GNU_SOURCE
#include "sysdeps.h"
#include <string.h>
#include <unistd.h>
diff --git a/tests/test-display.c b/tests/test-display.c
index be9c24b..9abe754 100644
--- a/tests/test-display.c
+++ b/tests/test-display.c
@@ -22,6 +22,7 @@
* Boston, MA 02110-1301 USA
*/
+#define _GNU_SOURCE
#include "gst/vaapi/sysdeps.h"
#include <gst/video/video.h>
#if USE_DRM
--
2.7.4