Commit 52965481 authored by Thomas Guillem's avatar Thomas Guillem

backport ffmpeg vtenc background patches

parent fd43d881
From 4775537e9a3857c2c631f70f1344b496dea20b55 Mon Sep 17 00:00:00 2001
From d22b950321df731c2154935fbb236fa05a1ae339 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Felix=20Paul=20K=C3=BChne?= <fkuehne@videolan.org>
Date: Thu, 18 Dec 2014 22:14:55 +0100
Subject: [PATCH 01/17] arm_neon: work-around libtool issue
Subject: [PATCH 01/18] arm_neon: work-around libtool issue
---
modules/arm_neon/Makefile.am | 2 ++
......@@ -18,5 +18,5 @@ index 10f5c15d7c..0406ded7eb 100644
libchroma_yuv_neon_plugin_la_SOURCES = \
--
2.17.0
2.17.1
From 0e8b1b018b07f203d34e4b77c8f717f84850f7fe Mon Sep 17 00:00:00 2001
From 8f9d167e7e2a33ef516bca5778fe1f37411e5108 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Felix=20Paul=20K=C3=BChne?= <fkuehne@videolan.org>
Date: Wed, 10 Dec 2014 22:14:55 +0100
Subject: [PATCH 02/17] disable neon volume plugin
Subject: [PATCH 02/18] disable neon volume plugin
---
modules/arm_neon/Makefile.am | 1 -
......@@ -20,5 +20,5 @@ index 0406ded7eb..48aa33332b 100644
endif
--
2.17.0
2.17.1
From 2e81ec47e176763158e085057d9701ef476158c6 Mon Sep 17 00:00:00 2001
From b3f8472dc84a77ce7c35ac01f7301a7996d19008 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Felix=20Paul=20K=C3=BChne?= <fkuehne@videolan.org>
Date: Fri, 22 Jul 2016 11:11:44 +0200
Subject: [PATCH 03/17] Enable System DL
Subject: [PATCH 03/18] Enable System DL
---
contrib/src/ffmpeg/patch-as-patch-can.patch | 20 ++++++++++++++++++++
......@@ -58,5 +58,5 @@ index fc68f815a0..4d2d716146 100644
.ffmpeg: ffmpeg
--
2.17.0
2.17.1
From ee064ce53f3dd5dfb590ecc8b7b8c1166c6fb186 Mon Sep 17 00:00:00 2001
From af1eb98b7e7c3834ff5ddfc224705ba77b63cd84 Mon Sep 17 00:00:00 2001
From: Thomas Guillem <thomas@gllm.fr>
Date: Fri, 16 Sep 2016 15:51:10 +0200
Subject: [PATCH 04/17] http: add vlc_http_cookies_clear
Subject: [PATCH 04/18] http: add vlc_http_cookies_clear
Clear all cookies without deleting the jar.
---
......@@ -61,5 +61,5 @@ index 77ab852b15..f229b85dea 100644
}
--
2.17.0
2.17.1
From b7447fd2fe5b6986b933d8e0a117a1635775d4fe Mon Sep 17 00:00:00 2001
From 5abf670279494975819a845c4241c30939d4c3e5 Mon Sep 17 00:00:00 2001
From: Thomas Guillem <thomas@gllm.fr>
Date: Fri, 16 Sep 2016 15:51:11 +0200
Subject: [PATCH 05/17] libvlc_media: add cookie_jar API
Subject: [PATCH 05/18] libvlc_media: add cookie_jar API
---
include/vlc/libvlc_media.h | 35 +++++++++++++++++++++++++++++++++++
......@@ -163,5 +163,5 @@ index a9a22fee15..fde008aaeb 100644
p_input_thread = input_Create( p_mi, p_mi->p_md->p_input_item, NULL,
--
2.17.0
2.17.1
From 2c608b6bfc2dfe9cff132d8d16c316d54fa2d15d Mon Sep 17 00:00:00 2001
From 6d12e631707b60fed46a1279295e700d48ccdacb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Felix=20Paul=20K=C3=BChne?= <fkuehne@videolan.org>
Date: Sun, 7 Dec 2014 20:02:18 +0100
Subject: [PATCH 06/17] contrib/gcrypt: work-around a libtool limitation
Subject: [PATCH 06/18] contrib/gcrypt: work-around a libtool limitation
---
contrib/src/gcrypt/rules.mak | 1 +
......@@ -53,5 +53,5 @@ index 0000000000..df97ffb488
+ AM_CFLAGS = $(GPG_ERROR_CFLAGS)
+
--
2.17.0
2.17.1
From aa35e69da94471e118f4bd879c24157b896753ae Mon Sep 17 00:00:00 2001
From dec4176195d2c58ca6aa001243d2499641810710 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Felix=20Paul=20K=C3=BChne?= <fkuehne@videolan.org>
Date: Sat, 3 Oct 2015 22:45:14 +0200
Subject: [PATCH 07/17] contrib/gcrypt: fix tvOS compilation
Subject: [PATCH 07/18] contrib/gcrypt: fix tvOS compilation
---
.../src/gcrypt/fix-sha1-ssse3-for-clang.patch | 16 ++++++++++++++++
......@@ -56,5 +56,5 @@ index bc938e585f..3564fde87b 100644
GCRYPT_CONF += --disable-aesni-support
else
--
2.17.0
2.17.1
From efe6119eea44f642f33155c337e0205cc68de20a Mon Sep 17 00:00:00 2001
From 1b81fbb7622c2e237a718e1a050378fe0d45bf08 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Felix=20Paul=20K=C3=BChne?= <fkuehne@videolan.org>
Date: Mon, 12 Sep 2016 17:03:37 +0200
Subject: [PATCH 08/17] contrib/gcrypt: update patches
Subject: [PATCH 08/18] contrib/gcrypt: update patches
---
.../src/gcrypt/fix-sha1-ssse3-for-clang.patch | 308 +++++++++++++++++-
......@@ -363,5 +363,5 @@ index df97ffb488..957f268ad2 100644
# Need to include ../src in addition to top_srcdir because gcrypt.h is
--
2.17.0
2.17.1
From c905d35879df97308b0700e92a095392b4cafd69 Mon Sep 17 00:00:00 2001
From f4fe49fd3116c3b6fb0830c675ac3bf5e19da539 Mon Sep 17 00:00:00 2001
From: Thomas Guillem <thomas@gllm.fr>
Date: Mon, 17 Jul 2017 17:03:24 +0200
Subject: [PATCH 09/17] Replace thread local with pthread TSD
Subject: [PATCH 09/18] Replace thread local with pthread TSD
---
src/misc/interrupt.c | 59 ++++++++++++++++++++++++++++++++++++++++++++
......@@ -222,5 +222,5 @@ index 810c8ffc81..3d2d2f1dc8 100644
twalk(priv->var_root, TwalkGetNames);
vlc_mutex_unlock(&priv->var_lock);
--
2.17.0
2.17.1
From 7d8cd6dec176afe64d5663419b14bf7af063877f Mon Sep 17 00:00:00 2001
From 9b87e8319540335433fffcf230118a22177f0f9b Mon Sep 17 00:00:00 2001
From: Carola Nitz <nitz.carola@googlemail.com>
Date: Fri, 29 Sep 2017 14:49:02 +0200
Subject: [PATCH 10/17] contrib: use live555 version that is compatible with
Subject: [PATCH 10/18] contrib: use live555 version that is compatible with
LGPL2
---
......@@ -46,5 +46,5 @@ index b77d96ce73..3a2526a497 100644
echo "PREFIX = $(PREFIX)" >> $$subdir/Makefile.head && \
echo "LIBDIR = $(PREFIX)/lib" >> $$subdir/Makefile.head ; done
--
2.17.0
2.17.1
From 2700b538c59b7a2874ab12a03b3820de3566e379 Mon Sep 17 00:00:00 2001
From e0dcb507b92e1d66a34f56c84a6d7a23c7370fc5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Felix=20Paul=20K=C3=BChne?= <felix@feepk.net>
Date: Sun, 17 Dec 2017 18:05:40 +0100
Subject: [PATCH 11/17] libvlc: add a basic API to change freetype's color,
Subject: [PATCH 11/18] libvlc: add a basic API to change freetype's color,
bold, font and size variables on-the-fly
---
......@@ -226,5 +226,5 @@ index 53cf99cd18..822aae9905 100644
static void FillDefaultStyles( filter_t *p_filter )
--
2.17.0
2.17.1
From bdf3d726e3bdc5fd0674ba626083ba5a4f7f9cd1 Mon Sep 17 00:00:00 2001
From bd15c5750204e29764d5408d2e97231cdba08d6c Mon Sep 17 00:00:00 2001
From: Carola Nitz <nitz.carola@googlemail.com>
Date: Fri, 23 Feb 2018 13:16:41 +0100
Subject: [PATCH 12/17] Work around lack of __thread storage qualifier on old
Subject: [PATCH 12/18] Work around lack of __thread storage qualifier on old
macOS
---
......@@ -14,7 +14,7 @@ Subject: [PATCH 12/17] Work around lack of __thread storage qualifier on old
rename {compat => src/extras}/tdestroy.c (59%)
diff --git a/configure.ac b/configure.ac
index 206690b468..78583f37e3 100644
index b0de9fc1d7..7d8c348791 100644
--- a/configure.ac
+++ b/configure.ac
@@ -590,8 +590,8 @@ dnl Check for system libs needed
......@@ -204,5 +204,5 @@ index 6bb3480957..5c54881553 100644
+
+#endif
--
2.17.0
2.17.1
From 8ed518755afd1af6300203e493855aa90dba3412 Mon Sep 17 00:00:00 2001
From 3bcbfea3d3b7d7ad80a73881d5ded67f947ff5c2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Hugo=20Beauz=C3=A9e-Luyssen?= <hugo@beauzee.fr>
Date: Mon, 26 Mar 2018 16:44:44 +0200
Subject: [PATCH 13/17] modules:common: Use the full module name as MODULE_NAME
Subject: [PATCH 13/18] modules:common: Use the full module name as MODULE_NAME
This avoid conflicts when linking modules staticly on platforms that don't
have objdump
......@@ -29,5 +29,5 @@ index 1b9117c98d..fc67a39bca 100644
AM_CFLAGS =
AM_CXXFLAGS =
--
2.17.0
2.17.1
From 2fd059124fb02972d4354ff299ab408b55e2f6cd Mon Sep 17 00:00:00 2001
From 3d95342088858c06f96602e4376559af82bce4a0 Mon Sep 17 00:00:00 2001
From: Luis Fernandes <zipleen@gmail.com>
Date: Mon, 30 Apr 2018 14:33:08 +0100
Subject: [PATCH 14/17] add auto deinterlacer-mode which is also valid
Subject: [PATCH 14/18] add auto deinterlacer-mode which is also valid
---
lib/video.c | 3 ++-
......@@ -22,5 +22,5 @@ index 035cc0ebf1..a3e5b248e9 100644
if (*psz_mode)
--
2.17.0
2.17.1
From 667effb586ddf77d5172a39c02e37dca4208ac23 Mon Sep 17 00:00:00 2001
From fd44b33f4dcb27ddf43471752d17cd1e39bc9c14 Mon Sep 17 00:00:00 2001
From: Luis Fernandes <zipleen@gmail.com>
Date: Wed, 9 May 2018 10:44:43 +0100
Subject: [PATCH 15/17] Users will be able to change the deinterlace mode
Subject: [PATCH 15/18] Users will be able to change the deinterlace mode
without forcing it.
---
......@@ -87,5 +87,5 @@ index a3e5b248e9..9bc0f634f5 100644
}
free (pp_vouts);
--
2.17.0
2.17.1
From ef0fa9fef56718a187c03191caf72790af86b04a Mon Sep 17 00:00:00 2001
From ddc7fbe6ed07b7a2597dacd880c57d837da545da Mon Sep 17 00:00:00 2001
From: Thomas Guillem <thomas@gllm.fr>
Date: Tue, 27 Mar 2018 16:49:34 +0200
Subject: [PATCH 16/17] contrib: ffmpeg: enable videotoolbox encoder
Subject: [PATCH 16/18] contrib: ffmpeg: enable videotoolbox encoder
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
......@@ -27,5 +27,5 @@ index 4d2d716146..7a3b678370 100644
endif
endif
--
2.17.0
2.17.1
From 27f49e70a850b8c746048a961040e68334278e9d Mon Sep 17 00:00:00 2001
From 954b849b2c65830978c2ed85e3f7900ead8f30c7 Mon Sep 17 00:00:00 2001
From: Thomas Guillem <thomas@gllm.fr>
Date: Tue, 27 Mar 2018 16:52:35 +0200
Subject: [PATCH 17/17] chromecast: use vt encoder from avcodec
Subject: [PATCH 17/18] chromecast: use vt encoder from avcodec
---
modules/stream_out/chromecast/cast.cpp | 33 ++++++++++++++++++++++++++
......@@ -58,5 +58,5 @@ index b330b70297..47a2758259 100644
{ .fcc = VLC_CODEC_VP8, .get_opt = GetVencVPXOption },
{ .fcc = VLC_CODEC_H264, .get_opt = NULL },
--
2.17.0
2.17.1
From 3865597b78cbb84d7b31bb372725d204d456a3f8 Mon Sep 17 00:00:00 2001
From: Thomas Guillem <thomas@gllm.fr>
Date: Mon, 18 Jun 2018 12:31:13 +0200
Subject: [PATCH 18/18] ffmpeg: backport vtenc patches
---
...lboxenc-fix-mutex-cond-leak-in-error.patch | 35 ++++++
...videotoolboxenc-split-initialization.patch | 112 ++++++++++++++++++
...oolboxenc-fix-invalid-session-on-iOS.patch | 48 ++++++++
contrib/src/ffmpeg/rules.mak | 3 +
4 files changed, 198 insertions(+)
create mode 100644 contrib/src/ffmpeg/0001-avcodec-videotoolboxenc-fix-mutex-cond-leak-in-error.patch
create mode 100644 contrib/src/ffmpeg/0002-avcodec-videotoolboxenc-split-initialization.patch
create mode 100644 contrib/src/ffmpeg/0003-avcodec-videotoolboxenc-fix-invalid-session-on-iOS.patch
diff --git a/contrib/src/ffmpeg/0001-avcodec-videotoolboxenc-fix-mutex-cond-leak-in-error.patch b/contrib/src/ffmpeg/0001-avcodec-videotoolboxenc-fix-mutex-cond-leak-in-error.patch
new file mode 100644
index 0000000000..0f54eff3a8
--- /dev/null
+++ b/contrib/src/ffmpeg/0001-avcodec-videotoolboxenc-fix-mutex-cond-leak-in-error.patch
@@ -0,0 +1,35 @@
+From 488c99a65b5a2e35b63dc52da51e32400f15c131 Mon Sep 17 00:00:00 2001
+From: Thomas Guillem <thomas@gllm.fr>
+Date: Tue, 29 May 2018 18:04:38 +0200
+Subject: [PATCH 1/3] avcodec/videotoolboxenc: fix mutex/cond leak in error
+ path
+
+The leak could happen when the vtenc_create_encoder() function failed.
+---
+ libavcodec/videotoolboxenc.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/libavcodec/videotoolboxenc.c b/libavcodec/videotoolboxenc.c
+index 7796a685c2..9f2a71b15d 100644
+--- a/libavcodec/videotoolboxenc.c
++++ b/libavcodec/videotoolboxenc.c
+@@ -2473,13 +2473,14 @@ static av_cold int vtenc_close(AVCodecContext *avctx)
+ {
+ VTEncContext *vtctx = avctx->priv_data;
+
++ pthread_cond_destroy(&vtctx->cv_sample_sent);
++ pthread_mutex_destroy(&vtctx->lock);
++
+ if(!vtctx->session) return 0;
+
+ VTCompressionSessionCompleteFrames(vtctx->session,
+ kCMTimeIndefinite);
+ clear_frame_queue(vtctx);
+- pthread_cond_destroy(&vtctx->cv_sample_sent);
+- pthread_mutex_destroy(&vtctx->lock);
+ CFRelease(vtctx->session);
+ vtctx->session = NULL;
+
+--
+2.17.1
+
diff --git a/contrib/src/ffmpeg/0002-avcodec-videotoolboxenc-split-initialization.patch b/contrib/src/ffmpeg/0002-avcodec-videotoolboxenc-split-initialization.patch
new file mode 100644
index 0000000000..2ed920f287
--- /dev/null
+++ b/contrib/src/ffmpeg/0002-avcodec-videotoolboxenc-split-initialization.patch
@@ -0,0 +1,112 @@
+From 6c30ec8b4942d8423d6f5ff8cc0632ed326aea27 Mon Sep 17 00:00:00 2001
+From: Thomas Guillem <thomas@gllm.fr>
+Date: Mon, 11 Jun 2018 15:43:56 +0200
+Subject: [PATCH 2/3] avcodec/videotoolboxenc: split initialization
+
+Split vtenc_init() into vtenc_init() (VTEncContext initialization) and
+vtenc_configure_encoder() (creates the vt session).
+
+This commit will allow to restart the vt session while encoding.
+---
+ libavcodec/videotoolboxenc.c | 48 +++++++++++++++++++++---------------
+ 1 file changed, 28 insertions(+), 20 deletions(-)
+
+diff --git a/libavcodec/videotoolboxenc.c b/libavcodec/videotoolboxenc.c
+index 9f2a71b15d..1060055ba5 100644
+--- a/libavcodec/videotoolboxenc.c
++++ b/libavcodec/videotoolboxenc.c
+@@ -1262,19 +1262,16 @@ static int vtenc_create_encoder(AVCodecContext *avctx,
+ return 0;
+ }
+
+-static av_cold int vtenc_init(AVCodecContext *avctx)
++static int vtenc_configure_encoder(AVCodecContext *avctx)
+ {
+ CFMutableDictionaryRef enc_info;
+ CFMutableDictionaryRef pixel_buffer_info;
+ CMVideoCodecType codec_type;
+ VTEncContext *vtctx = avctx->priv_data;
+ CFStringRef profile_level;
+- CFBooleanRef has_b_frames_cfbool;
+ CFNumberRef gamma_level = NULL;
+ int status;
+
+- pthread_once(&once_ctrl, loadVTEncSymbols);
+-
+ codec_type = get_cm_codec_type(avctx->codec_id);
+ if (!codec_type) {
+ av_log(avctx, AV_LOG_ERROR, "Error: no mapping for AVCodecID %d\n", avctx->codec_id);
+@@ -1304,8 +1301,6 @@ static av_cold int vtenc_init(AVCodecContext *avctx)
+ if (!get_vt_hevc_profile_level(avctx, &profile_level)) return AVERROR(EINVAL);
+ }
+
+- vtctx->session = NULL;
+-
+ enc_info = CFDictionaryCreateMutable(
+ kCFAllocatorDefault,
+ 20,
+@@ -1335,8 +1330,6 @@ static av_cold int vtenc_init(AVCodecContext *avctx)
+ pixel_buffer_info = NULL;
+ }
+
+- pthread_mutex_init(&vtctx->lock, NULL);
+- pthread_cond_init(&vtctx->cv_sample_sent, NULL);
+ vtctx->dts_delta = vtctx->has_b_frames ? -1 : 0;
+
+ get_cv_transfer_function(avctx, &vtctx->transfer_function, &gamma_level);
+@@ -1363,8 +1356,32 @@ static av_cold int vtenc_init(AVCodecContext *avctx)
+ pixel_buffer_info,
+ &vtctx->session);
+
+- if (status < 0)
+- goto init_cleanup;
++init_cleanup:
++ if (gamma_level)
++ CFRelease(gamma_level);
++
++ if (pixel_buffer_info)
++ CFRelease(pixel_buffer_info);
++
++ CFRelease(enc_info);
++
++ return status;
++}
++
++static av_cold int vtenc_init(AVCodecContext *avctx)
++{
++ VTEncContext *vtctx = avctx->priv_data;
++ CFBooleanRef has_b_frames_cfbool;
++ int status;
++
++ pthread_once(&once_ctrl, loadVTEncSymbols);
++
++ pthread_mutex_init(&vtctx->lock, NULL);
++ pthread_cond_init(&vtctx->cv_sample_sent, NULL);
++
++ vtctx->session = NULL;
++ status = vtenc_configure_encoder(avctx);
++ if (status) return status;
+
+ status = VTSessionCopyProperty(vtctx->session,
+ kVTCompressionPropertyKey_AllowFrameReordering,
+@@ -1378,16 +1395,7 @@ static av_cold int vtenc_init(AVCodecContext *avctx)
+ }
+ avctx->has_b_frames = vtctx->has_b_frames;
+
+-init_cleanup:
+- if (gamma_level)
+- CFRelease(gamma_level);
+-
+- if (pixel_buffer_info)
+- CFRelease(pixel_buffer_info);
+-
+- CFRelease(enc_info);
+-
+- return status;
++ return 0;
+ }
+
+ static void vtenc_get_frame_info(CMSampleBufferRef buffer, bool *is_key_frame)
+--
+2.17.1
+
diff --git a/contrib/src/ffmpeg/0003-avcodec-videotoolboxenc-fix-invalid-session-on-iOS.patch b/contrib/src/ffmpeg/0003-avcodec-videotoolboxenc-fix-invalid-session-on-iOS.patch
new file mode 100644
index 0000000000..5e76c4bd97
--- /dev/null
+++ b/contrib/src/ffmpeg/0003-avcodec-videotoolboxenc-fix-invalid-session-on-iOS.patch
@@ -0,0 +1,48 @@
+From 68932bcf2a8edcc7371347f6a4ae0d2211528cef Mon Sep 17 00:00:00 2001
+From: Thomas Guillem <thomas@gllm.fr>
+Date: Mon, 11 Jun 2018 16:17:28 +0200
+Subject: [PATCH 3/3] avcodec/videotoolboxenc: fix invalid session on iOS
+
+Cf. comment. Restart the VT session when the APP goes from foreground to
+background and vice versa.
+---
+ libavcodec/videotoolboxenc.c | 23 +++++++++++++++++++++--
+ 1 file changed, 21 insertions(+), 2 deletions(-)
+
+diff --git a/libavcodec/videotoolboxenc.c b/libavcodec/videotoolboxenc.c
+index 1060055ba5..ac847358ab 100644
+--- a/libavcodec/videotoolboxenc.c
++++ b/libavcodec/videotoolboxenc.c
+@@ -2175,8 +2175,27 @@ static int create_cv_pixel_buffer(AVCodecContext *avctx,
+ #if TARGET_OS_IPHONE
+ pix_buf_pool = VTCompressionSessionGetPixelBufferPool(vtctx->session);
+ if (!pix_buf_pool) {
+- av_log(avctx, AV_LOG_ERROR, "Could not get pixel buffer pool.\n");
+- return AVERROR_EXTERNAL;
++ /* On iOS, the VT session is invalidated when the APP switches from
++ * foreground to background and vice versa. Fetch the actual error code
++ * of the VT session to detect that case and restart the VT session
++ * accordingly. */
++ OSStatus vtstatus;
++
++ vtstatus = VTCompressionSessionPrepareToEncodeFrames(vtctx->session);
++ if (vtstatus == kVTInvalidSessionErr) {
++ CFRelease(vtctx->session);
++ vtctx->session = NULL;
++ status = vtenc_configure_encoder(avctx);
++ if (status == 0)
++ pix_buf_pool = VTCompressionSessionGetPixelBufferPool(vtctx->session);
++ }
++ if (!pix_buf_pool) {
++ av_log(avctx, AV_LOG_ERROR, "Could not get pixel buffer pool.\n");
++ return AVERROR_EXTERNAL;
++ }
++ else
++ av_log(avctx, AV_LOG_WARNING, "VT session restarted because of a "
++ "kVTInvalidSessionErr error.\n");
+ }
+
+ status = CVPixelBufferPoolCreatePixelBuffer(NULL,
+--
+2.17.1
+
diff --git a/contrib/src/ffmpeg/rules.mak b/contrib/src/ffmpeg/rules.mak
index 7a3b678370..d0cd900c17 100644
--- a/contrib/src/ffmpeg/rules.mak
+++ b/contrib/src/ffmpeg/rules.mak
@@ -239,6 +239,9 @@ ifdef USE_FFMPEG
$(APPLY) $(SRC)/ffmpeg/armv7_fixup.patch
$(APPLY) $(SRC)/ffmpeg/dxva_vc1_crash.patch
$(APPLY) $(SRC)/ffmpeg/h264_early_SAR.patch
+ $(APPLY) $(SRC)/ffmpeg/0001-avcodec-videotoolboxenc-fix-mutex-cond-leak-in-error.patch
+ $(APPLY) $(SRC)/ffmpeg/0002-avcodec-videotoolboxenc-split-initialization.patch
+ $(APPLY) $(SRC)/ffmpeg/0003-avcodec-videotoolboxenc-fix-invalid-session-on-iOS.patch
endif
ifdef USE_LIBAV
$(APPLY) $(SRC)/ffmpeg/libav_gsm.patch
--
2.17.1
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment