Update 0002-patch-ffmpeg-to-new-fdk-api.patch
This commit is contained in:
parent
e50ae5fc75
commit
9ab1e115e7
@ -1,45 +1,15 @@
|
|||||||
From: Martin Storsjö <martin@martin.st>
|
--- libavcodec/libfdk-aacenc.c.orig 2018-09-04 17:31:43.145385000 +0200
|
||||||
Date: Fri, 31 Aug 2018 11:25:30 +0000 (+0300)
|
+++ libavcodec/libfdk-aacenc.c 2018-09-04 17:39:10.786071200 +0200
|
||||||
Subject: libfdk-aacenc: Fix building with libfdk-aac v2
|
@@ -289,7 +289,7 @@
|
||||||
X-Git-Url: https://git.libav.org/?p=libav.git;a=commitdiff_plain;h=141c960e21d2860e354f9b90df136184dd00a9a8;hp=c8bca9fe466f810fd484e2c6db7ef7bc83b5a943
|
|
||||||
|
|
||||||
libfdk-aacenc: Fix building with libfdk-aac v2
|
|
||||||
|
|
||||||
When flushing the encoder, we now need to provide non-null buffer
|
|
||||||
parameters for everything, even if they are unused.
|
|
||||||
|
|
||||||
The encoderDelay parameter has been replaced by two, nDelay and
|
|
||||||
nDelayCore.
|
|
||||||
|
|
||||||
Signed-off-by: Martin Storsjö <martin@martin.st>
|
|
||||||
---
|
|
||||||
|
|
||||||
diff --git a/libavcodec/libfdk-aacenc.c b/libavcodec/libfdk-aacenc.c
|
|
||||||
index c340a1e..2ad768e 100644
|
|
||||||
--- a/libavcodec/libfdk-aacenc.c
|
|
||||||
+++ b/libavcodec/libfdk-aacenc.c
|
|
||||||
@@ -26,6 +26,11 @@
|
|
||||||
#include "audio_frame_queue.h"
|
|
||||||
#include "internal.h"
|
|
||||||
|
|
||||||
+#define FDKENC_VER_AT_LEAST(vl0, vl1) \
|
|
||||||
+ (defined(AACENCODER_LIB_VL0) && \
|
|
||||||
+ ((AACENCODER_LIB_VL0 > vl0) || \
|
|
||||||
+ (AACENCODER_LIB_VL0 == vl0 && AACENCODER_LIB_VL1 >= vl1)))
|
|
||||||
+
|
|
||||||
typedef struct AACContext {
|
|
||||||
const AVClass *class;
|
|
||||||
HANDLE_AACENCODER handle;
|
|
||||||
@@ -290,7 +295,11 @@ static av_cold int aac_encode_init(AVCodecContext *avctx)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
avctx->frame_size = info.frameLength;
|
avctx->frame_size = info.frameLength;
|
||||||
+ avctx->initial_padding = info.nDelay;
|
|
||||||
- avctx->initial_padding = info.encoderDelay;
|
- avctx->initial_padding = info.encoderDelay;
|
||||||
|
+ avctx->initial_padding = info.nDelay;
|
||||||
ff_af_queue_init(avctx, &s->afq);
|
ff_af_queue_init(avctx, &s->afq);
|
||||||
|
|
||||||
if (avctx->flags & AV_CODEC_FLAG_GLOBAL_HEADER) {
|
if (avctx->flags & AV_CODEC_FLAG_GLOBAL_HEADER) {
|
||||||
@@ -323,28 +332,35 @@ static int aac_encode_frame(AVCodecContext *avctx, AVPacket *avpkt,
|
@@ -322,28 +322,35 @@
|
||||||
int out_buffer_size, out_buffer_element_size;
|
int out_buffer_size, out_buffer_element_size;
|
||||||
void *in_ptr, *out_ptr;
|
void *in_ptr, *out_ptr;
|
||||||
int ret;
|
int ret;
|
||||||
@ -58,15 +28,16 @@ index c340a1e..2ad768e 100644
|
|||||||
- in_ptr = frame->data[0];
|
- in_ptr = frame->data[0];
|
||||||
- in_buffer_size = 2 * avctx->channels * frame->nb_samples;
|
- in_buffer_size = 2 * avctx->channels * frame->nb_samples;
|
||||||
- in_buffer_element_size = 2;
|
- in_buffer_element_size = 2;
|
||||||
+ in_ptr = frame->data[0];
|
-
|
||||||
+ in_buffer_size = 2 * avctx->channels * frame->nb_samples;
|
|
||||||
|
|
||||||
- in_args.numInSamples = avctx->channels * frame->nb_samples;
|
- in_args.numInSamples = avctx->channels * frame->nb_samples;
|
||||||
- in_buf.numBufs = 1;
|
- in_buf.numBufs = 1;
|
||||||
- in_buf.bufs = &in_ptr;
|
- in_buf.bufs = &in_ptr;
|
||||||
- in_buf.bufferIdentifiers = &in_buffer_identifier;
|
- in_buf.bufferIdentifiers = &in_buffer_identifier;
|
||||||
- in_buf.bufSizes = &in_buffer_size;
|
- in_buf.bufSizes = &in_buffer_size;
|
||||||
- in_buf.bufElSizes = &in_buffer_element_size;
|
- in_buf.bufElSizes = &in_buffer_element_size;
|
||||||
|
+ in_ptr = frame->data[0];
|
||||||
|
+ in_buffer_size = 2 * avctx->channels * frame->nb_samples;
|
||||||
|
+
|
||||||
+ in_args.numInSamples = avctx->channels * frame->nb_samples;
|
+ in_args.numInSamples = avctx->channels * frame->nb_samples;
|
||||||
|
|
||||||
/* add current frame to the queue */
|
/* add current frame to the queue */
|
||||||
@ -82,5 +53,5 @@ index c340a1e..2ad768e 100644
|
|||||||
+ in_buf.bufElSizes = &in_buffer_element_size;
|
+ in_buf.bufElSizes = &in_buffer_element_size;
|
||||||
+
|
+
|
||||||
/* The maximum packet size is 6144 bits aka 768 bytes per channel. */
|
/* The maximum packet size is 6144 bits aka 768 bytes per channel. */
|
||||||
if ((ret = ff_alloc_packet(avpkt, FFMAX(8192, 768 * avctx->channels)))) {
|
if ((ret = ff_alloc_packet2(avctx, avpkt, FFMAX(8192, 768 * avctx->channels), 0)) < 0)
|
||||||
av_log(avctx, AV_LOG_ERROR, "Error getting output packet\n");
|
return ret;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user