Sisyphus repositório
Última atualização: 1 outubro 2023 | SRPMs: 18631 | Visitas: 37601995
en ru br
ALT Linux repositórios
S:0.4.9-alt6

Group :: Sistema/Bibliotecas
RPM: libaubio5

 Main   Changelog   Spec   Patches   Sources   Download   Gear   Bugs e FR  Repocop 

Patch: libaubio5-0.4.9-alt.patch
Download


 .gear/libaubio.spec                                | 198 +++++++++++++++++++++
 .gear/rules                                        |   3 +
 .../tags/319186517bfc0dd5c015241c091b849f209e0483  |  24 +++
 .gear/tags/list                                    |   1 +
 src/io/source_avcodec.c                            |  56 +++++-
 tests/wscript_build                                |   2 +-
 6 files changed, 276 insertions(+), 8 deletions(-)
diff --git a/.gear/libaubio.spec b/.gear/libaubio.spec
new file mode 100644
index 00000000..88ebd748
--- /dev/null
+++ b/.gear/libaubio.spec
@@ -0,0 +1,198 @@
+%define origname aubio
+%define sover 5
+%def_enable python
+
+Name: libaubio%sover
+Version: 0.4.9
+Release: alt6
+Summary: Aubio is a library for real time audio labelling
+Url: http://www.aubio.org/
+VCS: https://github.com/aubio/aubio
+License: GPLv3
+Group: System/Libraries
+
+Source: %origname-%version.tar
+Patch0: %name-%version-alt.patch
+
+# Automatically added by buildreq on Thu Nov 06 2008
+BuildRequires: docbook-to-man jackit-devel libfftw3-devel libsamplerate-devel libsndfile-devel
+
+BuildPreReq: python3-base waf >= 1.9.12 libavcodec-devel libavformat-devel
+BuildPreReq: txt2man doxygen python3-dev libswresample-devel
+BuildPreReq: libnumpy-py3-devel python3-module-numpy
+
+%description
+Aubio is a library for real time audio labelling. Its features include
+segmenting a sound file before each of its attacks, performing pitch detection,
+tapping the beat and producing midi streams from live audio.
+
+A few examples of applications are provided in examples/ and python/:
+ - aubioonset output the onset detected,
+ - aubionotes emits midi-like notes,
+ - aubiocut is a python script that takes an input sound and creates one new
+   sample at each detected onset or beat,
+ - aubiopitch is a python script to extract pitch tracks from sound files.
+
+%if_enabled python
+%package -n python3-module-%origname
+Group: Development/Python
+Summary: Python bindings to %name
+Requires: %name = %EVR
+
+%description -n python3-module-%origname
+Aubio is a library for real time audio labelling. Its features include
+segmenting a sound file before each of its attacks, performing pitch detection,
+tapping the beat and producing midi streams from live audio.
+
+This package contains the Python bindings required for
+building Python programs based on %name.
+%endif
+
+%package devel
+Group: Development/C
+Summary: Development files of %name
+Requires: %name = %EVR
+Conflicts: lib%origname-devel
+Provides: lib%origname-devel
+
+%description devel
+Aubio is a library for real time audio labelling. Its features include
+segmenting a sound file before each of its attacks, performing pitch detection,
+tapping the beat and producing midi streams from live audio.
+
+This package contains the C headers and documentation required for
+building programs based on %name.
+
+%package examples
+Group: Sound
+Summary: Examples of %name
+Conflicts: lib%origname-examples
+
+%description examples
+Aubio is a library for real time audio labelling. Its features include
+segmenting a sound file before each of its attacks, performing pitch detection,
+tapping the beat and producing midi streams from live audio.
+
+This package contains
+A few examples of applications are provided in examples/ and python/:
+ - aubioonset output the onset detected,
+ - aubionotes emits midi-like notes,
+ - aubiocut is a python script that takes an input sound and creates one new
+   sample at each detected onset or beat,
+ - aubiopitch is a python script to extract pitch tracks from sound files.
+
+aubioonset and aubionotes can work either off-line or online, outputting the
+results on the console or playing a wood-block sound at each detected onset.
+Both Python scripts can plot the results with Gnuplot.
+
+%package devel-docs
+Summary: Documentation for %name
+Group: Development/Documentation
+BuildArch: noarch
+
+%description devel-docs
+Aubio is a library for real time audio labelling. Its features include
+segmenting a sound file before each of its attacks, performing pitch detection,
+tapping the beat and producing midi streams from live audio.
+
+This package contains documentation for %name.
+
+%prep
+%setup -n %origname-%version
+%patch0 -p1
+
+rm -fR waflib
+
+%build
+waf configure --prefix=%prefix --libdir=%_libdir
+waf build -vv
+
+%if_enabled python
+%python3_build
+%endif
+
+%install
+waf install --destdir=%buildroot
+rm -v %buildroot%_libdir/libaubio.a
+
+%if_enabled python
+%python3_install
+%endif
+
+%files
+%doc AUTHORS ChangeLog README.md doc/*
+%_libdir/*.so.%{sover}*
+
+%if_enabled python
+%files -n python3-module-%origname
+%doc python/README.md python/demos
+%python3_sitelibdir/*
+%endif
+
+%files devel
+%_includedir/%origname
+%_libdir/*.so
+%_pkgconfigdir/%origname.pc
+
+%files examples
+%_bindir/*
+#_datadir/sounds/%origname
+%_man1dir/*
+
+%files devel-docs
+%_docdir/lib%origname-doc
+
+%changelog
+* Thu Sep 07 2023 Anton Farygin <rider@altlinux.ru> 0.4.9-alt6
+- add commits e1888a67 and 19b20ab9 from upstream to support build with ffmpeg 6
+
+* Mon Aug 07 2023 Vitaly Lipatov <lav@altlinux.ru> 0.4.9-alt5
+- NMU: dropped unneded BR: libnumpy-devel, removed libaubio.a
+
+* Fri Sep 03 2021 Anton Farygin <rider@altlinux.ru> 0.4.9-alt4
+- FTBFS: use python3 to prepare data for tests (closes: #40405)
+
+* Mon Mar 16 2020 Aleksei Nikiforov <darktemplar@altlinux.org> 0.4.9-alt3
+- Fixed build with numpy.
+
+* Wed Nov 27 2019 Anton Farygin <rider@altlinux.ru> 0.4.9-alt2
+- built with python3
+
+* Fri Mar 08 2019 Anton Farygin <rider@altlinux.ru> 0.4.9-alt1
+- 0.4.9
+- added libaubio-devel provides
+
+* Tue Jan 22 2019 Anton Farygin <rider@altlinux.ru> 0.4.8-alt1
+- 0.4.8
+
+* Tue Oct 09 2018 Anton Farygin <rider@altlinux.ru> 0.4.7-alt1
+- 0.4.7
+
+* Wed Jun 13 2018 Anton Farygin <rider@altlinux.ru> 0.4.6-alt2
+- rebuilt for ffmpeg-4.0
+
+* Mon Nov 13 2017 Anton Farygin <rider@altlinux.ru> 0.4.6-alt1
+- 0.4.6
+
+* Sun Jun 04 2017 Anton Farygin <rider@altlinux.ru> 0.4.5-alt1
+- 0.4.5
+
+* Mon Jun 06 2016 Ivan Zakharyaschev <imz@altlinux.org> 0.4.1-alt2.git20140312.1
+- (AUTO) subst_x86_64.
+
+* Sat Mar 12 2016 Sergey Bolshakov <sbolshakov@altlinux.ru> 0.4.1-alt2.git20140312
+- rebuilt with recent libav
+
+* Sat Sep 13 2014 Eugeny A. Rostovtsev (REAL) <real at altlinux.org> 0.4.1-alt1.git20140312
+- Version 0.4.1
+
+* Wed Jun 13 2012 Eugeny A. Rostovtsev (REAL) <real at altlinux.org> 0.3.2-alt1.2
+- Fixed build
+
+* Thu Jan 20 2011 Igor Vlasenko <viy@altlinux.ru> 0.3.2-alt1.1
+- rebuild for set:provides by request of mithraen
+
+* Thu Nov 06 2008 Ildar Mulyukov <ildar@altlinux.ru> 0.3.2-alt1
+- 1st version for Sisyphus
+- Python bindings are OFF
+- build without Lash and PureData
diff --git a/.gear/rules b/.gear/rules
new file mode 100644
index 00000000..b0b927ea
--- /dev/null
+++ b/.gear/rules
@@ -0,0 +1,3 @@
+spec: .gear/libaubio.spec
+tar: @version@:. name=aubio-@version@
+diff: @version@:. . name=@name@-@version@-alt.patch
diff --git a/.gear/tags/319186517bfc0dd5c015241c091b849f209e0483 b/.gear/tags/319186517bfc0dd5c015241c091b849f209e0483
new file mode 100644
index 00000000..b0b06c8a
--- /dev/null
+++ b/.gear/tags/319186517bfc0dd5c015241c091b849f209e0483
@@ -0,0 +1,24 @@
+object 90bd27a23123fcc524c31787c9c8fc0ae4c79378
+type commit
+tag 0.4.9
+tagger Paul Brossier <piem@piem.org> 1549554786 +0100
+
+0.4.9
+-----BEGIN PGP SIGNATURE-----
+
+iQKTBAABCgB9FiEEuIpQctSRWuz4GiQ0akmxlyir3ZIFAlxcVHxfFIAAAAAALgAo
+aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEI4
+OEE1MDcyRDQ5MTVBRUNGODFBMjQzNDZBNDlCMTk3MjhBQkREOTIACgkQakmxlyir
+3ZKTexAAoVGiQkNBz+6KuZXmJBOzoFAANHDXWHvcOcNeuSiC4WHsSACydq/ICwcz
+Be2SgnTr3zAMNGHA3WBH41aOtnvliN7wWVRUNygAEbkqLke4oGXV7mA3YIfIvryq
+CGUUk36N4wpx18FPqALO9j13/3RuxbjjA0icCMJMDic2vPkvF07VYE8ZbKdaZAzV
+m/SkO+41uyDCbArqQmjMqLcv0lL7H1hecOvsNgs874/Ed65FMo/IgxRmE/c8Csyo
+qX5J+Alyz/qc9ruih4IET4B3gu++hnd9hA5LwDmMXwp3572zsjHyHYM2PWN5QDRc
+Lr6J+202EjNWEo841OLlLhFgarbhxPOEQftHcB4Vl1IA5OmjWatB2UKvvwxKzHrP
+zM4BHPPkcNtuAgPI8xrA4iBqBSZY2FlzmM4hhiFVglbuKPc2d+9pXhsxj0uIVcrx
+9rkOHB27680KHkPaSwBfdFMwxKiQsMnbhvObovZSrQgNWVXbAU0Or7Z6u0RI4i33
+Pd8X0gVTKuS3O8p6K7OrmF8aKeYr5oc0PnDbDqgIt3ehM43aI/rrUr1R3Jp7nOvq
+8JKqNFbbOUQMCuZdgIRZ6Aw26q6b3lHroAXCeGzJ8OBfqG092/sM4+kTQtyu03L5
+l23fGaRdwKtXBqy6c2AlCpxn0fE/oHHVDux5KrRKMuzVIhEVsS8=
+=VAw5
+-----END PGP SIGNATURE-----
diff --git a/.gear/tags/list b/.gear/tags/list
new file mode 100644
index 00000000..8be9331e
--- /dev/null
+++ b/.gear/tags/list
@@ -0,0 +1 @@
+319186517bfc0dd5c015241c091b849f209e0483 0.4.9
diff --git a/src/io/source_avcodec.c b/src/io/source_avcodec.c
index 5b25d85c..1421bd9a 100644
--- a/src/io/source_avcodec.c
+++ b/src/io/source_avcodec.c
@@ -68,6 +68,10 @@
 #define AUBIO_AVCODEC_MAX_BUFFER_SIZE AV_INPUT_BUFFER_MIN_SIZE
 #endif
 
+#if LIBAVCODEC_VERSION_MAJOR >= 59
+#define FF_API_LAVF_AVCTX 1
+#endif
+
 struct _aubio_source_avcodec_t {
   uint_t hop_size;
   uint_t samplerate;
@@ -82,7 +86,11 @@ struct _aubio_source_avcodec_t {
   AVFormatContext *avFormatCtx;
   AVCodecContext *avCodecCtx;
   AVFrame *avFrame;
+#if FF_API_INIT_PACKET
+  AVPacket *avPacket;
+#else
   AVPacket avPacket;
+#endif
 #ifdef HAVE_AVRESAMPLE
   AVAudioResampleContext *avr;
 #elif defined(HAVE_SWRESAMPLE)
@@ -122,10 +130,14 @@ aubio_source_avcodec_t * new_aubio_source_avcodec(const char_t * path,
   AVFormatContext *avFormatCtx = NULL;
   AVCodecContext *avCodecCtx = NULL;
   AVFrame *avFrame = NULL;
+#if FF_API_INIT_PACKET
+  AVPacket *avPacket = NULL;
+#endif
   sint_t selected_stream = -1;
 #if FF_API_LAVF_AVCTX
   AVCodecParameters *codecpar;
 #endif
+
   AVCodec *codec;
   uint_t i;
   int err;
@@ -277,7 +289,16 @@ aubio_source_avcodec_t * new_aubio_source_avcodec(const char_t * path,
   avFrame = av_frame_alloc();
   if (!avFrame) {
     AUBIO_ERR("source_avcodec: Could not allocate frame for (%s)\n", s->path);
+    goto beach;
+  }
+
+#if FF_API_INIT_PACKET
+  avPacket = av_packet_alloc();
+  if (!avPacket) {
+    AUBIO_ERR("source_avcodec: Could not allocate packet for (%s)\n", s->path);
+    goto beach;
   }
+#endif
 
   /* allocate output for avr */
   s->output = (smpl_t *)av_malloc(AUBIO_AVCODEC_MAX_BUFFER_SIZE
@@ -289,6 +310,9 @@ aubio_source_avcodec_t * new_aubio_source_avcodec(const char_t * path,
   s->avFormatCtx = avFormatCtx;
   s->avCodecCtx = avCodecCtx;
   s->avFrame = avFrame;
+#if FF_API_INIT_PACKET
+  s->avPacket = avPacket;
+#endif
 
   aubio_source_avcodec_reset_resampler(s);
 
@@ -354,7 +378,11 @@ void aubio_source_avcodec_readframe(aubio_source_avcodec_t *s,
   AVFormatContext *avFormatCtx = s->avFormatCtx;
   AVCodecContext *avCodecCtx = s->avCodecCtx;
   AVFrame *avFrame = s->avFrame;
-  AVPacket avPacket = s->avPacket;
+#if FF_API_INIT_PACKET
+  AVPacket *avPacket = s->avPacket;
+#else
+  AVPacket *avPacket = &s->avPacket;
+#endif
 #ifdef HAVE_AVRESAMPLE
   AVAudioResampleContext *avr = s->avr;
 #elif defined(HAVE_SWRESAMPLE)
@@ -378,12 +406,14 @@ void aubio_source_avcodec_readframe(aubio_source_avcodec_t *s,
 #else
   int ret = 0;
 #endif
-  av_init_packet (&avPacket);
+#ifndef FF_API_INIT_PACKET
+  av_init_packet (avPacket);
+#endif
   *read_samples = 0;
 
   do
   {
-    int err = av_read_frame (avFormatCtx, &avPacket);
+    int err = av_read_frame (avFormatCtx, avPacket);
     if (err == AVERROR_EOF) {
       s->eof = 1;
       goto beach;
@@ -396,10 +426,10 @@ void aubio_source_avcodec_readframe(aubio_source_avcodec_t *s,
       s->eof = 1;
       goto beach;
     }
-  } while (avPacket.stream_index != s->selected_stream);
+  } while (avPacket->stream_index != s->selected_stream);
 
 #if FF_API_LAVF_AVCTX
-  ret = avcodec_send_packet(avCodecCtx, &avPacket);
+  ret = avcodec_send_packet(avCodecCtx, avPacket);
   if (ret < 0 && ret != AVERROR_EOF) {
     AUBIO_ERR("source_avcodec: error when sending packet for %s\n", s->path);
     goto beach;
@@ -422,7 +452,7 @@ void aubio_source_avcodec_readframe(aubio_source_avcodec_t *s,
     }
   }
 #else
-  len = avcodec_decode_audio4(avCodecCtx, avFrame, &got_frame, &avPacket);
+  len = avcodec_decode_audio4(avCodecCtx, avFrame, &got_frame, avPacket);
 
   if (len < 0) {
     AUBIO_ERR("source_avcodec: error while decoding %s\n", s->path);
@@ -472,7 +502,7 @@ void aubio_source_avcodec_readframe(aubio_source_avcodec_t *s,
   *read_samples = out_samples;
 
 beach:
-  av_packet_unref(&avPacket);
+  av_packet_unref(avPacket);
 }
 
 void aubio_source_avcodec_do(aubio_source_avcodec_t * s, fvec_t * read_data,
@@ -638,7 +668,13 @@ uint_t aubio_source_avcodec_close(aubio_source_avcodec_t * s) {
     avformat_close_input(&s->avFormatCtx);
     s->avFormatCtx = NULL;
   }
+#if FF_API_INIT_PACKET
+  if (s->avPacket) {
+    av_packet_unref(s->avPacket);
+  }
+#else
   av_packet_unref(&s->avPacket);
+#endif
   return AUBIO_OK;
 }
 
@@ -653,6 +689,12 @@ void del_aubio_source_avcodec(aubio_source_avcodec_t * s){
     av_frame_free( &(s->avFrame) );
   }
   s->avFrame = NULL;
+#if FF_API_INIT_PACKET
+  if (s->avPacket != NULL) {
+    av_packet_free( &(s->avPacket) );
+  }
+  s->avPacket = NULL;
+#endif
   if (s->path) {
     AUBIO_FREE(s->path);
   }
diff --git a/tests/wscript_build b/tests/wscript_build
index c99a051e..f0e1385c 100644
--- a/tests/wscript_build
+++ b/tests/wscript_build
@@ -13,7 +13,7 @@ test_sound_abspath = bld.path.get_bld().make_node(test_sound_target)
 test_sound_abspath = str(test_sound_abspath).replace('\\', '\\\\')
 
 b = bld(name='create_tests_source',
-    rule='python ${SRC} ${TGT}',
+    rule='python3 ${SRC} ${TGT}',
     source='create_tests_source.py',
     target=test_sound_target)
 # use post() to create the task, keep a reference to it
 
projeto & código: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
mantenedor atual: Michael Shigorin
mantenedor da tradução: Fernando Martini aka fmartini © 2009