58 lines
2.2 KiB
Diff
58 lines
2.2 KiB
Diff
--- libavcodec/libfdk-aacenc.c.orig 2018-09-04 17:31:43.145385000 +0200
|
|
+++ libavcodec/libfdk-aacenc.c 2018-09-04 17:39:10.786071200 +0200
|
|
@@ -289,7 +289,7 @@
|
|
}
|
|
|
|
avctx->frame_size = info.frameLength;
|
|
- avctx->initial_padding = info.encoderDelay;
|
|
+ avctx->initial_padding = info.nDelay;
|
|
ff_af_queue_init(avctx, &s->afq);
|
|
|
|
if (avctx->flags & AV_CODEC_FLAG_GLOBAL_HEADER) {
|
|
@@ -322,28 +322,35 @@
|
|
int out_buffer_size, out_buffer_element_size;
|
|
void *in_ptr, *out_ptr;
|
|
int ret;
|
|
+ uint8_t dummy_buf[1];
|
|
AACENC_ERROR err;
|
|
|
|
/* handle end-of-stream small frame and flushing */
|
|
if (!frame) {
|
|
+ /* Must be a non-null pointer, even if it's a dummy. We could use
|
|
+ * the address of anything else on the stack as well. */
|
|
+ in_ptr = dummy_buf;
|
|
+ in_buffer_size = 0;
|
|
+
|
|
in_args.numInSamples = -1;
|
|
} else {
|
|
- in_ptr = frame->data[0];
|
|
- in_buffer_size = 2 * avctx->channels * frame->nb_samples;
|
|
- in_buffer_element_size = 2;
|
|
-
|
|
- in_args.numInSamples = avctx->channels * frame->nb_samples;
|
|
- in_buf.numBufs = 1;
|
|
- in_buf.bufs = &in_ptr;
|
|
- in_buf.bufferIdentifiers = &in_buffer_identifier;
|
|
- in_buf.bufSizes = &in_buffer_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;
|
|
|
|
/* add current frame to the queue */
|
|
if ((ret = ff_af_queue_add(&s->afq, frame)) < 0)
|
|
return ret;
|
|
}
|
|
|
|
+ in_buffer_element_size = 2;
|
|
+ in_buf.numBufs = 1;
|
|
+ in_buf.bufs = &in_ptr;
|
|
+ in_buf.bufferIdentifiers = &in_buffer_identifier;
|
|
+ in_buf.bufSizes = &in_buffer_size;
|
|
+ in_buf.bufElSizes = &in_buffer_element_size;
|
|
+
|
|
/* The maximum packet size is 6144 bits aka 768 bytes per channel. */
|
|
if ((ret = ff_alloc_packet2(avctx, avpkt, FFMAX(8192, 768 * avctx->channels), 0)) < 0)
|
|
return ret;
|