Source: aubio Version: 0.4.9-4.4 Severity: normal Tags: patch Dear Maintainer,
I'm currently preparing an NMU for the RC-bugs #1072399 and #1074827, and will upload it to DELAYED/10. Attached you'll find the debdiff.
diff -Nru aubio-0.4.9/debian/changelog aubio-0.4.9/debian/changelog --- aubio-0.4.9/debian/changelog 2024-02-07 00:46:01.000000000 +0100 +++ aubio-0.4.9/debian/changelog 2024-10-05 01:40:39.000000000 +0200 @@ -1,3 +1,14 @@ +aubio (0.4.9-4.5) unstable; urgency=medium + + * Non-maintainer upload. + + * Backport fix for FTBFS with FFMpeg-7 from upstream via Ubuntu + (Closes: #1072399) + * Backport fix for FTBFS with Python3.12 from Ubuntu. + Thanks to Zixing Liu <zixing....@canonical.com> (Closes: #1074827) + + -- IOhannes m zmölnig (Debian/GNU) <umlae...@debian.org> Sat, 05 Oct 2024 01:40:39 +0200 + aubio (0.4.9-4.4) unstable; urgency=medium * Non-maintainer upload. diff -Nru aubio-0.4.9/debian/patches/ffmpeg5.1-adjust.patch aubio-0.4.9/debian/patches/ffmpeg5.1-adjust.patch --- aubio-0.4.9/debian/patches/ffmpeg5.1-adjust.patch 1970-01-01 01:00:00.000000000 +0100 +++ aubio-0.4.9/debian/patches/ffmpeg5.1-adjust.patch 2024-10-05 01:40:39.000000000 +0200 @@ -0,0 +1,58 @@ +Description: [source_avcodec] adjust detection of AVChannelLayout (>ffmpeg 5.0) +Author: Paul Brossier <p...@piem.org> +Origin: upstream, https://github.com/aubio/aubio/commit/0b947f9634937d27589d995ec90e90d763aca86f +Last-Update: 2024-09-17 +--- +Index: aubio/src/io/source_avcodec.c +=================================================================== +--- aubio.orig/src/io/source_avcodec.c ++++ aubio/src/io/source_avcodec.c +@@ -56,6 +56,12 @@ + #define av_packet_unref av_free_packet + #endif + ++#if LIBAVUTIL_VERSION_INT < AV_VERSION_INT(57,28,100) ++#warning "libavutil < 57.28.100 is deprecated" ++#else ++#define LIBAVUTIL_HAS_CH_LAYOUT ++#endif ++ + #include "aubio_priv.h" + #include "fvec.h" + #include "fmat.h" +@@ -263,7 +269,7 @@ aubio_source_avcodec_t * new_aubio_sourc + + /* get input specs */ + s->input_samplerate = avCodecCtx->sample_rate; +-#ifdef AVUTIL_CHANNEL_LAYOUT_H ++#ifdef LIBAVUTIL_HAS_CH_LAYOUT + s->input_channels = avCodecCtx->ch_layout.nb_channels; + #else + s->input_channels = avCodecCtx->channels; +@@ -325,7 +331,7 @@ void aubio_source_avcodec_reset_resample + #elif defined(HAVE_SWRESAMPLE) + SwrContext *avr = swr_alloc(); + #endif /* HAVE_AVRESAMPLE || HAVE_SWRESAMPLE */ +-#ifdef AVUTIL_CHANNEL_LAYOUT_H ++#ifdef LIBAVUTIL_HAS_CH_LAYOUT + AVChannelLayout input_layout; + AVChannelLayout output_layout; + av_channel_layout_default(&input_layout, s->input_channels); +@@ -387,7 +393,7 @@ void aubio_source_avcodec_readframe(aubi + int out_samples = 0; + #elif defined(HAVE_SWRESAMPLE) + int in_samples = avFrame->nb_samples; +-#ifdef AVUTIL_CHANNEL_LAYOUT_H ++#ifdef LIBAVUTIL_HAS_CH_LAYOUT + int max_out_samples = AUBIO_AVCODEC_MAX_BUFFER_SIZE / avCodecCtx->ch_layout.nb_channels; + #else + int max_out_samples = AUBIO_AVCODEC_MAX_BUFFER_SIZE / avCodecCtx->channels; +@@ -458,7 +464,7 @@ void aubio_source_avcodec_readframe(aubi + } + + #if LIBAVUTIL_VERSION_MAJOR > 52 +-#ifdef AVUTIL_CHANNEL_LAYOUT_H ++#ifdef LIBAVUTIL_HAS_CH_LAYOUT + int frame_channels = avFrame->ch_layout.nb_channels; + #else + int frame_channels = avFrame->channels; diff -Nru aubio-0.4.9/debian/patches/ffmpeg5.1.patch aubio-0.4.9/debian/patches/ffmpeg5.1.patch --- aubio-0.4.9/debian/patches/ffmpeg5.1.patch 1970-01-01 01:00:00.000000000 +0100 +++ aubio-0.4.9/debian/patches/ffmpeg5.1.patch 2024-10-05 01:40:39.000000000 +0200 @@ -0,0 +1,90 @@ +Description: [source_avcodec] add support for AVChannelLayout (ffmpeg 5.1) +Author: Paul Brossier <p...@piem.org> +Origin: upstream, https://github.com/aubio/aubio/commit/0b947f9634937d27589d995ec90e90d763aca86f +Last-Update: 2024-09-17 +--- +Index: aubio/src/io/source_avcodec.c +=================================================================== +--- aubio.orig/src/io/source_avcodec.c ++++ aubio/src/io/source_avcodec.c +@@ -263,7 +263,11 @@ aubio_source_avcodec_t * new_aubio_sourc + + /* get input specs */ + s->input_samplerate = avCodecCtx->sample_rate; ++#ifdef AVUTIL_CHANNEL_LAYOUT_H ++ s->input_channels = avCodecCtx->ch_layout.nb_channels; ++#else + s->input_channels = avCodecCtx->channels; ++#endif + //AUBIO_DBG("input_samplerate: %d\n", s->input_samplerate); + //AUBIO_DBG("input_channels: %d\n", s->input_channels); + +@@ -316,16 +320,26 @@ void aubio_source_avcodec_reset_resample + // create or reset resampler to/from mono/multi-channel + if ( s->avr == NULL ) { + int err; +- int64_t input_layout = av_get_default_channel_layout(s->input_channels); +- int64_t output_layout = av_get_default_channel_layout(s->input_channels); + #ifdef HAVE_AVRESAMPLE + AVAudioResampleContext *avr = avresample_alloc_context(); + #elif defined(HAVE_SWRESAMPLE) + SwrContext *avr = swr_alloc(); + #endif /* HAVE_AVRESAMPLE || HAVE_SWRESAMPLE */ ++#ifdef AVUTIL_CHANNEL_LAYOUT_H ++ AVChannelLayout input_layout; ++ AVChannelLayout output_layout; ++ av_channel_layout_default(&input_layout, s->input_channels); ++ av_channel_layout_default(&output_layout, s->input_channels); ++ ++ av_opt_set_chlayout(avr, "in_chlayout", &input_layout, 0); ++ av_opt_set_chlayout(avr, "out_chlayout", &output_layout, 0); ++#else ++ int64_t input_layout = av_get_default_channel_layout(s->input_channels); ++ int64_t output_layout = av_get_default_channel_layout(s->input_channels); + + av_opt_set_int(avr, "in_channel_layout", input_layout, 0); + av_opt_set_int(avr, "out_channel_layout", output_layout, 0); ++#endif /* AVUTIL_CHANNEL_LAYOUT_H */ + av_opt_set_int(avr, "in_sample_rate", s->input_samplerate, 0); + av_opt_set_int(avr, "out_sample_rate", s->samplerate, 0); + av_opt_set_int(avr, "in_sample_fmt", s->avCodecCtx->sample_fmt, 0); +@@ -373,7 +387,11 @@ void aubio_source_avcodec_readframe(aubi + int out_samples = 0; + #elif defined(HAVE_SWRESAMPLE) + int in_samples = avFrame->nb_samples; ++#ifdef AVUTIL_CHANNEL_LAYOUT_H ++ int max_out_samples = AUBIO_AVCODEC_MAX_BUFFER_SIZE / avCodecCtx->ch_layout.nb_channels; ++#else + int max_out_samples = AUBIO_AVCODEC_MAX_BUFFER_SIZE / avCodecCtx->channels; ++#endif + int out_samples = 0; + #endif /* HAVE_AVRESAMPLE || HAVE_SWRESAMPLE */ + smpl_t *output = s->output; +@@ -440,10 +458,15 @@ void aubio_source_avcodec_readframe(aubi + } + + #if LIBAVUTIL_VERSION_MAJOR > 52 +- if (avFrame->channels != (sint_t)s->input_channels) { ++#ifdef AVUTIL_CHANNEL_LAYOUT_H ++ int frame_channels = avFrame->ch_layout.nb_channels; ++#else ++ int frame_channels = avFrame->channels; ++#endif ++ if (frame_channels != (sint_t)s->input_channels) { + AUBIO_WRN ("source_avcodec: trying to read from %d channel(s)," + "but configured for %d; is '%s' corrupt?\n", +- avFrame->channels, s->input_channels, s->path); ++ frame_channels, s->input_channels, s->path); + goto beach; + } + #else +@@ -462,7 +485,8 @@ void aubio_source_avcodec_readframe(aubi + (uint8_t **)avFrame->data, in_linesize, in_samples); + #elif defined(HAVE_SWRESAMPLE) + in_samples = avFrame->nb_samples; +- max_out_samples = AUBIO_AVCODEC_MAX_BUFFER_SIZE / avCodecCtx->channels; ++ max_out_samples = AUBIO_AVCODEC_MAX_BUFFER_SIZE; ++ if (frame_channels > 0) max_out_samples /= frame_channels; + out_samples = swr_convert( avr, + (uint8_t **)&output, max_out_samples, + (const uint8_t **)avFrame->data, in_samples); diff -Nru aubio-0.4.9/debian/patches/fixpy312.patch aubio-0.4.9/debian/patches/fixpy312.patch --- aubio-0.4.9/debian/patches/fixpy312.patch 1970-01-01 01:00:00.000000000 +0100 +++ aubio-0.4.9/debian/patches/fixpy312.patch 2024-10-05 01:40:39.000000000 +0200 @@ -0,0 +1,49 @@ +Description: Fix Python 3.12 compatibility +Author: Zixing Liu <zixing....@canonical.com> +Forwarded: no +Last-Update: 2024-09-17 +--- +--- aubio-0.4.9.orig/python/ext/ufuncs.c ++++ aubio-0.4.9/python/ext/ufuncs.c +@@ -3,8 +3,8 @@ + + typedef smpl_t (*aubio_unary_func_t)(smpl_t input); + +-static void aubio_PyUFunc_d_d(char **args, npy_intp *dimensions, +- npy_intp* steps, void* data) ++static void aubio_PyUFunc_d_d(char **args, const npy_intp *dimensions, ++ const npy_intp* steps, void* data) + { + npy_intp i; + npy_intp n = dimensions[0]; +@@ -22,8 +22,8 @@ static void aubio_PyUFunc_d_d(char **arg + } + } + +-static void aubio_PyUFunc_f_f_As_d_d(char **args, npy_intp *dimensions, +- npy_intp* steps, void* data) ++static void aubio_PyUFunc_f_f_As_d_d(char **args, const npy_intp *dimensions, ++ const npy_intp* steps, void* data) + { + npy_intp i; + npy_intp n = dimensions[0]; +--- aubio-0.4.9.orig/python/lib/gen_code.py ++++ aubio-0.4.9/python/lib/gen_code.py +@@ -106,7 +106,7 @@ def get_name(proto): + + def get_return_type(proto): + import re +- paramregex = re.compile('(\w+ ?\*?).*') ++ paramregex = re.compile(r'(\w+ ?\*?).*') + outputs = paramregex.findall(proto) + assert len(outputs) == 1 + return outputs[0].replace(' ', '') +@@ -137,7 +137,7 @@ def get_params(proto): + returns: ['int argc', 'char ** argv'] + """ + import re +- paramregex = re.compile('.*\((.*)\);') ++ paramregex = re.compile(r'.*\((.*)\);') + a = paramregex.findall(proto)[0].split(', ') + #a = [i.replace('const ', '') for i in a] + return a diff -Nru aubio-0.4.9/debian/patches/series aubio-0.4.9/debian/patches/series --- aubio-0.4.9/debian/patches/series 2024-02-07 00:46:01.000000000 +0100 +++ aubio-0.4.9/debian/patches/series 2024-10-05 01:40:39.000000000 +0200 @@ -6,3 +6,6 @@ waflib-py311.patch ffmpeg5.patch waflib-py312.patch +ffmpeg5.1.patch +ffmpeg5.1-adjust.patch +fixpy312.patch