mirror of
https://github.com/Ponce/slackbuilds
synced 2024-12-04 00:56:07 +01:00
53 lines
1.7 KiB
Diff
53 lines
1.7 KiB
Diff
|
From 5cf2b5fbf925412620e2a40552d6348203851cb3 Mon Sep 17 00:00:00 2001
|
||
|
From: pkviet <pkv.stream@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;
|