commit:     08c20ef7ae4d7408162732528c3edbae45a69637
Author:     Jimi Huotari <chiitoo <AT> gentoo <DOT> org>
AuthorDate: Wed Dec 12 13:32:51 2018 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Sun Dec 16 16:13:19 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=08c20ef7

media-video/obs-studio: fix build with USE="fdk"

Upstream: https://github.com/obsproject/obs-studio/commit/cf73fa6d

Closes: https://bugs.gentoo.org/672430
Signed-off-by: Jimi Huotari <chiitoo <AT> gentoo.org>
Package-Manager: Portage-2.3.52, Repoman-2.3.12
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 .../files/obs-studio-22.0.3-fdk-build-fix.patch    | 52 ++++++++++++++++++++++
 media-video/obs-studio/obs-studio-22.0.3.ebuild    |  5 ++-
 2 files changed, 56 insertions(+), 1 deletion(-)

diff --git a/media-video/obs-studio/files/obs-studio-22.0.3-fdk-build-fix.patch 
b/media-video/obs-studio/files/obs-studio-22.0.3-fdk-build-fix.patch
new file mode 100644
index 00000000000..73329cf8040
--- /dev/null
+++ b/media-video/obs-studio/files/obs-studio-22.0.3-fdk-build-fix.patch
@@ -0,0 +1,52 @@
+From 5cf2b5fbf925412620e2a40552d6348203851cb3 Mon Sep 17 00:00:00 2001
+From: pkviet <pkv.str...@gmail.com>
+Date: Thu, 29 Nov 2018 21:10:45 +0100
+Subject: [PATCH] obs-libfdk: Compatibility fix for new API
+
+fdk-aac v2.0.0 (aacenc 4.0.0) changes the AACENC_InfoStruct:
+the encoderDelay parameter is replaced by two, nDelay and
+nDelayCore. This patch checks the lib version and adjust the parameter
+accordingly.
+---
+ plugins/obs-libfdk/obs-libfdk.c | 14 ++++++++------
+ 1 file changed, 8 insertions(+), 6 deletions(-)
+
+diff --git a/plugins/obs-libfdk/obs-libfdk.c b/plugins/obs-libfdk/obs-libfdk.c
+index d6eb496184..94b139de57 100644
+--- a/plugins/obs-libfdk/obs-libfdk.c
++++ b/plugins/obs-libfdk/obs-libfdk.c
+@@ -9,7 +9,6 @@
+ 
+ #include <fdk-aac/aacenc_lib.h>
+ 
+-
+ static const char *libfdk_get_error(AACENC_ERROR err)
+ {
+       switch(err) {
+@@ -224,7 +223,7 @@ static bool libfdk_encode(void *data, struct encoder_frame 
*frame,
+       void *in_ptr;
+       void *out_ptr;
+       AACENC_ERROR err;
+-
++      int64_t encoderDelay;
+ 
+       in_ptr = frame->data[0];
+       in_size = enc->frame_size_bytes;
+@@ -261,10 +260,13 @@ static bool libfdk_encode(void *data, struct 
encoder_frame *frame,
+       }
+ 
+       *received_packet = true;
+-
+-      packet->pts  = enc->total_samples -
+-                     enc->info.encoderDelay; // TODO: Just a guess, find out 
if that's actualy right
+-      packet->dts  = enc->total_samples - enc->info.encoderDelay;
++#if (AACENCODER_LIB_VL0 >= 4)
++      encoderDelay= enc->info.nDelay;
++#else
++      encoderDelay= enc->info.encoderDelay;
++#endif
++      packet->pts  = enc->total_samples - encoderDelay;
++      packet->dts  = enc->total_samples - encoderDelay;
+       packet->data = enc->packet_buffer;
+       packet->size = out_args.numOutBytes;
+       packet->type = OBS_ENCODER_AUDIO;

diff --git a/media-video/obs-studio/obs-studio-22.0.3.ebuild 
b/media-video/obs-studio/obs-studio-22.0.3.ebuild
index ba4f33009b6..c15bd0ab071 100644
--- a/media-video/obs-studio/obs-studio-22.0.3.ebuild
+++ b/media-video/obs-studio/obs-studio-22.0.3.ebuild
@@ -67,7 +67,10 @@ DEPEND="${COMMON_DEPEND}
 "
 RDEPEND="${COMMON_DEPEND}"
 
-PATCHES=( "${FILESDIR}/${PN}-21.1.2-use-less-automagic.patch" )
+PATCHES=(
+       "${FILESDIR}/${PN}-21.1.2-use-less-automagic.patch"
+       "${FILESDIR}/${PN}-22.0.3-fdk-build-fix.patch" # bug 672430
+)
 
 CMAKE_REMOVE_MODULES_LIST=( FindFreetype )
 

Reply via email to