Hello community, here is the log from the commit of package ffmpeg-3 for openSUSE:Factory checked in at 2019-02-24 17:01:06 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ffmpeg-3 (Old) and /work/SRC/openSUSE:Factory/.ffmpeg-3.new.28833 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ffmpeg-3" Sun Feb 24 17:01:06 2019 rev:5 rq:673490 version:3.4.5 Changes: -------- --- /work/SRC/openSUSE:Factory/ffmpeg-3/ffmpeg-3.changes 2018-11-20 22:28:01.930755597 +0100 +++ /work/SRC/openSUSE:Factory/.ffmpeg-3.new.28833/ffmpeg-3.changes 2019-02-24 17:01:38.100730701 +0100 @@ -1,0 +2,6 @@ +Mon Feb 11 21:43:44 UTC 2019 - [email protected] + +- Add ffmpeg-fix-build-fdk-aac2.patch: Fix build with updated + fdk-aac. Patch backported from upstream master. + +------------------------------------------------------------------- New: ---- ffmpeg-fix-build-fdk-aac2.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ffmpeg-3.spec ++++++ --- /var/tmp/diff_new_pack.FfPRhb/_old 2019-02-24 17:01:47.680726144 +0100 +++ /var/tmp/diff_new_pack.FfPRhb/_new 2019-02-24 17:01:47.684726142 +0100 @@ -1,7 +1,7 @@ # # spec file for package ffmpeg-3 # -# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -12,7 +12,7 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # @@ -95,6 +95,7 @@ Patch4: ffmpeg-codec-choice.diff Patch5: cve-2017-17555.diff Patch6: 0001-opusenc-psy-disable-stereo-searches.patch +Patch7: ffmpeg-fix-build-fdk-aac2.patch BuildRequires: ladspa-devel BuildRequires: libgsm-devel BuildRequires: libmp3lame-devel ++++++ ffmpeg-fix-build-fdk-aac2.patch ++++++ >From 141c960e21d2860e354f9b90df136184dd00a9a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Storsj=C3=B6?= <[email protected]> Date: Fri, 31 Aug 2018 14:25:30 +0300 Subject: [PATCH] libfdk-aacenc: Fix building with libfdk-aac v2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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ö <[email protected]> --- libavcodec/libfdk-aacenc.c | 34 +++++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 9 deletions(-) Index: ffmpeg-3.4.5/libavcodec/libfdk-aacenc.c =================================================================== --- ffmpeg-3.4.5.orig/libavcodec/libfdk-aacenc.c +++ ffmpeg-3.4.5/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; @@ -286,7 +291,11 @@ static av_cold int aac_encode_init(AVCod } avctx->frame_size = info.frameLength; +#if FDKENC_VER_AT_LEAST(4, 0) + avctx->initial_padding = info.nDelay; +#else avctx->initial_padding = info.encoderDelay; +#endif ff_af_queue_init(avctx, &s->afq); if (avctx->flags & AV_CODEC_FLAG_GLOBAL_HEADER) { @@ -319,28 +328,35 @@ static int aac_encode_frame(AVCodecConte 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;
