From 08c20ef7ae4d7408162732528c3edbae45a69637 Mon Sep 17 00:00:00 2001 From: Jimi Huotari Date: Wed, 12 Dec 2018 15:32:51 +0200 Subject: 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 Package-Manager: Portage-2.3.52, Repoman-2.3.12 Signed-off-by: Andreas Sturmlechner --- .../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(-) create mode 100644 media-video/obs-studio/files/obs-studio-22.0.3-fdk-build-fix.patch (limited to 'media-video/obs-studio') 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 000000000000..73329cf8040c --- /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 +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 + +- + 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 ba4f33009b64..c15bd0ab0710 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 ) -- cgit v1.2.3-65-gdbad