All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH v3 0/4] *** Add Intel QuickSync support to ffmpeg ***
@ 2019-02-05 18:19 Louis-Paul Cordier
  2019-02-05 18:19 ` [Buildroot] [PATCH v3 1/4] package/intel-mediadriver: new package Louis-Paul Cordier
                   ` (4 more replies)
  0 siblings, 5 replies; 15+ messages in thread
From: Louis-Paul Cordier @ 2019-02-05 18:19 UTC (permalink / raw)
  To: buildroot

In addition of the existing VAAPI for hardware encoding, Intel provides
the libmfx API embeded in its Intel MediaSDK. Intel MediaSDK improves
encoding quality, is faster, and makes use of all encoding capabilities
on Intel platforms.

MFX test procedure (h264):

1. Retrieve sample data (https://github.com/Intel-Media-SDK/samples)
2. Run ./sample_multi_transcode -i::h264 test_stream.264 -o::h264 out.264.
3. Test should pass.

FFMpeg QuickSync test procedure (h264):

1. Download test video: https://peach.blender.org/trailer-page/
2. Run ffmpeg -y -hwaccel qsv -qsv_device /dev/dri/renderD128 -c:v 
h264_qsv -i /trailer_1080p.mov -c:v h264_qsv -framerate 60 -acodec 
copy out.mp4

Louis-Paul Cordier (4):
  package/intel-mediadriver: new package
  package/intel-mediasdk: new package
  package/ffmpeg: bump to version 4.1
  package/ffmpeg: enable Intel QuickSync support.

 Config.in.legacy                              |   6 ++
 DEVELOPERS                                    |   2 +
 package/Config.in                             |   2 +
 package/ffmpeg/0001-ffmpeg-pthreads.patch     |  34 ------
 ...cenc-Fix-building-with-libfdk-aac-v2.patch | 100 ------------------
 ...stently-use-a-proper-version-check-m.patch |  99 -----------------
 ...dk-aac-Don-t-use-defined-in-a-define.patch |  72 -------------
 package/ffmpeg/Config.in                      |   6 --
 package/ffmpeg/ffmpeg.hash                    |   2 +-
 package/ffmpeg/ffmpeg.mk                      |  15 +--
 package/intel-mediadriver/Config.in           |  21 ++++
 .../intel-mediadriver/intel-mediadriver.hash  |   3 +
 .../intel-mediadriver/intel-mediadriver.mk    |  30 ++++++
 package/intel-mediasdk/Config.in              |  15 +++
 package/intel-mediasdk/intel-mediasdk.hash    |   3 +
 package/intel-mediasdk/intel-mediasdk.mk      |  17 +++
 16 files changed, 108 insertions(+), 319 deletions(-)
 delete mode 100644 package/ffmpeg/0001-ffmpeg-pthreads.patch
 delete mode 100644 package/ffmpeg/0002-libfdk-aacenc-Fix-building-with-libfdk-aac-v2.patch
 delete mode 100644 package/ffmpeg/0003-libfdk-aac-Consistently-use-a-proper-version-check-m.patch
 delete mode 100644 package/ffmpeg/0004-libfdk-aac-Don-t-use-defined-in-a-define.patch
 create mode 100644 package/intel-mediadriver/Config.in
 create mode 100644 package/intel-mediadriver/intel-mediadriver.hash
 create mode 100644 package/intel-mediadriver/intel-mediadriver.mk
 create mode 100644 package/intel-mediasdk/Config.in
 create mode 100644 package/intel-mediasdk/intel-mediasdk.hash
 create mode 100644 package/intel-mediasdk/intel-mediasdk.mk

-- 
2.20.1

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Buildroot] [PATCH v3 1/4] package/intel-mediadriver: new package
  2019-02-05 18:19 [Buildroot] [PATCH v3 0/4] *** Add Intel QuickSync support to ffmpeg *** Louis-Paul Cordier
@ 2019-02-05 18:19 ` Louis-Paul Cordier
  2019-04-16 20:26   ` Thomas Petazzoni
  2019-02-05 18:19 ` [Buildroot] [PATCH v3 2/4] package/intel-mediasdk: " Louis-Paul Cordier
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 15+ messages in thread
From: Louis-Paul Cordier @ 2019-02-05 18:19 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Louis-Paul Cordier <lpdev@cordier.org>
---
v2 -> v3: (feedback Thomas Petazzoni)
- Fix commit title.
- Update DEVELOPERS file.
- Replicate dependencies of selected packages.
- Fix blank line.
- Add hash for LICENSE file.
- Update from 18.3.0 to 18.4.0.
- Fix package license.
- Various fixes in makefile.

v1 -> v2: (feedback Baruch Siach)
- Let default install target.

 DEVELOPERS                                    |  1 +
 package/Config.in                             |  1 +
 package/intel-mediadriver/Config.in           | 21 +++++++++++++
 .../intel-mediadriver/intel-mediadriver.hash  |  3 ++
 .../intel-mediadriver/intel-mediadriver.mk    | 30 +++++++++++++++++++
 5 files changed, 56 insertions(+)
 create mode 100644 package/intel-mediadriver/Config.in
 create mode 100644 package/intel-mediadriver/intel-mediadriver.hash
 create mode 100644 package/intel-mediadriver/intel-mediadriver.mk

diff --git a/DEVELOPERS b/DEVELOPERS
index 59e1f32ba9..266bd4edc9 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -1265,6 +1265,7 @@ F:	package/ti-sgx-um/
 
 N:	Louis-Paul Cordier <lpdev@cordier.org>
 F:	package/intel-gmmlib/
+F:	package/intel-mediadriver/
 
 N:	Luca Ceresoli <luca@lucaceresoli.net>
 F:	board/olimex/a20_olinuxino/
diff --git a/package/Config.in b/package/Config.in
index bca61f14ed..ffedf37562 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1266,6 +1266,7 @@ menu "Graphics"
 	source "package/ijs/Config.in"
 	source "package/imlib2/Config.in"
 	source "package/intel-gmmlib/Config.in"
+	source "package/intel-mediadriver/Config.in"
 	source "package/irrlicht/Config.in"
 	source "package/jasper/Config.in"
 	source "package/jpeg/Config.in"
diff --git a/package/intel-mediadriver/Config.in b/package/intel-mediadriver/Config.in
new file mode 100644
index 0000000000..7dd80fbfc7
--- /dev/null
+++ b/package/intel-mediadriver/Config.in
@@ -0,0 +1,21 @@
+config BR2_PACKAGE_INTEL_MEDIADRIVER
+	bool "intel-mediadriver"
+	depends on BR2_x86_64
+	depends on !BR2_STATIC_LIBS # mesa3D/libva
+	depends on BR2_INSTALL_LIBSTDCPP # mesa3D
+	depends on BR2_TOOLCHAIN_HAS_SYNC_1 # mesa3D
+	depends on BR2_TOOLCHAIN_HAS_THREADS # libva/libdrm/libpthread-stubs
+	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # mesa3D
+	depends on BR2_PACKAGE_XORG7
+	select BR2_PACKAGE_INTEL_GMMLIB
+	select BR2_PACKAGE_LIBPCIACCESS
+	select BR2_PACKAGE_LIBVA
+	select BR2_PACKAGE_MESA3D
+	select BR2_PACKAGE_XLIB_LIBX11
+	help
+	  The Intel(R) Media Driver for VAAPI is a new VA-API (Video
+	  Acceleration API) user mode driver supporting hardware
+	  accelerated decoding, encoding, and video post processing for
+	  GEN based graphics hardware.
+
+	  https://github.com/intel/media-driver
diff --git a/package/intel-mediadriver/intel-mediadriver.hash b/package/intel-mediadriver/intel-mediadriver.hash
new file mode 100644
index 0000000000..095f57603d
--- /dev/null
+++ b/package/intel-mediadriver/intel-mediadriver.hash
@@ -0,0 +1,3 @@
+# Locally computed
+sha256 57a5c0d4dc7e34d7940d23346bbdee2b6cdfbfa81d64f5b77506da8b4298df43  intel-media-18.4.0.tar.gz
+sha256 74979d5aaee78b8da82e3aafd415a216b6131dfff6d95d6930927c8a4e3bded3  LICENSE.md
diff --git a/package/intel-mediadriver/intel-mediadriver.mk b/package/intel-mediadriver/intel-mediadriver.mk
new file mode 100644
index 0000000000..2bc22e9b41
--- /dev/null
+++ b/package/intel-mediadriver/intel-mediadriver.mk
@@ -0,0 +1,30 @@
+################################################################################
+#
+# intel-mediadriver
+#
+################################################################################
+
+# based on https://software.intel.com/en-us/articles/build-and-debug-open-source-media-stack
+
+INTEL_MEDIADRIVER_VERSION = 18.4.0
+INTEL_MEDIADRIVER_SITE = http://github.com/intel/media-driver/archive
+INTEL_MEDIADRIVER_SOURCE= intel-media-$(INTEL_MEDIADRIVER_VERSION).tar.gz
+INTEL_MEDIADRIVER_LICENSE = MIT,BSD-3-Clause
+INTEL_MEDIADRIVER_LICENSE_FILES = LICENSE.md
+
+INTEL_MEDIADRIVER_DEPENDENCIES = \
+	intel-gmmlib \
+	libpciaccess \
+	libva \
+	mesa3d \
+	xlib_libX11
+
+INTEL_MEDIADRIVER_SUPPORTS_IN_SOURCE_BUILD = NO
+
+INTEL_MEDIADRIVER_CONF_OPTS = -DMEDIA_VERSION="2.0.0"\
+	-DBUILD_ALONG_WITH_CMRTLIB=1 \
+	-DINSTALL_DRIVERS_SYSCONF=OFF \
+	-DMEDIA_RUN_TEST_SUITE=OFF \
+	-DRUN_TEST_SUITE=OFF
+
+$(eval $(cmake-package))
-- 
2.20.1

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [Buildroot] [PATCH v3 2/4] package/intel-mediasdk: new package
  2019-02-05 18:19 [Buildroot] [PATCH v3 0/4] *** Add Intel QuickSync support to ffmpeg *** Louis-Paul Cordier
  2019-02-05 18:19 ` [Buildroot] [PATCH v3 1/4] package/intel-mediadriver: new package Louis-Paul Cordier
@ 2019-02-05 18:19 ` Louis-Paul Cordier
  2019-04-16 20:28   ` Thomas Petazzoni
  2019-02-05 18:19 ` [Buildroot] [PATCH v3 3/4] package/ffmpeg: bump to version 4.1 Louis-Paul Cordier
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 15+ messages in thread
From: Louis-Paul Cordier @ 2019-02-05 18:19 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Louis-Paul Cordier <lpdev@cordier.org>
---
v2 -> v3: (feedback Thomas Petazzoni)
- Fix commit title.
- Update DEVELOPERS file.
- Add project URL.
- Bump from 18.3.1 to 18.4.0.
- Various fixes in makefile.

v1 -> v2:
- Let default install target. (feedback Baruch Siach)
- Fix missing dependencies.
- Remove useless CMake options.

 DEVELOPERS                                 |  1 +
 package/Config.in                          |  1 +
 package/intel-mediasdk/Config.in           | 15 +++++++++++++++
 package/intel-mediasdk/intel-mediasdk.hash |  3 +++
 package/intel-mediasdk/intel-mediasdk.mk   | 17 +++++++++++++++++
 5 files changed, 37 insertions(+)
 create mode 100644 package/intel-mediasdk/Config.in
 create mode 100644 package/intel-mediasdk/intel-mediasdk.hash
 create mode 100644 package/intel-mediasdk/intel-mediasdk.mk

diff --git a/DEVELOPERS b/DEVELOPERS
index 266bd4edc9..4dfd68281a 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -1266,6 +1266,7 @@ F:	package/ti-sgx-um/
 N:	Louis-Paul Cordier <lpdev@cordier.org>
 F:	package/intel-gmmlib/
 F:	package/intel-mediadriver/
+F:	package/intel-mediasdk/
 
 N:	Luca Ceresoli <luca@lucaceresoli.net>
 F:	board/olimex/a20_olinuxino/
diff --git a/package/Config.in b/package/Config.in
index ffedf37562..2b6d668c03 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1267,6 +1267,7 @@ menu "Graphics"
 	source "package/imlib2/Config.in"
 	source "package/intel-gmmlib/Config.in"
 	source "package/intel-mediadriver/Config.in"
+	source "package/intel-mediasdk/Config.in"
 	source "package/irrlicht/Config.in"
 	source "package/jasper/Config.in"
 	source "package/jpeg/Config.in"
diff --git a/package/intel-mediasdk/Config.in b/package/intel-mediasdk/Config.in
new file mode 100644
index 0000000000..8a11d92cac
--- /dev/null
+++ b/package/intel-mediasdk/Config.in
@@ -0,0 +1,15 @@
+config BR2_PACKAGE_INTEL_MEDIASDK
+	bool "intel-mediasdk"
+	depends on BR2_x86_64
+	select BR2_PACKAGE_INTEL_MEDIADRIVER
+	help
+	  Intel(R) Media SDK provides an API to access
+	  hardware-accelerated video decode, encode and filtering on
+	  Intel? platforms with integrated graphics.
+
+	  Supported video encoders: HEVC, AVC, MPEG-2, JPEG
+	  Supported Video decoders: HEVC, AVC, VP8, MPEG-2, VC1, JPEG
+	  Supported video pre-processing filters: Color Conversion,
+	  Deinterlace, Denoise, Resize, Rotate, Composition
+
+	  http://mediasdk.intel.com/
diff --git a/package/intel-mediasdk/intel-mediasdk.hash b/package/intel-mediasdk/intel-mediasdk.hash
new file mode 100644
index 0000000000..2d2e36384f
--- /dev/null
+++ b/package/intel-mediasdk/intel-mediasdk.hash
@@ -0,0 +1,3 @@
+# Locally computed
+sha256 259d9b57df4fca316898b6dbe7b4d561ce42160fa953f36e2a4b357e86116bf9  intel-mediasdk-18.4.0.tar.gz
+sha256 dfd67773578903698f9ff4a61eb8f2d84810cbecd56f3f3cee8c649f813b6ea6  LICENSE
diff --git a/package/intel-mediasdk/intel-mediasdk.mk b/package/intel-mediasdk/intel-mediasdk.mk
new file mode 100644
index 0000000000..611529390b
--- /dev/null
+++ b/package/intel-mediasdk/intel-mediasdk.mk
@@ -0,0 +1,17 @@
+################################################################################
+#
+# intel-mediasdk
+#
+################################################################################
+
+INTEL_MEDIASDK_VERSION = 18.4.0
+INTEL_MEDIASDK_SITE = http://github.com/Intel-Media-SDK/MediaSDK/archive
+INTEL_MEDIASDK_LICENSE = MIT
+INTEL_MEDIASDK_LICENSE_FILES = COPYING
+
+INTEL_MEDIASDK_INSTALL_STAGING = YES
+INTEL_MEDIASDK_DEPENDENCIES = intel-mediadriver
+
+INTEL_MEDIASDK_CONF_OPTS = -DMFX_INCLUDE="$(@D)/api/include"
+
+$(eval $(cmake-package))
-- 
2.20.1

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [Buildroot] [PATCH v3 3/4] package/ffmpeg: bump to version 4.1
  2019-02-05 18:19 [Buildroot] [PATCH v3 0/4] *** Add Intel QuickSync support to ffmpeg *** Louis-Paul Cordier
  2019-02-05 18:19 ` [Buildroot] [PATCH v3 1/4] package/intel-mediadriver: new package Louis-Paul Cordier
  2019-02-05 18:19 ` [Buildroot] [PATCH v3 2/4] package/intel-mediasdk: " Louis-Paul Cordier
@ 2019-02-05 18:19 ` Louis-Paul Cordier
  2019-02-06  8:47   ` Thomas Petazzoni
  2019-02-05 18:19 ` [Buildroot] [PATCH v3 4/4] package/ffmpeg: enable Intel QuickSync support Louis-Paul Cordier
  2019-02-25  9:05 ` [Buildroot] [PATCH v3 0/4] *** Add Intel QuickSync support to ffmpeg *** lpdev at cordier.org
  4 siblings, 1 reply; 15+ messages in thread
From: Louis-Paul Cordier @ 2019-02-05 18:19 UTC (permalink / raw)
  To: buildroot

FFserver is not supported anymore
Remove patch 0001: fixed upstream in cae6f806a6367c7760ab6ed059d343d4a8eebd56
Remove patch 0002 to 0004: accepted upstream

Signed-off-by: Louis-Paul Cordier <lpdev@cordier.org>
---
v2 -> v3: (feedback Thomas Petazzoni)
- Fix commit title.
- Check and explain why patches are removed.
- Populate Config.in.legacy with ffeserver removal.

 Config.in.legacy                              |   6 ++
 package/ffmpeg/0001-ffmpeg-pthreads.patch     |  34 ------
 ...cenc-Fix-building-with-libfdk-aac-v2.patch | 100 ------------------
 ...stently-use-a-proper-version-check-m.patch |  99 -----------------
 ...dk-aac-Don-t-use-defined-in-a-define.patch |  72 -------------
 package/ffmpeg/Config.in                      |   6 --
 package/ffmpeg/ffmpeg.hash                    |   2 +-
 package/ffmpeg/ffmpeg.mk                      |   8 +-
 8 files changed, 8 insertions(+), 319 deletions(-)
 delete mode 100644 package/ffmpeg/0001-ffmpeg-pthreads.patch
 delete mode 100644 package/ffmpeg/0002-libfdk-aacenc-Fix-building-with-libfdk-aac-v2.patch
 delete mode 100644 package/ffmpeg/0003-libfdk-aac-Consistently-use-a-proper-version-check-m.patch
 delete mode 100644 package/ffmpeg/0004-libfdk-aac-Don-t-use-defined-in-a-define.patch

diff --git a/Config.in.legacy b/Config.in.legacy
index ef460752f3..b38ff200ff 100644
--- a/Config.in.legacy
+++ b/Config.in.legacy
@@ -168,6 +168,12 @@ config BR2_TARGET_GENERIC_PASSWD_MD5
 	  The default has been moved to SHA256 and all C libraries
 	  now support that method by default
 
+config BR2_PACKAGE_FFMPEG_FFSERVER
+	bool "Build ffserver"
+	depends on BR2_USE_MMU # fork()
+	help
+	  On July 10th, 2016, ffserver program has been dropped.
+
 comment "Legacy options removed in 2018.11"
 
 config BR2_TARGET_XLOADER
diff --git a/package/ffmpeg/0001-ffmpeg-pthreads.patch b/package/ffmpeg/0001-ffmpeg-pthreads.patch
deleted file mode 100644
index c6d75d2297..0000000000
--- a/package/ffmpeg/0001-ffmpeg-pthreads.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From patchwork Wed Oct 25 13:32:36 2017
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Subject: [FFmpeg-devel] configure: v4l2_m2m depends on pthreads
-From: Mark Thompson <sw@jkqxz.net>
-X-Patchwork-Id: 5688
-Message-Id: <27e5b360-1210-d550-c8de-a761f8e9f326@jkqxz.net>
-To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
-Date: Wed, 25 Oct 2017 14:32:36 +0100
-
-Fixes build with --disable-pthreads.
-
-Downloaded from upstream patchworks:
-https://patchwork.ffmpeg.org/patch/5688/
-
-Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
----
- configure | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure b/configure
-index c86e578..76523c8 100755
---- a/configure
-+++ b/configure
-@@ -2780,7 +2780,7 @@ omx_rpi_select="omx"
- qsvdec_select="qsv"
- qsvenc_select="qsv"
- vaapi_encode_deps="vaapi"
--v4l2_m2m_deps_any="linux_videodev2_h"
-+v4l2_m2m_deps="linux_videodev2_h pthreads"
- 
- hwupload_cuda_filter_deps="cuda"
- scale_npp_filter_deps="cuda libnpp"
diff --git a/package/ffmpeg/0002-libfdk-aacenc-Fix-building-with-libfdk-aac-v2.patch b/package/ffmpeg/0002-libfdk-aacenc-Fix-building-with-libfdk-aac-v2.patch
deleted file mode 100644
index 3f452242fa..0000000000
--- a/package/ffmpeg/0002-libfdk-aacenc-Fix-building-with-libfdk-aac-v2.patch
+++ /dev/null
@@ -1,100 +0,0 @@
-From c60fb550302878aba7e86037451f7996e8069289 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Martin=20Storsj=C3=B6?= <martin@martin.st>
-Date: Fri, 31 Aug 2018 14:25:30 +0300
-Subject: [PATCH] libfdk-aacenc: Fix building with libfdk-aac v2
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-When flushing the encoder, we now need to provide non-null buffer
-parameters for everything, even if they are unused.
-
-The encoderDelay parameter has been replaced by two, nDelay and
-nDelayCore.
-
-Downloaded from
-http://git.videolan.org/?p=ffmpeg.git;a=commitdiff;h=141c960e21d2860e354f9b90df136184dd00a9a8
-
-Signed-off-by: Martin Storsj?? <martin@martin.st>
-[Bernd: rebased for ffmpeg 3.4.5]
-Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
----
- libavcodec/libfdk-aacenc.c | 34 +++++++++++++++++++++++++---------
- 1 file changed, 25 insertions(+), 9 deletions(-)
-
-diff --git a/libavcodec/libfdk-aacenc.c b/libavcodec/libfdk-aacenc.c
-index 0e2051b468..f5adb407ed 100644
---- a/libavcodec/libfdk-aacenc.c
-+++ b/libavcodec/libfdk-aacenc.c
-@@ -26,6 +26,11 @@
- #include "audio_frame_queue.h"
- #include "internal.h"
- 
-+#define FDKENC_VER_AT_LEAST(vl0, vl1) \
-+    (defined(AACENCODER_LIB_VL0) && \
-+        ((AACENCODER_LIB_VL0 > vl0) || \
-+         (AACENCODER_LIB_VL0 == vl0 && AACENCODER_LIB_VL1 >= vl1)))
-+
- typedef struct AACContext {
-     const AVClass *class;
-     HANDLE_AACENCODER handle;
-@@ -286,7 +291,11 @@ static av_cold int aac_encode_init(AVCodecContext *avctx)
-     }
- 
-     avctx->frame_size = info.frameLength;
-+#if FDKENC_VER_AT_LEAST(4, 0)
-+    avctx->initial_padding = info.nDelay;
-+#else
-     avctx->initial_padding = info.encoderDelay;
-+#endif
-     ff_af_queue_init(avctx, &s->afq);
- 
-     if (avctx->flags & AV_CODEC_FLAG_GLOBAL_HEADER) {
-@@ -319,28 +328,35 @@ static int aac_encode_frame(AVCodecContext *avctx, AVPacket *avpkt,
-     int out_buffer_size, out_buffer_element_size;
-     void *in_ptr, *out_ptr;
-     int ret;
-+    uint8_t dummy_buf[1];
-     AACENC_ERROR err;
- 
-     /* handle end-of-stream small frame and flushing */
-     if (!frame) {
-+        /* Must be a non-null pointer, even if it's a dummy. We could use
-+         * the address of anything else on the stack as well. */
-+        in_ptr               = dummy_buf;
-+        in_buffer_size       = 0;
-+
-         in_args.numInSamples = -1;
-     } else {
--        in_ptr                   = frame->data[0];
--        in_buffer_size           = 2 * avctx->channels * frame->nb_samples;
--        in_buffer_element_size   = 2;
-+        in_ptr               = frame->data[0];
-+        in_buffer_size       = 2 * avctx->channels * frame->nb_samples;
- 
--        in_args.numInSamples     = avctx->channels * frame->nb_samples;
--        in_buf.numBufs           = 1;
--        in_buf.bufs              = &in_ptr;
--        in_buf.bufferIdentifiers = &in_buffer_identifier;
--        in_buf.bufSizes          = &in_buffer_size;
--        in_buf.bufElSizes        = &in_buffer_element_size;
-+        in_args.numInSamples = avctx->channels * frame->nb_samples;
- 
-         /* add current frame to the queue */
-         if ((ret = ff_af_queue_add(&s->afq, frame)) < 0)
-             return ret;
-     }
- 
-+    in_buffer_element_size   = 2;
-+    in_buf.numBufs           = 1;
-+    in_buf.bufs              = &in_ptr;
-+    in_buf.bufferIdentifiers = &in_buffer_identifier;
-+    in_buf.bufSizes          = &in_buffer_size;
-+    in_buf.bufElSizes        = &in_buffer_element_size;
-+
-     /* The maximum packet size is 6144 bits aka 768 bytes per channel. */
-     if ((ret = ff_alloc_packet2(avctx, avpkt, FFMAX(8192, 768 * avctx->channels), 0)) < 0)
-         return ret;
--- 
-2.20.1
-
diff --git a/package/ffmpeg/0003-libfdk-aac-Consistently-use-a-proper-version-check-m.patch b/package/ffmpeg/0003-libfdk-aac-Consistently-use-a-proper-version-check-m.patch
deleted file mode 100644
index c358a045d1..0000000000
--- a/package/ffmpeg/0003-libfdk-aac-Consistently-use-a-proper-version-check-m.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-From 48be4c81e0ad081edab65e133e6e1bdec7de3b55 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Martin=20Storsj=C3=B6?= <martin@martin.st>
-Date: Tue, 4 Sep 2018 08:29:37 +0300
-Subject: [PATCH] libfdk-aac: Consistently use a proper version check macro for
- detecting features
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-libfdk-aac: Consistently use a proper version check macro for detecting features
-
-The previous version checks checked explicitly for the version
-where the version define was added to the installed headers,
-making an "#ifdef AACDECODER_LIB_VL0" enough. Now that we have
-a need for more diverse version checks than this, convert all checks
-to such checks.
-
-Downloaded from
-http://git.videolan.org/?p=ffmpeg.git;a=commitdiff;h=ffb9b7a6bab6c6bfd3dd9a7c32e3724209824999
-
-Signed-off-by: Martin Storsj? <martin@martin.st>
-Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
----
- libavcodec/libfdk-aacdec.c | 13 ++++++++-----
- libavcodec/libfdk-aacenc.c |  6 +++---
- 2 files changed, 11 insertions(+), 8 deletions(-)
-
-diff --git a/libavcodec/libfdk-aacdec.c b/libavcodec/libfdk-aacdec.c
-index 2857b9453f..ef51184ebd 100644
---- a/libavcodec/libfdk-aacdec.c
-+++ b/libavcodec/libfdk-aacdec.c
-@@ -25,9 +25,12 @@
- #include "avcodec.h"
- #include "internal.h"
- 
--/* The version macro is introduced the same time as the setting enum was
-- * changed, so this check should suffice. */
--#ifndef AACDECODER_LIB_VL0
-+#define FDKDEC_VER_AT_LEAST(vl0, vl1) \
-+    (defined(AACDECODER_LIB_VL0) && \
-+        ((AACDECODER_LIB_VL0 > vl0) || \
-+         (AACDECODER_LIB_VL0 == vl0 && AACDECODER_LIB_VL1 >= vl1)))
-+
-+#if !FDKDEC_VER_AT_LEAST(2, 5) // < 2.5.10
- #define AAC_PCM_MAX_OUTPUT_CHANNELS AAC_PCM_OUTPUT_CHANNELS
- #endif
- 
-@@ -72,7 +75,7 @@ static const AVOption fdk_aac_dec_options[] = {
-                      OFFSET(drc_level),      AV_OPT_TYPE_INT,   { .i64 = -1},  -1, 127, AD, NULL    },
-     { "drc_heavy", "Dynamic Range Control: heavy compression, where [1] is on (RF mode) and [0] is off",
-                      OFFSET(drc_heavy),      AV_OPT_TYPE_INT,   { .i64 = -1},  -1, 1,   AD, NULL    },
--#ifdef AACDECODER_LIB_VL0
-+#if FDKDEC_VER_AT_LEAST(2, 5) // 2.5.10
-     { "level_limit", "Signal level limiting", OFFSET(level_limit), AV_OPT_TYPE_INT, { .i64 = 0 }, -1, 1, AD },
- #endif
-     { NULL }
-@@ -293,7 +296,7 @@ static av_cold int fdk_aac_decode_init(AVCodecContext *avctx)
-         }
-     }
- 
--#ifdef AACDECODER_LIB_VL0
-+#if FDKDEC_VER_AT_LEAST(2, 5) // 2.5.10
-     if (aacDecoder_SetParam(s->handle, AAC_PCM_LIMITER_ENABLE, s->level_limit) != AAC_DEC_OK) {
-         av_log(avctx, AV_LOG_ERROR, "Unable to set in signal level limiting in the decoder\n");
-         return AVERROR_UNKNOWN;
-diff --git a/libavcodec/libfdk-aacenc.c b/libavcodec/libfdk-aacenc.c
-index f5adb407ed..91dcb5a1b9 100644
---- a/libavcodec/libfdk-aacenc.c
-+++ b/libavcodec/libfdk-aacenc.c
-@@ -156,7 +156,7 @@ static av_cold int aac_encode_init(AVCodecContext *avctx)
-     case 6: mode = MODE_1_2_2_1; sce = 2; cpe = 2; break;
- /* The version macro is introduced the same time as the 7.1 support, so this
-    should suffice. */
--#ifdef AACENCODER_LIB_VL0
-+#if FDKENC_VER_AT_LEAST(3, 4) // 3.4.12
-     case 8:
-         sce = 2;
-         cpe = 3;
-@@ -291,7 +291,7 @@ static av_cold int aac_encode_init(AVCodecContext *avctx)
-     }
- 
-     avctx->frame_size = info.frameLength;
--#if FDKENC_VER_AT_LEAST(4, 0)
-+#if FDKENC_VER_AT_LEAST(4, 0) // 4.0.0
-     avctx->initial_padding = info.nDelay;
- #else
-     avctx->initial_padding = info.encoderDelay;
-@@ -412,7 +412,7 @@ static const uint64_t aac_channel_layout[] = {
-     AV_CH_LAYOUT_4POINT0,
-     AV_CH_LAYOUT_5POINT0_BACK,
-     AV_CH_LAYOUT_5POINT1_BACK,
--#ifdef AACENCODER_LIB_VL0
-+#if FDKENC_VER_AT_LEAST(3, 4) // 3.4.12
-     AV_CH_LAYOUT_7POINT1_WIDE_BACK,
-     AV_CH_LAYOUT_7POINT1,
- #endif
--- 
-2.20.1
-
diff --git a/package/ffmpeg/0004-libfdk-aac-Don-t-use-defined-in-a-define.patch b/package/ffmpeg/0004-libfdk-aac-Don-t-use-defined-in-a-define.patch
deleted file mode 100644
index 30357b91e1..0000000000
--- a/package/ffmpeg/0004-libfdk-aac-Don-t-use-defined-in-a-define.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From 452746d80fdaaaf1b546860eb78449c6de3678d7 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Martin=20Storsj=C3=B6?= <martin@martin.st>
-Date: Wed, 12 Sep 2018 20:03:12 +0300
-Subject: [PATCH] libfdk-aac: Don't use defined() in a #define
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-libfdk-aac: Don't use defined() in a #define
-
-MSVC expands the preprocessor directives differently, making the
-version check fail in the previous form.
-
-Clang can warn about this with -Wexpansion-to-defined (not currently
-enabled by default):
-warning: macro expansion producing 'defined' has undefined behavior [-Wexpansion-to-defined]
-
-Downloaded from
-http://git.videolan.org/?p=ffmpeg.git;a=commitdiff;h=2a9e1c122eed66be1b26b747342b848300b226c7
-
-Signed-off-by: Martin Storsj? <martin@martin.st>
-Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
----
- libavcodec/libfdk-aacdec.c | 9 ++++++---
- libavcodec/libfdk-aacenc.c | 9 ++++++---
- 2 files changed, 12 insertions(+), 6 deletions(-)
-
-diff --git a/libavcodec/libfdk-aacdec.c b/libavcodec/libfdk-aacdec.c
-index ef51184ebd..0fbab36463 100644
---- a/libavcodec/libfdk-aacdec.c
-+++ b/libavcodec/libfdk-aacdec.c
-@@ -25,10 +25,13 @@
- #include "avcodec.h"
- #include "internal.h"
- 
-+#ifdef AACDECODER_LIB_VL0
- #define FDKDEC_VER_AT_LEAST(vl0, vl1) \
--    (defined(AACDECODER_LIB_VL0) && \
--        ((AACDECODER_LIB_VL0 > vl0) || \
--         (AACDECODER_LIB_VL0 == vl0 && AACDECODER_LIB_VL1 >= vl1)))
-+    ((AACDECODER_LIB_VL0 > vl0) || \
-+     (AACDECODER_LIB_VL0 == vl0 && AACDECODER_LIB_VL1 >= vl1))
-+#else
-+#define FDKDEC_VER_AT_LEAST(vl0, vl1) 0
-+#endif
- 
- #if !FDKDEC_VER_AT_LEAST(2, 5) // < 2.5.10
- #define AAC_PCM_MAX_OUTPUT_CHANNELS AAC_PCM_OUTPUT_CHANNELS
-diff --git a/libavcodec/libfdk-aacenc.c b/libavcodec/libfdk-aacenc.c
-index 91dcb5a1b9..8349e56dcb 100644
---- a/libavcodec/libfdk-aacenc.c
-+++ b/libavcodec/libfdk-aacenc.c
-@@ -26,10 +26,13 @@
- #include "audio_frame_queue.h"
- #include "internal.h"
- 
-+#ifdef AACENCODER_LIB_VL0
- #define FDKENC_VER_AT_LEAST(vl0, vl1) \
--    (defined(AACENCODER_LIB_VL0) && \
--        ((AACENCODER_LIB_VL0 > vl0) || \
--         (AACENCODER_LIB_VL0 == vl0 && AACENCODER_LIB_VL1 >= vl1)))
-+    ((AACENCODER_LIB_VL0 > vl0) || \
-+     (AACENCODER_LIB_VL0 == vl0 && AACENCODER_LIB_VL1 >= vl1))
-+#else
-+#define FDKENC_VER_AT_LEAST(vl0, vl1) 0
-+#endif
- 
- typedef struct AACContext {
-     const AVClass *class;
--- 
-2.20.1
-
diff --git a/package/ffmpeg/Config.in b/package/ffmpeg/Config.in
index 2d94c5712a..eec7ce0f6b 100644
--- a/package/ffmpeg/Config.in
+++ b/package/ffmpeg/Config.in
@@ -63,12 +63,6 @@ config BR2_PACKAGE_FFMPEG_FFPLAY
 comment "ffplay needs a toolchain w/ dynamic library"
 	depends on BR2_STATIC_LIBS
 
-config BR2_PACKAGE_FFMPEG_FFSERVER
-	bool "Build ffserver"
-	depends on BR2_USE_MMU # fork()
-	help
-	  FFserver is a streaming server for both audio and video.
-
 config BR2_PACKAGE_FFMPEG_FFPROBE
 	bool "Build ffprobe"
 	help
diff --git a/package/ffmpeg/ffmpeg.hash b/package/ffmpeg/ffmpeg.hash
index e00c4ec56c..c21561698f 100644
--- a/package/ffmpeg/ffmpeg.hash
+++ b/package/ffmpeg/ffmpeg.hash
@@ -1,5 +1,5 @@
 # Locally calculated
-sha256 741cbd6394eaed370774ca4cc089eaafbc54d0824b9aa360d4b3b0cbcbc4a92c  ffmpeg-3.4.5.tar.xz
+sha256 a38ec4d026efb58506a99ad5cd23d5a9793b4bf415f2c4c2e9c1bb444acd1994  ffmpeg-4.1.tar.xz
 sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643  COPYING.GPLv2
 sha256 b634ab5640e258563c536e658cad87080553df6f34f62269a21d554844e58bfe  COPYING.LGPLv2.1
 sha256 73d99bc83313fff665b426d6672b4e0479102bc402fe22314ac9ce94a38aa5ff  LICENSE.md
diff --git a/package/ffmpeg/ffmpeg.mk b/package/ffmpeg/ffmpeg.mk
index b86d465df8..c42fa54cd1 100644
--- a/package/ffmpeg/ffmpeg.mk
+++ b/package/ffmpeg/ffmpeg.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-FFMPEG_VERSION = 3.4.5
+FFMPEG_VERSION = 4.1
 FFMPEG_SOURCE = ffmpeg-$(FFMPEG_VERSION).tar.xz
 FFMPEG_SITE = http://ffmpeg.org/releases
 FFMPEG_INSTALL_STAGING = YES
@@ -84,12 +84,6 @@ else
 FFMPEG_CONF_OPTS += --disable-ffplay
 endif
 
-ifeq ($(BR2_PACKAGE_FFMPEG_FFSERVER),y)
-FFMPEG_CONF_OPTS += --enable-ffserver
-else
-FFMPEG_CONF_OPTS += --disable-ffserver
-endif
-
 ifeq ($(BR2_PACKAGE_FFMPEG_AVRESAMPLE),y)
 FFMPEG_CONF_OPTS += --enable-avresample
 else
-- 
2.20.1

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [Buildroot] [PATCH v3 4/4] package/ffmpeg: enable Intel QuickSync support.
  2019-02-05 18:19 [Buildroot] [PATCH v3 0/4] *** Add Intel QuickSync support to ffmpeg *** Louis-Paul Cordier
                   ` (2 preceding siblings ...)
  2019-02-05 18:19 ` [Buildroot] [PATCH v3 3/4] package/ffmpeg: bump to version 4.1 Louis-Paul Cordier
@ 2019-02-05 18:19 ` Louis-Paul Cordier
  2019-04-16 20:28   ` Thomas Petazzoni
  2019-02-25  9:05 ` [Buildroot] [PATCH v3 0/4] *** Add Intel QuickSync support to ffmpeg *** lpdev at cordier.org
  4 siblings, 1 reply; 15+ messages in thread
From: Louis-Paul Cordier @ 2019-02-05 18:19 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Louis-Paul Cordier <lpdev@cordier.org>
---
v1 -> v2:
- Fix typo.

 package/ffmpeg/ffmpeg.mk | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/package/ffmpeg/ffmpeg.mk b/package/ffmpeg/ffmpeg.mk
index c42fa54cd1..673c79b4e9 100644
--- a/package/ffmpeg/ffmpeg.mk
+++ b/package/ffmpeg/ffmpeg.mk
@@ -309,6 +309,13 @@ else
 FFMPEG_CONF_OPTS += --disable-libbluray
 endif
 
+ifeq ($(BR2_PACKAGE_INTEL_MEDIASDK),y)
+FFMPEG_CONF_OPTS += --enable-libmfx
+FFMPEG_DEPENDENCIES += intel-mediasdk
+else
+FFMPEG_CONF_OPTS += --disable-libmfx
+endif
+
 ifeq ($(BR2_PACKAGE_RTMPDUMP),y)
 FFMPEG_CONF_OPTS += --enable-librtmp
 FFMPEG_DEPENDENCIES += rtmpdump
-- 
2.20.1

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [Buildroot] [PATCH v3 3/4] package/ffmpeg: bump to version 4.1
  2019-02-05 18:19 ` [Buildroot] [PATCH v3 3/4] package/ffmpeg: bump to version 4.1 Louis-Paul Cordier
@ 2019-02-06  8:47   ` Thomas Petazzoni
  2019-02-06  9:33     ` lpdev at cordier.org
  0 siblings, 1 reply; 15+ messages in thread
From: Thomas Petazzoni @ 2019-02-06  8:47 UTC (permalink / raw)
  To: buildroot

On Tue,  5 Feb 2019 19:19:45 +0100
Louis-Paul Cordier <lpdev@cordier.org> wrote:

> FFserver is not supported anymore
> Remove patch 0001: fixed upstream in cae6f806a6367c7760ab6ed059d343d4a8eebd56
> Remove patch 0002 to 0004: accepted upstream
> 
> Signed-off-by: Louis-Paul Cordier <lpdev@cordier.org>

As was previously discussed, we cannot merge this if all packages that
depend on ffmpeg are not compatible with ffmpeg 4.x.

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Buildroot] [PATCH v3 3/4] package/ffmpeg: bump to version 4.1
  2019-02-06  8:47   ` Thomas Petazzoni
@ 2019-02-06  9:33     ` lpdev at cordier.org
  2019-02-06  9:47       ` Thomas Petazzoni
  0 siblings, 1 reply; 15+ messages in thread
From: lpdev at cordier.org @ 2019-02-06  9:33 UTC (permalink / raw)
  To: buildroot


> De : Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> ? : Louis-Paul Cordier <lpdev@cordier.org>
> Sujet : Re: [Buildroot] [PATCH v3 3/4] package/ffmpeg: bump to version 4.1
> Date : 06/02/2019 09:47:27 Europe/Paris
> Copie ? : buildroot at buildroot.org;
>    Bernd Kuhls <bernd.kuhls@t-online.de>;
>    MahyarKoshkouei <mahyar.koshkouei@gmail.com>;
>    Martin Storsj?? <martin@martin.st>
>
> On Tue, 5 Feb 2019 19:19:45 +0100
> Louis-Paul Cordier <lpdev@cordier.org> wrote:
>
> > FFserver is not supported anymore
> > Remove patch 0001: fixed upstream in cae6f806a6367c7760ab6ed059d343d4a8eebd56
> > Remove patch 0002 to 0004: accepted upstream
> >
> > Signed-off-by: Louis-Paul Cordier <lpdev@cordier.org>
>
> As was previously discussed, we cannot merge this if all packages that
> depend on ffmpeg are not compatible with ffmpeg 4.x.
>
> Thomas
> -- 
> Thomas Petazzoni, CTO, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com

Hi again,

What decision should be taken on this? We have 2 solutions has Bernd stated: either bumping GStreamer to a more recent version (that seems to be not welcomed by some people), or applying Bernd patch. What about the latter? 

I can modify my patch serie to include Bernd's patch. Would it possibly convince everyone for a final merge?

In the meantime, I think you can merge intel media driver and mediasdk patches. Thanks for your time!

BR,
Louis-Paul CORDIER

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Buildroot] [PATCH v3 3/4] package/ffmpeg: bump to version 4.1
  2019-02-06  9:33     ` lpdev at cordier.org
@ 2019-02-06  9:47       ` Thomas Petazzoni
  2019-02-10 10:01         ` Bernd Kuhls
  0 siblings, 1 reply; 15+ messages in thread
From: Thomas Petazzoni @ 2019-02-06  9:47 UTC (permalink / raw)
  To: buildroot

Hello,

(It would be good to configure your e-mail client to wrap lines at 72
characters)

On Wed,  6 Feb 2019 10:33:48 +0100 (CET)
lpdev at cordier.org wrote:

> What decision should be taken on this? We have 2 solutions has Bernd
> stated: either bumping GStreamer to a more recent version (that seems
> to be not welcomed by some people), or applying Bernd patch. What
> about the latter? 
> 
> I can modify my patch serie to include Bernd's patch. Would it
> possibly convince everyone for a final merge?

Is there a stable version of gstreamer that was released and that is
compatible with ffmpeg 4.x ? If so, that's what we want to use.

If not, then presumably there are upstream GStreamer changes that make
it compatible with ffmpeg 4.x, and we would like to see those patches
backported rather than using home-grown patches.

> In the meantime, I think you can merge intel media driver and
> mediasdk patches. Thanks for your time!

Yes, sure thing.

Thanks,

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Buildroot] [PATCH v3 3/4] package/ffmpeg: bump to version 4.1
  2019-02-06  9:47       ` Thomas Petazzoni
@ 2019-02-10 10:01         ` Bernd Kuhls
  2019-02-10 10:27           ` Thomas Petazzoni
  0 siblings, 1 reply; 15+ messages in thread
From: Bernd Kuhls @ 2019-02-10 10:01 UTC (permalink / raw)
  To: buildroot

Hi,

Am Wed, 06 Feb 2019 10:47:49 +0100 schrieb Thomas Petazzoni:

> Is there a stable version of gstreamer that was released and that is
> compatible with ffmpeg 4.x ? If so, that's what we want to use.

no:
https://bugzilla.gnome.org/show_bug.cgi?id=792900#c14
"I wouldn't worry about the backwards compatibility, but we would have to 
wait until 1.16 in that case. Can't be included in 1.14."

https://github.com/GStreamer/gst-libav/blob/master/NEWS
"GStreamer 1.16 has not been released yet. It is scheduled for release in
January/February 2019."

Only unstable 1.15.1 was released yet.

> If not, then presumably there are upstream GStreamer changes that make
> it compatible with ffmpeg 4.x, and we would like to see those patches
> backported rather than using home-grown patches.

No, upstream says backporting is not possible:
https://github.com/GStreamer/gst-libav/commit/
8886a016fce625e1c25a4902be4021196a6784a2#diff-
ff4e2dc4962dc25a1512353299992c8dR1400

"-   The gst-libav module in 1.14 will only build against older ffmpeg
    3.x versions and won?t build against the newly-released ffmpeg 4.0
    (as in RPM Fusion for Fedora 28) due to API changes. Use the
    internal ffmpeg copy instead if you build using autotools. This is
    fixed in git master / upcoming 1.16, but won?t be backported to the
    1.14 branch as it is rather intrusive and difficult to support both
    old and new APIs at the same time."

Regards, Bernd

PS: ffmpeg 4.1.1 was released.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Buildroot] [PATCH v3 3/4] package/ffmpeg: bump to version 4.1
  2019-02-10 10:01         ` Bernd Kuhls
@ 2019-02-10 10:27           ` Thomas Petazzoni
  2019-02-10 18:53             ` Bernd Kuhls
  0 siblings, 1 reply; 15+ messages in thread
From: Thomas Petazzoni @ 2019-02-10 10:27 UTC (permalink / raw)
  To: buildroot

Hello,

On Sun, 10 Feb 2019 11:01:05 +0100
Bernd Kuhls <bernd.kuhls@t-online.de> wrote:

> no:
> https://bugzilla.gnome.org/show_bug.cgi?id=792900#c14
> "I wouldn't worry about the backwards compatibility, but we would have to 
> wait until 1.16 in that case. Can't be included in 1.14."
> 
> https://github.com/GStreamer/gst-libav/blob/master/NEWS
> "GStreamer 1.16 has not been released yet. It is scheduled for release in
> January/February 2019."

OK.

> Only unstable 1.15.1 was released yet.
> 
> > If not, then presumably there are upstream GStreamer changes that make
> > it compatible with ffmpeg 4.x, and we would like to see those patches
> > backported rather than using home-grown patches.  
> 
> No, upstream says backporting is not possible:
> https://github.com/GStreamer/gst-libav/commit/
> 8886a016fce625e1c25a4902be4021196a6784a2#diff-
> ff4e2dc4962dc25a1512353299992c8dR1400
> 
> "-   The gst-libav module in 1.14 will only build against older ffmpeg
>     3.x versions and won?t build against the newly-released ffmpeg 4.0
>     (as in RPM Fusion for Fedora 28) due to API changes. Use the
>     internal ffmpeg copy instead if you build using autotools. This is
>     fixed in git master / upcoming 1.16, but won?t be backported to the
>     1.14 branch as it is rather intrusive and difficult to support both
>     old and new APIs at the same time."

Then, what about temporarily using the internal ffmpeg copy in
gst-libav, until a new version of gst-libav gets released ?

But anyway, it's too late to bump ffmpeg to 4.x for 2019.02, so it will
anyway be done for the next release, and by then, the new GStreamer
release should be available.

Thanks,

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Buildroot] [PATCH v3 3/4] package/ffmpeg: bump to version 4.1
  2019-02-10 10:27           ` Thomas Petazzoni
@ 2019-02-10 18:53             ` Bernd Kuhls
  0 siblings, 0 replies; 15+ messages in thread
From: Bernd Kuhls @ 2019-02-10 18:53 UTC (permalink / raw)
  To: buildroot

Am Sun, 10 Feb 2019 11:27:02 +0100 schrieb Thomas Petazzoni:

> Then, what about temporarily using the internal ffmpeg copy in
> gst-libav, until a new version of gst-libav gets released ?

Hi Thomas,

sent patch: http://patchwork.ozlabs.org/patch/1039476/

test-pkg with this defconfig

BR2_PACKAGE_GSTREAMER1=y
BR2_PACKAGE_GST1_LIBAV=y

looks good:

                             arm-aarch64 [ 1/48]: OK
                armv5-ctng-linux-gnueabi [ 2/48]: OK
              armv7-ctng-linux-gnueabihf [ 3/48]: OK
                        br-aarch64-glibc [ 4/48]: OK
                           br-arcle-hs38 [ 5/48]: OK
                            br-arm-basic [ 6/48]: SKIPPED
                  br-arm-cortex-a9-glibc [ 7/48]: OK
                   br-arm-cortex-a9-musl [ 8/48]: OK
                   br-arm-cortex-m4-full [ 9/48]: SKIPPED
                             br-arm-full [10/48]: OK
                    br-arm-full-nothread [11/48]: SKIPPED

Regards, Bernd

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Buildroot] [PATCH v3 0/4] *** Add Intel QuickSync support to ffmpeg ***
  2019-02-05 18:19 [Buildroot] [PATCH v3 0/4] *** Add Intel QuickSync support to ffmpeg *** Louis-Paul Cordier
                   ` (3 preceding siblings ...)
  2019-02-05 18:19 ` [Buildroot] [PATCH v3 4/4] package/ffmpeg: enable Intel QuickSync support Louis-Paul Cordier
@ 2019-02-25  9:05 ` lpdev at cordier.org
  4 siblings, 0 replies; 15+ messages in thread
From: lpdev at cordier.org @ 2019-02-25  9:05 UTC (permalink / raw)
  To: buildroot

> De : Louis-Paul Cordier <lpdev@cordier.org>
> ? : buildroot at buildroot.org
> Sujet : [PATCH v3 0/4] *** Add Intel QuickSync support to ffmpeg ***
> Date : 05/02/2019 19:19:42 Europe/Paris
> Copie ? : Louis-Paul Cordier <lpdev@cordier.org>;
> Bernd Kuhls <bernd.kuhls@t-online.de>;
> Mahyar Koshkouei <mahyar.koshkouei@gmail.com>
>
> In addition of the existing VAAPI for hardware encoding, Intel provides
> the libmfx API embeded in its Intel MediaSDK. Intel MediaSDK improves
> encoding quality, is faster, and makes use of all encoding capabilities
> on Intel platforms.
>
> MFX test procedure (h264):
>
> 1. Retrieve sample data (https://github.com/Intel-Media-SDK/samples)
> 2. Run ./sample_multi_transcode -i::h264 test_stream.264 -o::h264 out.264.
> 3. Test should pass.
>
> FFMpeg QuickSync test procedure (h264):
>
> 1. Download test video: https://peach.blender.org/trailer-page/
> 2. Run ffmpeg -y -hwaccel qsv -qsv_device /dev/dri/renderD128 -c:v
> h264_qsv -i /trailer_1080p.mov -c:v h264_qsv -framerate 60 -acodec
> copy out.mp4
>
> Louis-Paul Cordier (4):
> package/intel-mediadriver: new package
> package/intel-mediasdk: new package
> package/ffmpeg: bump to version 4.1
> package/ffmpeg: enable Intel QuickSync support.
>
> Config.in.legacy | 6 ++
> DEVELOPERS | 2 +
> package/Config.in | 2 +
> package/ffmpeg/0001-ffmpeg-pthreads.patch | 34 ------
> ...cenc-Fix-building-with-libfdk-aac-v2.patch | 100 ------------------
> ...stently-use-a-proper-version-check-m.patch | 99 -----------------
> ...dk-aac-Don-t-use-defined-in-a-define.patch | 72 -------------
> package/ffmpeg/Config.in | 6 --
> package/ffmpeg/ffmpeg.hash | 2 +-
> package/ffmpeg/ffmpeg.mk | 15 +--
> package/intel-mediadriver/Config.in | 21 ++++
> .../intel-mediadriver/intel-mediadriver.hash | 3 +
> .../intel-mediadriver/intel-mediadriver.mk | 30 ++++++
> package/intel-mediasdk/Config.in | 15 +++
> package/intel-mediasdk/intel-mediasdk.hash | 3 +
> package/intel-mediasdk/intel-mediasdk.mk | 17 +++
> 16 files changed, 108 insertions(+), 319 deletions(-)
> delete mode 100644 package/ffmpeg/0001-ffmpeg-pthreads.patch
> delete mode 100644 package/ffmpeg/0002-libfdk-aacenc-Fix-building-with-libfdk-aac-v2.patch
> delete mode 100644 package/ffmpeg/0003-libfdk-aac-Consistently-use-a-proper-version-check-m.patch
> delete mode 100644 package/ffmpeg/0004-libfdk-aac-Don-t-use-defined-in-a-define.patch
> create mode 100644 package/intel-mediadriver/Config.in
> create mode 100644 package/intel-mediadriver/intel-mediadriver.hash
> create mode 100644 package/intel-mediadriver/intel-mediadriver.mk
> create mode 100644 package/intel-mediasdk/Config.in
> create mode 100644 package/intel-mediasdk/intel-mediasdk.hash
> create mode 100644 package/intel-mediasdk/intel-mediasdk.mk
>
> -- 
> 2.20.1
>

Hi all, any news on the merge of these patches?

Thanks

Louis-Paul CORDIER

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Buildroot] [PATCH v3 1/4] package/intel-mediadriver: new package
  2019-02-05 18:19 ` [Buildroot] [PATCH v3 1/4] package/intel-mediadriver: new package Louis-Paul Cordier
@ 2019-04-16 20:26   ` Thomas Petazzoni
  0 siblings, 0 replies; 15+ messages in thread
From: Thomas Petazzoni @ 2019-04-16 20:26 UTC (permalink / raw)
  To: buildroot

Hello,

On Tue,  5 Feb 2019 19:19:43 +0100
Louis-Paul Cordier <lpdev@cordier.org> wrote:

> Signed-off-by: Louis-Paul Cordier <lpdev@cordier.org>

I have applied after doing a few changes, see below.

> diff --git a/package/intel-mediadriver/Config.in b/package/intel-mediadriver/Config.in
> new file mode 100644
> index 0000000000..7dd80fbfc7
> --- /dev/null
> +++ b/package/intel-mediadriver/Config.in
> @@ -0,0 +1,21 @@
> +config BR2_PACKAGE_INTEL_MEDIADRIVER
> +	bool "intel-mediadriver"
> +	depends on BR2_x86_64
> +	depends on !BR2_STATIC_LIBS # mesa3D/libva
> +	depends on BR2_INSTALL_LIBSTDCPP # mesa3D
> +	depends on BR2_TOOLCHAIN_HAS_SYNC_1 # mesa3D
> +	depends on BR2_TOOLCHAIN_HAS_THREADS # libva/libdrm/libpthread-stubs
> +	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # mesa3D

mesa3D -> mesa3d

but more importantly, when you have dependencies, there should be
corresponding Config.in comments. So I've added:

+comment "intel-mediadriver needs X.org"
+       depends on BR2_x86_64 && BR2_TOOLCHAIN_HAS_SYNC_1
+       depends on !BR2_PACKAGE_XORG7
+
+comment "intel-mediadriver needs a toolchain w/ dynamic library, C++, NPTL"
+       depends on BR2_x86_64 && BR2_TOOLCHAIN_HAS_SYNC_1
+       depends on BR2_STATIC_LIBS || !BR2_INSTALL_LIBSTDCPP || \
+               !BR2_TOOLCHAIN_HAS_THREADS_NPTL

> +INTEL_MEDIADRIVER_VERSION = 18.4.0
> +INTEL_MEDIADRIVER_SITE = http://github.com/intel/media-driver/archive
> +INTEL_MEDIADRIVER_SOURCE= intel-media-$(INTEL_MEDIADRIVER_VERSION).tar.gz
> +INTEL_MEDIADRIVER_LICENSE = MIT,BSD-3-Clause

A space should have been used to separate the licenses.

Besides that, the build was failing with a non-SSP capable toolchain,
so I've added a quick patch
package/intel-mediadriver/0001-Drop-hardening-related-flags.patch to
drop -fstack-protector from the build flags.

Could you work on an improved solution that can be submitted upstream ?
The best solution is to provide an option to enable/disable usage of
hardening related options.

Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Buildroot] [PATCH v3 2/4] package/intel-mediasdk: new package
  2019-02-05 18:19 ` [Buildroot] [PATCH v3 2/4] package/intel-mediasdk: " Louis-Paul Cordier
@ 2019-04-16 20:28   ` Thomas Petazzoni
  0 siblings, 0 replies; 15+ messages in thread
From: Thomas Petazzoni @ 2019-04-16 20:28 UTC (permalink / raw)
  To: buildroot

Hello,

On Tue,  5 Feb 2019 19:19:44 +0100
Louis-Paul Cordier <lpdev@cordier.org> wrote:

> Signed-off-by: Louis-Paul Cordier <lpdev@cordier.org>

I have applied as well, with some changes, see below.

> diff --git a/package/intel-mediasdk/Config.in b/package/intel-mediasdk/Config.in
> new file mode 100644
> index 0000000000..8a11d92cac
> --- /dev/null
> +++ b/package/intel-mediasdk/Config.in
> @@ -0,0 +1,15 @@
> +config BR2_PACKAGE_INTEL_MEDIASDK
> +	bool "intel-mediasdk"
> +	depends on BR2_x86_64
> +	select BR2_PACKAGE_INTEL_MEDIADRIVER

You can't select a package like this without replicating all its
dependencies. So I've done that.

Also, it was missing a select BR2_PACKAGE_LIBDRM_INTEL, without which
it doesn't build.

And for this package as well, -fstack-protector usage breaks with
non-SSP toolchains, so I added
package/intel-mediasdk/0001-Don-t-force-fstack-protector.patch to work
around that. Could you work on an upstreamable solution to this issue ?

Thanks,

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Buildroot] [PATCH v3 4/4] package/ffmpeg: enable Intel QuickSync support.
  2019-02-05 18:19 ` [Buildroot] [PATCH v3 4/4] package/ffmpeg: enable Intel QuickSync support Louis-Paul Cordier
@ 2019-04-16 20:28   ` Thomas Petazzoni
  0 siblings, 0 replies; 15+ messages in thread
From: Thomas Petazzoni @ 2019-04-16 20:28 UTC (permalink / raw)
  To: buildroot

On Tue,  5 Feb 2019 19:19:46 +0100
Louis-Paul Cordier <lpdev@cordier.org> wrote:

> Signed-off-by: Louis-Paul Cordier <lpdev@cordier.org>
> ---
> v1 -> v2:
> - Fix typo.

Applied to master, thanks.

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2019-04-16 20:28 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-02-05 18:19 [Buildroot] [PATCH v3 0/4] *** Add Intel QuickSync support to ffmpeg *** Louis-Paul Cordier
2019-02-05 18:19 ` [Buildroot] [PATCH v3 1/4] package/intel-mediadriver: new package Louis-Paul Cordier
2019-04-16 20:26   ` Thomas Petazzoni
2019-02-05 18:19 ` [Buildroot] [PATCH v3 2/4] package/intel-mediasdk: " Louis-Paul Cordier
2019-04-16 20:28   ` Thomas Petazzoni
2019-02-05 18:19 ` [Buildroot] [PATCH v3 3/4] package/ffmpeg: bump to version 4.1 Louis-Paul Cordier
2019-02-06  8:47   ` Thomas Petazzoni
2019-02-06  9:33     ` lpdev at cordier.org
2019-02-06  9:47       ` Thomas Petazzoni
2019-02-10 10:01         ` Bernd Kuhls
2019-02-10 10:27           ` Thomas Petazzoni
2019-02-10 18:53             ` Bernd Kuhls
2019-02-05 18:19 ` [Buildroot] [PATCH v3 4/4] package/ffmpeg: enable Intel QuickSync support Louis-Paul Cordier
2019-04-16 20:28   ` Thomas Petazzoni
2019-02-25  9:05 ` [Buildroot] [PATCH v3 0/4] *** Add Intel QuickSync support to ffmpeg *** lpdev at cordier.org

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.