54 lines
1.7 KiB
Diff
54 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
|
|
--- plugins/obs-libfdk/obs-libfdk.c
|
|
+++ 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;
|
|
|