<pre style='margin:0'>
Mohamed Akram (mohd-akram) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/bc71ac0152b8504982806a7f005b19eb93049005">https://github.com/macports/macports-ports/commit/bc71ac0152b8504982806a7f005b19eb93049005</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'> new bc71ac0152b xmms2: update to 0.9.3
</span>bc71ac0152b is described below
<span style='display:block; white-space:pre;color:#808000;'>commit bc71ac0152b8504982806a7f005b19eb93049005
</span>Author: Mohamed Akram <makr@macports.org>
AuthorDate: Sat May 18 00:21:49 2024 +0400
<span style='display:block; white-space:pre;color:#404040;'> xmms2: update to 0.9.3
</span>---
audio/xmms2/Portfile | 165 +++---
audio/xmms2/files/const.patch | 17 -
audio/xmms2/files/patch-dnssd-fd-check.diff | 55 --
audio/xmms2/files/patch-ffmpeg-2.0.diff | 54 --
audio/xmms2/files/patch-ffmpeg-3.0.diff | 576 ---------------------
audio/xmms2/files/patch-nellymoser.diff | 373 -------------
audio/xmms2/files/patch-openssl-1.1.0.diff | 60 ---
.../files/patch-src-clients-vistest-wscript.diff | 28 -
.../xmms2/files/patch-src-plugins-cdda-cdda.c.diff | 11 -
.../files/patch-src-plugins-modplug-modplug.c.diff | 12 -
audio/xmms2/files/patch-waftools-podselect.diff | 14 +
audio/xmms2/files/patch-wscript.diff | 11 -
12 files changed, 86 insertions(+), 1290 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/audio/xmms2/Portfile b/audio/xmms2/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index d8e7c04428a..aa52ef328a7 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/audio/xmms2/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/audio/xmms2/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,137 +1,116 @@
</span> # -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
PortSystem 1.0
<span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup github 1.0
</span> PortGroup waf 1.0
name xmms2
<span style='display:block; white-space:pre;background:#ffe0e0;'>-version 0.8DrO_o
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-revision 26
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.setup xmms2 xmms2-devel 0.9.3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.tarball_from releases
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision 0
</span> categories audio
# Mostly LGPL, some plugins and clients are GPL
license LGPL-2.1+ GPL-2+ GPL-2
maintainers nomaintainer
<span style='display:block; white-space:pre;background:#ffe0e0;'>-homepage https://github.com/xmms2/wiki/wiki
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-master_sites sourceforge:project/xmms2/xmms2/[regsub {^([0-9.]+)} ${version} {\1%20}]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-use_bzip2 yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+use_xz yes
</span>
description CrossPlatform Music Multiplexer System
long_description Next generation audio player of XMMS
<span style='display:block; white-space:pre;background:#ffe0e0;'>-checksums rmd160 35513d7eddd5f79146cb8aa5c6c0bb35369619ec \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- sha256 c77e41e7bd5788889d5a2f78331ca8c748b8721bd2e59f36c36ad4c7cae8694a \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- size 1670726
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+distname ${name}-${version}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums rmd160 b887dcad040dd6f90c14c147faa06821d91e337f \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 fe24798db2e6cd8d8eb131ee9800d211525ffebe561c1c5c057710cd7b90a81b \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 1741548
</span>
depends_build-append port:pkgconfig
<span style='display:block; white-space:pre;background:#ffe0e0;'>-depends_lib path:lib/pkgconfig/glib-2.0.pc:glib2 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:gettext \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:libiconv \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:libxml2 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:curl \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- path:lib/libssl.dylib:openssl \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:zlib \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:sqlite3 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:libao \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:libmad \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:libogg \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:libvorbis \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:flac \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- path:lib/libavcodec.dylib:ffmpeg \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set ffmpeg_ver 6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_lib-append path:lib/pkgconfig/glib-2.0.pc:glib2 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:ffmpeg${ffmpeg_ver} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:libcdio-paranoia \
</span> port:libdiscid \
port:faad2 \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- port:fftw-3-single \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:flac \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:fluidsynth \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:libshout2 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:libmad \
</span> port:libmms \
port:libmodplug \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- port:libmpcdec \
</span> port:mpg123 \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- port:readline \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:libsamplerate \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:libsdl \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:libmpcdec \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:opusfile \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:libxml2 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:libsndfile \
</span> path:lib/libspeex.dylib:speex \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- port:wavpack \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:libshout2 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:libcdio \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:libcdio-paranoia
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# the first 3 patchfiles sequentially patch src/plugins/avcodec - order is important!
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# patch-ffmpeg-3.0.diff patches the avcodec plugin through upstream commit fc66249 (2014-01-29)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# https://git.xmms2.org/xmms2/xmms2-devel/commit/src/plugins/avcodec?id=fc66249
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-patchfiles patch-ffmpeg-2.0.diff \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- patch-nellymoser.diff \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- patch-ffmpeg-3.0.diff \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- patch-src-plugins-modplug-modplug.c.diff \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- patch-wscript.diff \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- patch-src-clients-vistest-wscript.diff \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- patch-src-plugins-cdda-cdda.c.diff \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- patch-dnssd-fd-check.diff \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const.patch \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- patch-openssl-1.1.0.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-post-patch {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- foreach f [glob -directory ${worksrcpath} waf waf-light wafadmin/*.py wafadmin/*/*.py waftools/ruby.py] {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- reinplace -locale C "s|^#! */usr/bin/env python\$|#!${waf.python}|" ${f}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:fftw-3-single \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:libsamplerate \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:libvorbis \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:wavpack
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles patch-waftools-podselect.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+waf.python_branch 3.12
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.pkg_config_path ${prefix}/libexec/ffmpeg${ffmpeg_ver}/lib/pkgconfig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args --conf-prefix=${prefix} --with-optionals=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# error: incompatible function pointer types passing
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# 'void (DNSServiceRef, DNSServiceFlags, uint32_t, DNSServiceErrorType,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# const char *, const char *, uint16_t, uint16_t, const char *, void *)'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# to parameter of type 'DNSServiceResolveReply'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.cflags-append -Wno-error=incompatible-function-pointer-types
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+options optionals
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# not supported
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.post_args-delete --nocache
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant pulse description {Pulseaudio support} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib-append port:pulseaudio
</span> }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-configure.args --conf-prefix=${prefix} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- --no-cython \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- --without-optionals python
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant jack description {Jack audio support} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib-append port:jack
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span>
variant cpp description {C++ development support} {
PortGroup boost 1.0
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> configure.args-append \
--boost-includes [boost::include_dir] \
--boost-libs [boost::lib_dir]
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ optionals-append xmmsclient++ xmmsclient++-glib
</span> }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-if {![variant_isset cpp]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append --without-optionals xmmsclient++,xmmsclient++-glib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant mdns description {MDNS backend support using avahi} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib-append port:avahi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ optionals-append mdns
</span> }
variant perl description {Perl development support} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- depends_lib-append port:perl5.28
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append --with-perl-binary ${prefix}/bin/perl5.28
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-if {![variant_isset perl]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append --without-optionals perl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib-append port:perl5.34 port:p5.34-pod-parser
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append --with-perl-binary ${prefix}/bin/perl5.34
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.env-append PODSELECT=${prefix}/bin/podselect-5.34
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ optionals-append perl
</span> }
variant ruby description {Ruby development support} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- depends_lib-append port:ruby
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append --with-ruby-binary ${prefix}/bin/ruby1.8
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-if {![variant_isset ruby]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append --without-optionals ruby
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib-append port:ruby33
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append --with-ruby-binary ${prefix}/bin/ruby3.3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ optionals-append ruby
</span> }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-variant mdns description {MDNS backend support using avahi} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- depends_lib-append port:avahi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-if {![variant_isset mdns]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append --without-optionals mdns \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- --without-plugins=daap
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-variant pulse description {Pulseaudio support} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- depends_lib-append port:pulseaudio
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-if {![variant_isset pulse]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append --without-plugins=pulse
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant python description {Support for Python 3.12} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib-append port:py312-cython
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ optionals-append python
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.python ${prefix}/bin/python3.12
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.env-append CYTHON=${prefix}/bin/cython-3.12
</span> }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-variant jack description {Jack audio support} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- depends_lib-append port:jack
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-if {![variant_isset jack]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append --without-plugins=jack
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+pre-configure {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-replace --with-optionals= \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --with-optionals=[join ${optionals} ,]
</span> }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-variant python27 description {Support for Python 2.7} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- depends_lib-append port:py27-pyrex
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-delete --without-optionals python
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.python ${prefix}/bin/python2.7
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-default_variants +python27
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-livecheck.regex /${name}-(.+)${extract.suffix}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default_variants +python
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/audio/xmms2/files/const.patch b/audio/xmms2/files/const.patch
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index b5a3eda6d16..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/audio/xmms2/files/const.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,17 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Const-cast Coll in AbstractElement.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-This is how the implementation of the declaration works, and now clang
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-is happy.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-https://github.com/xmms2/xmms2-devel/commit/2af8dcb1dadee505ee38ef4a9b5a373a7df14f18
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/include/xmmsclient/xmmsclient++/coll.h.orig 2011-10-20 14:26:08.000000000 -0500
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/include/xmmsclient/xmmsclient++/coll.h 2022-01-11 21:59:34.000000000 -0600
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -612,7 +612,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- template< typename keyT, typename valT >
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- AbstractElement< keyT, valT >::AbstractElement( const Coll& coll, keyT index )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- : coll_ (coll), index_( index )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ : coll_ ( const_cast< Coll& >( coll ) ), index_( index )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xmmsv_coll_ref( coll_.getColl() );
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/audio/xmms2/files/patch-dnssd-fd-check.diff b/audio/xmms2/files/patch-dnssd-fd-check.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index d7c889de318..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/audio/xmms2/files/patch-dnssd-fd-check.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,55 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From 090e08d54d38cf2b8abf8b9c33a12b3e88096f46 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: Daniel Svensson <dsvensson@gmail.com>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Mon, 6 Aug 2012 22:39:36 +0200
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: BUG(2538): Check FDs in dnssd consumers to avoid 100% CPU.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/clients/mdns/dns_sd/mdns-dnssd.c b/src/clients/mdns/dns_sd/mdns-dnssd.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 2c99845..590acc0 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/clients/mdns/dns_sd/mdns-dnssd.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/clients/mdns/dns_sd/mdns-dnssd.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -71,8 +71,16 @@ dns_ipc_source_prepare (GSource *source, gint *timeout_)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static gboolean
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- dns_ipc_source_check (GSource *source)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- /* Maybe check for errors here? */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- return TRUE;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ GSList *list;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ for (list = source->poll_fds; list != NULL; list = list->next) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ GPollFD *fd = list->data;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (fd->revents != 0) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return TRUE;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return FALSE;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static gboolean
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/plugins/daap/daap_mdns_dnssd.c b/src/plugins/daap/daap_mdns_dnssd.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 2439925..819ffed 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/plugins/daap/daap_mdns_dnssd.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/plugins/daap/daap_mdns_dnssd.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -242,8 +242,16 @@ g_mdns_source_prepare (GSource *source, gint *timeout_)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static gboolean
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- g_mdns_source_check (GSource *source)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- /* Maybe check for errors here? */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- return TRUE;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ GSList *list;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ for (list = source->poll_fds; list != NULL; list = list->next) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ GPollFD *fd = list->data;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (fd->revents != 0) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return TRUE;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return FALSE;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static gboolean
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-cgit v0.10.2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/audio/xmms2/files/patch-ffmpeg-2.0.diff b/audio/xmms2/files/patch-ffmpeg-2.0.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index a2d8f3b46cd..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/audio/xmms2/files/patch-ffmpeg-2.0.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,54 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/plugins/avcodec/avcodec.c.orig 2011-10-20 12:26:08.000000000 -0700
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/plugins/avcodec/avcodec.c 2013-08-06 12:35:32.000000000 -0700
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -27,6 +27,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include "avcodec_compat.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #define AVCODEC_BUFFER_SIZE 16384
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define MAX_AUDIO_FRAME_SIZE 192000 // 1 second of 48khz 32bit audio
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- typedef struct {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- AVCodecContext *codecctx;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -134,7 +135,6 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xmms_xform_private_data_set (xform, data);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- avcodec_init ();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- avcodec_register_all ();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- mimetype = xmms_xform_indata_get_str (xform,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -200,7 +200,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- data->codecctx = avcodec_alloc_context ();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ data->codecctx = avcodec_alloc_context3 (NULL);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- data->codecctx->sample_rate = data->samplerate;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- data->codecctx->channels = data->channels;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- data->codecctx->bit_rate = data->bitrate;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -211,7 +211,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- data->codecctx->codec_id = codec->id;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- data->codecctx->codec_type = codec->type;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (avcodec_open (data->codecctx, codec) < 0) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (avcodec_open2 (data->codecctx, codec, NULL) < 0) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XMMS_DBG ("Opening decoder '%s' failed", codec->name);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- goto err;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -263,7 +263,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xmms_error_t *error)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xmms_avcodec_data_t *data;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- char outbuf[AVCODEC_MAX_AUDIO_FRAME_SIZE];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ char outbuf[MAX_AUDIO_FRAME_SIZE];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- gint outbufsize, bytes_read = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- guint size;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -371,7 +371,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xmms_avcodec_seek (xmms_xform_t *xform, gint64 samples, xmms_xform_seek_mode_t whence, xmms_error_t *err)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xmms_avcodec_data_t *data;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- char outbuf[AVCODEC_MAX_AUDIO_FRAME_SIZE];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ char outbuf[MAX_AUDIO_FRAME_SIZE];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- gint outbufsize, bytes_read = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- gint64 ret = -1;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/audio/xmms2/files/patch-ffmpeg-3.0.diff b/audio/xmms2/files/patch-ffmpeg-3.0.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 86e51cbf279..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/audio/xmms2/files/patch-ffmpeg-3.0.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,576 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -ur src/plugins/avcodec.orig/avcodec.c src/plugins/avcodec/avcodec.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/plugins/avcodec.orig/avcodec.c 2016-02-24 11:59:39.000000000 -0800
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/plugins/avcodec/avcodec.c 2016-02-24 12:01:27.000000000 -0800
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1,7 +1,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /** @file avcodec.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Decoder plugin for ffmpeg avcodec formats
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- * Copyright (C) 2006-2011 XMMS2 Team
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * Copyright (C) 2006-2014 XMMS2 Team
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * This library is free software; you can redistribute it and/or
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * modify it under the terms of the GNU Lesser General Public
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -14,20 +14,20 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Lesser General Public License for more details.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#include "xmms_configuration.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#include "xmms/xmms_xformplugin.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#include "xmms/xmms_sample.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#include "xmms/xmms_log.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <xmms_configuration.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <xmms/xmms_xformplugin.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <xmms/xmms_sample.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <xmms/xmms_log.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <stdio.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <stdlib.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <string.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <glib.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <libavutil/mem.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include "avcodec_compat.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #define AVCODEC_BUFFER_SIZE 16384
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#define MAX_AUDIO_FRAME_SIZE 192000 // 1 second of 48khz 32bit audio
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- typedef struct {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- AVCodecContext *codecctx;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -37,6 +37,8 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- guint buffer_size;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- gboolean no_demuxer;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ AVFrame *read_out_frame;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- guint channels;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- guint samplerate;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xmms_sample_format_t sampleformat;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -54,10 +56,14 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static gboolean xmms_avcodec_plugin_setup (xmms_xform_plugin_t *xform_plugin);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static gboolean xmms_avcodec_init (xmms_xform_t *xform);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static void xmms_avcodec_destroy (xmms_xform_t *xform);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+static gint xmms_avcodec_internal_read_some (xmms_xform_t *xform, xmms_avcodec_data_t *data, xmms_error_t *error);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+static gint xmms_avcodec_internal_decode_some (xmms_avcodec_data_t *data);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+static void xmms_avcodec_internal_append (xmms_avcodec_data_t *data);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static gint xmms_avcodec_read (xmms_xform_t *xform, xmms_sample_t *buf, gint len,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xmms_error_t *error);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static gint64 xmms_avcodec_seek (xmms_xform_t *xform, gint64 samples,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xmms_xform_seek_mode_t whence, xmms_error_t *err);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+static xmms_sample_format_t xmms_avcodec_translate_sample_format (enum AVSampleFormat av_sample_format);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Plugin header
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -93,6 +99,16 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- "audio/x-ffmpeg-*",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- NULL);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ XMMS_DBG ("avcodec version at build time is %d.%d.%d",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (LIBAVCODEC_VERSION_INT >> 16),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (LIBAVCODEC_VERSION_INT >> 8) & 0xff,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ LIBAVCODEC_VERSION_INT & 0xff);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ XMMS_DBG ("avcodec version at run time is %d.%d.%d",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (avcodec_version() >> 16),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (avcodec_version() >> 8) & 0xff,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ avcodec_version() & 0xff);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ XMMS_DBG ("avcodec configuration is %s", avcodec_configuration());
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return TRUE;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -108,6 +124,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- avcodec_close (data->codecctx);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- av_free (data->codecctx);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ av_frame_free (&data->read_out_frame);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- g_string_free (data->outbuf, TRUE);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- g_free (data->buffer);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -133,8 +150,11 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- data->buffer_size = AVCODEC_BUFFER_SIZE;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- data->codecctx = NULL;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ data->read_out_frame = av_frame_alloc ();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xmms_xform_private_data_set (xform, data);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ avcodec_init ();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- avcodec_register_all ();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- mimetype = xmms_xform_indata_get_str (xform,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -161,12 +181,12 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- data->channels = ret;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- /* bitrate required for WMA files */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ /* Required by WMA xform. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xmms_xform_auxdata_get_int (xform,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- "bitrate",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- &data->bitrate);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- /* ALAC and MAC require bits per sample field to be 16 */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ /* Required by tta and apefile xforms. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xmms_xform_auxdata_get_int (xform,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- "samplebits",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- &data->samplebits);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -197,11 +217,11 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* A demuxer plugin forgot to give decoder config? */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xmms_log_error ("Decoder config data not found!");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- return FALSE;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ goto err;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- data->codecctx = avcodec_alloc_context3 (NULL);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ data->codecctx = avcodec_alloc_context3 (codec);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- data->codecctx->sample_rate = data->samplerate;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- data->codecctx->channels = data->channels;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- data->codecctx->bit_rate = data->bitrate;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -221,7 +241,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* some codecs need to have something read before they set
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * the samplerate and channels correctly, unfortunately... */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if ((ret = xmms_avcodec_read (xform, buf, 42, &error)) > 0) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if ((ret = xmms_avcodec_read (xform, buf, sizeof (buf), &error)) > 0) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- g_string_insert_len (data->outbuf, 0, buf, ret);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XMMS_DBG ("First read failed, codec is not working...");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -232,12 +252,17 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- data->samplerate = data->codecctx->sample_rate;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- data->channels = data->codecctx->channels;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ data->sampleformat = xmms_avcodec_translate_sample_format (data->codecctx->sample_fmt);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (data->sampleformat == XMMS_SAMPLE_FORMAT_UNKNOWN) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ avcodec_close (data->codecctx);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ goto err;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xmms_xform_outdata_type_add (xform,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XMMS_STREAM_TYPE_MIMETYPE,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- "audio/pcm",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XMMS_STREAM_TYPE_FMT_FORMAT,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- XMMS_SAMPLE_FORMAT_S16,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ data->sampleformat,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XMMS_STREAM_TYPE_FMT_CHANNELS,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- data->channels,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XMMS_STREAM_TYPE_FMT_SAMPLERATE,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -252,6 +277,9 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (data->codecctx) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- av_free (data->codecctx);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (data->read_out_frame) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ avcodec_free_frame (&data->read_out_frame);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- g_string_free (data->outbuf, TRUE);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- g_free (data->extradata);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- g_free (data);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -264,102 +292,24 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xmms_error_t *error)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xmms_avcodec_data_t *data;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- char outbuf[MAX_AUDIO_FRAME_SIZE];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- gint outbufsize, bytes_read = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- guint size;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- data = xmms_xform_private_data_get (xform);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- g_return_val_if_fail (data, -1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- size = MIN (data->outbuf->len, len);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- while (size == 0) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- AVPacket packet;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- av_init_packet (&packet);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ while (0 == (size = MIN (data->outbuf->len, len))) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ gint res;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (data->no_demuxer || data->buffer_length == 0) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- gint read_total;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- bytes_read = xmms_xform_read (xform,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- (gchar *) (data->buffer + data->buffer_length),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- data->buffer_size - data->buffer_length,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- error);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (bytes_read < 0) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- XMMS_DBG ("Error while reading data");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- return bytes_read;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- } else if (bytes_read == 0) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- XMMS_DBG ("EOF");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- return 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ gint bytes_read;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- read_total = bytes_read;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- /* If we have a demuxer plugin, make sure we read the whole packet */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- while (read_total == data->buffer_size && !data->no_demuxer) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- /* multiply the buffer size and try to read again */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- data->buffer = g_realloc (data->buffer, data->buffer_size * 2);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- bytes_read = xmms_xform_read (xform,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- (gchar *) data->buffer +
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- data->buffer_size,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- data->buffer_size,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- error);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- data->buffer_size *= 2;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (bytes_read < 0) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- XMMS_DBG ("Error while reading data");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- return bytes_read;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- read_total += bytes_read;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (read_total < data->buffer_size) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- /* finally double the buffer size for performance reasons, the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- * hotspot handling likes to fit two frames in the buffer */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- data->buffer = g_realloc (data->buffer, data->buffer_size * 2);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- data->buffer_size *= 2;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- XMMS_DBG ("Reallocated avcodec internal buffer to be %d bytes",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- data->buffer_size);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- /* Update the buffer length */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- data->buffer_length += read_total;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ bytes_read = xmms_avcodec_internal_read_some (xform, data, error);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (bytes_read <= 0) { return bytes_read; }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- packet.data = data->buffer;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- packet.size = data->buffer_length;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- outbufsize = sizeof (outbuf);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- bytes_read = avcodec_decode_audio3 (data->codecctx, (short *) outbuf,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- &outbufsize, &packet);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- /* The DTS decoder of ffmpeg is buggy and always returns
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- * the input buffer length, get frame length from header */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (!strcmp (data->codec_id, "dca") && bytes_read > 0) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- bytes_read = ((int)data->buffer[5] << 12) |
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- ((int)data->buffer[6] << 4) |
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- ((int)data->buffer[7] >> 4);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- bytes_read = (bytes_read & 0x3fff) + 1;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (bytes_read < 0 || bytes_read > data->buffer_length) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- XMMS_DBG ("Error decoding data!");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- return -1;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- } else if (bytes_read != data->buffer_length) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- g_memmove (data->buffer,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- data->buffer + bytes_read,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- data->buffer_length - bytes_read);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- data->buffer_length -= bytes_read;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (outbufsize > 0) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- g_string_append_len (data->outbuf, outbuf, outbufsize);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- size = MIN (data->outbuf->len, len);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ res = xmms_avcodec_internal_decode_some (data);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (res < 0) { return res; }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (res > 0) { xmms_avcodec_internal_append (data); }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- memcpy (buf, data->outbuf->str, size);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -372,8 +322,6 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xmms_avcodec_seek (xmms_xform_t *xform, gint64 samples, xmms_xform_seek_mode_t whence, xmms_error_t *err)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xmms_avcodec_data_t *data;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- char outbuf[MAX_AUDIO_FRAME_SIZE];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- gint outbufsize, bytes_read = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- gint64 ret = -1;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- g_return_val_if_fail (xform, -1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -391,23 +339,11 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* The buggy ape decoder doesn't flush buffers, so we need to finish decoding
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * the frame before seeking to avoid segfaults... this hack sucks */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ /* FIXME: Is ^^^ still true? */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- while (data->buffer_length > 0) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- AVPacket packet;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- av_init_packet (&packet);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- packet.data = data->buffer;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- packet.size = data->buffer_length;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- outbufsize = sizeof (outbuf);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- bytes_read = avcodec_decode_audio3 (data->codecctx, (short *) outbuf,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- &outbufsize, &packet);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (bytes_read < 0 || bytes_read > data->buffer_length) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- XMMS_DBG ("Error decoding data!");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (xmms_avcodec_internal_decode_some (data) < 0) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return -1;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- data->buffer_length -= bytes_read;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- g_memmove (data->buffer, data->buffer + bytes_read, data->buffer_length);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ret = xmms_xform_seek (xform, samples, whence, err);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -421,3 +357,178 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return ret;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+static xmms_sample_format_t
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+xmms_avcodec_translate_sample_format (enum AVSampleFormat av_sample_format)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ switch (av_sample_format) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ case AV_SAMPLE_FMT_U8:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ case AV_SAMPLE_FMT_U8P:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return XMMS_SAMPLE_FORMAT_U8;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ case AV_SAMPLE_FMT_S16:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ case AV_SAMPLE_FMT_S16P:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return XMMS_SAMPLE_FORMAT_S16;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ case AV_SAMPLE_FMT_S32:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ case AV_SAMPLE_FMT_S32P:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return XMMS_SAMPLE_FORMAT_S32;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ case AV_SAMPLE_FMT_FLT:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ case AV_SAMPLE_FMT_FLTP:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return XMMS_SAMPLE_FORMAT_FLOAT;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ case AV_SAMPLE_FMT_DBL:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ case AV_SAMPLE_FMT_DBLP:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return XMMS_SAMPLE_FORMAT_DOUBLE;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ default:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ XMMS_DBG ("AVSampleFormat (%i: %s) not supported.", av_sample_format,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ av_get_sample_fmt_name (av_sample_format));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return XMMS_SAMPLE_FORMAT_UNKNOWN;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+Read some data from our source of data to data->buffer, updating buffer_length
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+and buffer_size as needed.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+Returns: on error: negative
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ on EOF: zero
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ otherwise: number of bytes read.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+*/
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+static gint
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+xmms_avcodec_internal_read_some (xmms_xform_t *xform,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ xmms_avcodec_data_t *data,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ xmms_error_t *error)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ gint bytes_read, read_total;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ bytes_read = xmms_xform_read (xform,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (gchar *) (data->buffer + data->buffer_length),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ data->buffer_size - data->buffer_length,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ error);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (bytes_read < 0) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ XMMS_DBG ("Error while reading data");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return bytes_read;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ } else if (bytes_read == 0) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ XMMS_DBG ("EOF");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ read_total = bytes_read;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ /* If we have a demuxer plugin, make sure we read the whole packet */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ while (read_total == data->buffer_size && !data->no_demuxer) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ /* multiply the buffer size and try to read again */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ data->buffer = g_realloc (data->buffer, data->buffer_size * 2);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ bytes_read = xmms_xform_read (xform,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (gchar *) data->buffer +
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ data->buffer_size,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ data->buffer_size,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ error);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ data->buffer_size *= 2;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (bytes_read < 0) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ XMMS_DBG ("Error while reading data");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return bytes_read;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ read_total += bytes_read;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (read_total < data->buffer_size) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ /* finally double the buffer size for performance reasons, the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * hotspot handling likes to fit two frames in the buffer */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ data->buffer = g_realloc (data->buffer, data->buffer_size * 2);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ data->buffer_size *= 2;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ XMMS_DBG ("Reallocated avcodec internal buffer to be %d bytes",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ data->buffer_size);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ /* Update the buffer length */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ data->buffer_length += read_total;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return read_total;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+Decode some data from data->buffer[0..data->buffer_length-1] to
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+data->read_out_frame
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+Returns: on error: negative
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ on no new data produced: zero
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ otherwise: positive
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+FIXME: data->buffer should be at least data->buffer_length +
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+FF_INPUT_BUFFER_PADDING_SIZE long.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+*/
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+static gint
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+xmms_avcodec_internal_decode_some (xmms_avcodec_data_t *data)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ int got_frame = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ gint bytes_read = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ AVPacket packet;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ av_init_packet (&packet);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ packet.data = data->buffer;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ packet.size = data->buffer_length;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ /* clear buffers and reset fields to defaults */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ av_frame_unref (data->read_out_frame);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ bytes_read = avcodec_decode_audio4 (
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ data->codecctx, data->read_out_frame, &got_frame, &packet);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ /* The DTS decoder of ffmpeg is buggy and always returns
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * the input buffer length, get frame length from header */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ /* FIXME: Is ^^^^ still true? */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (!strcmp (data->codec_id, "dca") && bytes_read > 0) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ bytes_read = ((int)data->buffer[5] << 12) |
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ((int)data->buffer[6] << 4) |
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ((int)data->buffer[7] >> 4);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ bytes_read = (bytes_read & 0x3fff) + 1;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (bytes_read < 0 || bytes_read > data->buffer_length) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ XMMS_DBG ("Error decoding data!");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return -1;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (bytes_read < data->buffer_length) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ data->buffer_length -= bytes_read;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ g_memmove (data->buffer,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ data->buffer + bytes_read,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ data->buffer_length);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ data->buffer_length = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return got_frame ? 1 : 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+static void
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+xmms_avcodec_internal_append (xmms_avcodec_data_t *data)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ enum AVSampleFormat fmt = (enum AVSampleFormat) data->read_out_frame->format;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ int samples = data->read_out_frame->nb_samples;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ int channels = data->codecctx->channels;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ int bps = av_get_bytes_per_sample (fmt);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (av_sample_fmt_is_planar (fmt)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ /* Convert from planar to packed format */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ gint i, j;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ for (i = 0; i < samples; i++) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ for (j = 0; j < channels; j++) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ g_string_append_len (
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ data->outbuf,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (gchar *) (data->read_out_frame->extended_data[j] + i*bps),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ bps
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ );
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ g_string_append_len (data->outbuf,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (gchar *) data->read_out_frame->extended_data[0],
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ samples * channels * bps);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -ur src/plugins/avcodec.orig/avcodec_compat.h src/plugins/avcodec/avcodec_compat.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/plugins/avcodec.orig/avcodec_compat.h 2016-02-24 11:59:39.000000000 -0800
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/plugins/avcodec/avcodec_compat.h 2016-02-24 12:02:03.000000000 -0800
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1,7 +1,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /** @file avcodec_compat.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Compatibility header for libavcodec backwards compatibility
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- * Copyright (C) 2011 XMMS2 Team
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * Copyright (C) 2011-2014 XMMS2 Team
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * This library is free software; you can redistribute it and/or
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * modify it under the terms of the GNU Lesser General Public
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -65,3 +65,35 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # define AVMEDIA_TYPE_AUDIO CODEC_TYPE_AUDIO
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* Calling avcodec_init is not necessary after 53.04 (ffmpeg 0.9) */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if LIBAVCODEC_VERSION_INT >= 0x350400
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# define avcodec_init()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* Map avcodec_alloc_context3 into the deprecated version
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * avcodec_alloc_context in versions earlier than 53.04 (ffmpeg 0.9) */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if LIBAVCODEC_VERSION_INT < 0x350400
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# define avcodec_alloc_context3(codec) \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ avcodec_alloc_context()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* Map avcodec_open2 into the deprecated version
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * avcodec_open in versions earlier than 53.04 (ffmpeg 0.9) */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if LIBAVCODEC_VERSION_INT < 0x350400
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# define avcodec_open2(avctx, codec, options) \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ avcodec_open(avctx, codec)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* Map avcodec_free_frame to av_freep if the former doesn't exist.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * (This is in versions earlier than 54.28.0 (libav) or 54.59.100 (ffmpeg)) */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if ! HAVE_AVCODEC_FREE_FRAME
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# define avcodec_free_frame av_freep
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* Map av_frame_alloc, av_frame_unref, av_frame_free into their
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * deprecated versions in versions earlier than 55.28.1 */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if LIBAVCODEC_VERSION_INT < 0x371c01
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# define av_frame_alloc avcodec_alloc_frame
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# define av_frame_unref avcodec_get_frame_defaults
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# define av_frame_free avcodec_free_frame
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -ur src/plugins/avcodec.orig/wscript src/plugins/avcodec/wscript
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/plugins/avcodec.orig/wscript 2016-02-24 11:59:39.000000000 -0800
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/plugins/avcodec/wscript 2016-02-24 12:00:41.000000000 -0800
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1,10 +1,33 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- from waftools.plugin import plugin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+## Code fragments for configuration
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+avcodec_free_frame_fragment = """
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#ifdef HAVE_LIBAVCODEC_AVCODEC_H
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# include "libavcodec/avcodec.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# include "avcodec.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+int main(void) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ AVFrame *frame;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ avcodec_free_frame (&frame);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+"""
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- def plugin_configure(conf):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- conf.check_cfg(package="libavcodec", uselib_store="avcodec",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- args="--cflags --libs")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- conf.check_cc(header_name="avcodec.h", uselib="avcodec", type="cshlib", mandatory=False)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- conf.check_cc(header_name="libavcodec/avcodec.h", uselib="avcodec", type="cshlib", mandatory=False)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ # non-mandatory function avcodec_free_frame since
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ # * ffmpeg: commit 46a3595, lavc 54.59.100, release 1.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ # * libav: commit a42aada, lavc 54.28.0, release 9
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ conf.check_cc(fragment=avcodec_free_frame_fragment, uselib="avcodec",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ uselib_store="avcodec_free_frame",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ msg="Checking for function avcodec_free_frame", mandatory=False)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure, build = plugin('avcodec', configure=plugin_configure,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- libs=["avcodec"])
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/audio/xmms2/files/patch-nellymoser.diff b/audio/xmms2/files/patch-nellymoser.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index eed8642803f..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/audio/xmms2/files/patch-nellymoser.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,373 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/plugins/avcodec/avcodec.c.orig 2013-08-05 13:22:57.000000000 -0700
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/plugins/avcodec/avcodec.c 2013-08-05 13:22:57.000000000 -0700
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -86,7 +86,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xmms_magic_add ("A/52 (AC-3) header", "audio/x-ffmpeg-ac3",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- "0 beshort 0x0b77", NULL);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xmms_magic_add ("DTS header", "audio/x-ffmpeg-dca",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- "0 belong 0x7ffe8001", NULL);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ "0 belong 0x7ffe8001", NULL);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xmms_xform_plugin_indata_add (xform_plugin,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XMMS_STREAM_TYPE_MIMETYPE,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -188,7 +188,8 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- !strcmp (data->codec_id, "adpcm_swf") ||
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- !strcmp (data->codec_id, "pcm_s16le") ||
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- !strcmp (data->codec_id, "ac3") ||
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- !strcmp (data->codec_id, "dca")) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ !strcmp (data->codec_id, "dca") ||
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ !strcmp (data->codec_id, "nellymoser")) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* number 1024 taken from libavformat raw.c RAW_PACKET_SIZE */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- data->extradata = g_malloc0 (1024);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- data->extradata_size = 1024;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/plugins/flv/flv.c.orig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/plugins/flv/flv.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -25,29 +25,41 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * and other info, then data
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #define FLV_TAG_SIZE 11
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--/* random constant */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #define FLV_CHUNK_SIZE 4096
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--/* let libavcodec take care of swapping sample bytes */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--static const gchar *mime_pcm_s16le = "audio/x-ffmpeg-pcm_s16le";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--static const gchar *fmt_mime[11] = {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- /* Supported when samples are 8 bit
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- * (otherwise there's no way of knowing endianness)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- "audio/pcm",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- "audio/x-ffmpeg-adpcm_swf",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- "audio/mpeg",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- /* if bps is 8 bit u8
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- * if bps is 16 bit sle16
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- "audio/pcm",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- /* libavcodec can't handle nelly without dying yet */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- /*"audio/x-ffmpeg-nellymoser",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- "audio/x-ffmpeg-nellymoser",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- "audio/x-ffmpeg-nellymoser",*/
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- "", "", "",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- "", "", "",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- "audio/aac"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+typedef enum {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ /* Only u8 bit samples since
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ there's no way to determine endianness
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ CODEC_PCM_HOST,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ CODEC_ADPCM,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ CODEC_MP3,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ /* 8 bps: unsigned
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ 16 bps: signed
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ CODEC_PCM_LE,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ CODEC_NELLYMOSER_16K,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ CODEC_NELLYMOSER_8K,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ /* Uses the sample rate in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ the tag as normal
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ CODEC_NELLYMOSER,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ CODEC_AAC = 10
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+} xmms_flv_codec_id;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+struct xmms_flv_codec_table {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ xmms_flv_codec_id id;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ const gchar *mime;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+} static flv_codecs[] = {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ {CODEC_PCM_HOST, "audio/pcm"},
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ {CODEC_ADPCM, "audio/x-ffmpeg-adpcm_swf"},
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ {CODEC_MP3, "audio/mpeg"},
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ /* Will be audio/x-ffmpeg-pcm_s16le if bps is 16 */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ {CODEC_PCM_LE, "audio/pcm"},
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ {CODEC_NELLYMOSER_16K, "audio/x-ffmpeg-nellymoser"},
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ {CODEC_NELLYMOSER_8K, "audio/x-ffmpeg-nellymoser"},
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ {CODEC_NELLYMOSER, "audio/x-ffmpeg-nellymoser"},
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ {CODEC_AAC, "audio/aac"}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- };
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- typedef struct {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -111,23 +123,26 @@ static gboolean
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xmms_flv_init (xmms_xform_t *xform)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xmms_sample_format_t bps;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- gint readret;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ gint readret, i;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- guint8 channels, flags, format;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- guint8 header[FLV_TAG_SIZE + 5];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- const gchar *mime;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ guint8 header[FLV_TAG_SIZE + 1];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- guint32 dataoffset, samplerate;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xmms_error_t err;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xmms_flv_data_t *flvdata;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ struct xmms_flv_codec_table *codec = NULL;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ flvdata = g_new0 (xmms_flv_data_t, 1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ xmms_xform_private_data_set (xform, flvdata);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- readret = xmms_xform_read (xform, header, FLV_HDR_SIZE, &err);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (readret != FLV_HDR_SIZE) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xmms_log_error ("Header read error");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- return FALSE;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ goto init_err;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if ((header[4] & HAS_AUDIO) != HAS_AUDIO) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xmms_log_error ("FLV has no audio stream");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- return FALSE;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ goto init_err;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- dataoffset = get_be32 (&header[5]) - FLV_HDR_SIZE;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -140,7 +155,7 @@ xmms_flv_init (xmms_xform_t *xform)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- dataoffset : FLV_HDR_SIZE, &err);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (readret <= 0) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xmms_log_error ("Error reading header:tag body gap");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- return FALSE;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ goto init_err;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- dataoffset -= readret;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -148,86 +163,99 @@ xmms_flv_init (xmms_xform_t *xform)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (next_audio_tag (xform) <= 0) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xmms_log_error ("Can't find first audio tag");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- return FALSE;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ goto init_err;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (xmms_xform_peek (xform, header, FLV_TAG_SIZE + 5, &err) < FLV_TAG_SIZE + 5) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (xmms_xform_read (xform, header, FLV_TAG_SIZE + 1, &err) < FLV_TAG_SIZE + 1) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xmms_log_error ("Can't read first audio tag");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- return FALSE;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ goto init_err;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- flags = header[FLV_TAG_SIZE + 4];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ flags = header[11];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XMMS_DBG ("Audio flags: %X", flags);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- switch (flags&12) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- case 0: samplerate = 5512; break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- case 4: samplerate = 11025; break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- case 8: samplerate = 22050; break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- case 12: samplerate = 44100; break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- default: samplerate = 8000; break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ format = flags >> 4;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ for (i = 0; i < G_N_ELEMENTS (flv_codecs); i++) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (flv_codecs[i].id == format) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ codec = &flv_codecs[i];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (flags&2) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- bps = XMMS_SAMPLE_FORMAT_S16;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (flags & 1) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ channels = 2;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- bps = XMMS_SAMPLE_FORMAT_U8;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ channels = 1;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (flags&1) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- channels = 2;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (flags & 2) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ bps = XMMS_SAMPLE_FORMAT_S16;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- channels = 1;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ bps = XMMS_SAMPLE_FORMAT_U8;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- format = flags >> 4;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- mime = (format <= 10)? fmt_mime[format] : NULL;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- switch (format) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- case 0:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- /* If the flv has an HE PCM audio stream, the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- * samples must be unsigned and 8 bits long
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (bps != XMMS_SAMPLE_FORMAT_U8) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- xmms_log_error ("Only u8 HE PCM is supported");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- return FALSE;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- case 3:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (bps == XMMS_SAMPLE_FORMAT_S16) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- mime = mime_pcm_s16le;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ switch ((flags & 12) >> 2) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ case 0: samplerate = 5512; break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ case 1: samplerate = 11025; break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ case 2: samplerate = 22050; break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ case 3: samplerate = 44100; break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ default: samplerate = 8000; break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (mime && *mime) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- flvdata = g_new0 (xmms_flv_data_t, 1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (codec) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ switch (codec->id) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ case CODEC_PCM_HOST:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (bps != XMMS_SAMPLE_FORMAT_U8) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ xmms_log_error ("Only u8 HE PCM is supported");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ goto init_err;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ case CODEC_PCM_LE:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (bps == XMMS_SAMPLE_FORMAT_S16) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ codec->mime = "audio/x-ffmpeg-pcm_s16le";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ case CODEC_NELLYMOSER_16K:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ samplerate = 16000;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ case CODEC_NELLYMOSER_8K:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ samplerate = 8000;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ default:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- flvdata->format = format;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ flvdata->last_datasize = get_be24 (&header[1]) - 1;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XMMS_DBG ("Rate: %d, bps: %d, channels: %d", samplerate,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- bps, channels);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- xmms_xform_private_data_set (xform, flvdata);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xmms_xform_outdata_type_add (xform,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- XMMS_STREAM_TYPE_MIMETYPE,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- mime,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- XMMS_STREAM_TYPE_FMT_SAMPLERATE,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- samplerate,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- XMMS_STREAM_TYPE_FMT_FORMAT,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- bps,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- XMMS_STREAM_TYPE_FMT_CHANNELS,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- channels,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- XMMS_STREAM_TYPE_END);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ codec->mime,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ XMMS_STREAM_TYPE_FMT_SAMPLERATE,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ samplerate,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ XMMS_STREAM_TYPE_FMT_FORMAT,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ bps,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ XMMS_STREAM_TYPE_FMT_CHANNELS,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ channels,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ XMMS_STREAM_TYPE_END);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return TRUE;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xmms_log_error ("Unsupported audio format");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- return FALSE;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+init_err:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ g_free (flvdata);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return FALSE;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static gint
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xmms_flv_read (xmms_xform_t *xform, xmms_sample_t *buf, gint len, xmms_error_t *err)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- gint ret = 0, thismuch = FLV_TAG_SIZE + 5;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- guint8 header[FLV_TAG_SIZE + 6], gap = 1;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ gint ret = 0, thismuch = FLV_TAG_SIZE + 1;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ guint8 header[FLV_TAG_SIZE + 1];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xmms_flv_data_t *data = NULL;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- data = xmms_xform_private_data_get (xform);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -236,12 +264,8 @@ xmms_flv_read (xmms_xform_t *xform, xmms_sample_t *buf, gint len, xmms_error_t *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xmms_xform_auxdata_barrier (xform);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ret = next_audio_tag (xform);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (ret > 0) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (data->format == 10) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- thismuch++;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- gap++;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (xmms_xform_read (xform, header, thismuch, err) == thismuch) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- data->last_datasize = get_be24 (&header[5]) - gap;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ data->last_datasize = get_be24 (&header[1]) - 1;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xmms_log_error ("Need %d bytes", thismuch);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return -1;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -280,40 +304,51 @@ xmms_flv_destroy (xmms_xform_t *xform)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static gint
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- next_audio_tag (xmms_xform_t *xform)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- guint8 header[FLV_TAG_SIZE + 4];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ guint8 header[FLV_TAG_SIZE];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- guint8 dumb[FLV_CHUNK_SIZE];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- gint ret = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xmms_error_t err;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- guint32 datasize = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ xmms_flv_data_t *data;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ data = xmms_xform_private_data_get (xform);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- do {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- /* there's a last 4 bytes at the end of an FLV giving the final
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- * tag's size, this isn't an error
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- ret = xmms_xform_peek (xform, header, FLV_TAG_SIZE + 4, &err);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if ((ret < FLV_TAG_SIZE) && (ret > -1)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- ret = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- } else if (ret == -1) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- xmms_log_error ("%s", xmms_error_message_get (&err));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ /* If > 0 assume we're in the middle of a tag's data */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (!data->last_datasize) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ /* There are 4 bytes before an actual tag giving
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ the previous tag's size. The first size in an
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ flv is always 0.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (xmms_xform_read (xform, header, 4, &err) != 4) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ xmms_log_error ("Couldn't read last tag size");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return -1;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (header[4] == 8) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- /* woo audio tag! */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ret = xmms_xform_peek (xform, header, FLV_TAG_SIZE, &err);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if ((ret < FLV_TAG_SIZE) && (ret > -1)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ } else if (ret == -1) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ xmms_log_error ("%s", xmms_error_message_get (&err));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return ret;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (header[0] == 8) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ /* woo audio tag! */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- ret = xmms_xform_read (xform, header, FLV_TAG_SIZE + 4, &err);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (ret <= 0) { return ret; }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if ((ret = xmms_xform_read (xform, header, FLV_TAG_SIZE, &err)) <= 0) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return ret;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- datasize = get_be24 (&header[5]);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ data->last_datasize = get_be24 (&header[1]);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- while (datasize) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ while (data->last_datasize) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ret = xmms_xform_read (xform, dumb,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- (datasize < FLV_CHUNK_SIZE) ?
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- datasize : FLV_CHUNK_SIZE,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- &err);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (data->last_datasize < FLV_CHUNK_SIZE) ?
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ data->last_datasize : FLV_CHUNK_SIZE,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ &err);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (ret == 0) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xmms_log_error ("Data field short!");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -323,7 +358,7 @@ next_audio_tag (xmms_xform_t *xform)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- datasize -= ret;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ data->last_datasize -= ret;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } while (ret);
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/audio/xmms2/files/patch-openssl-1.1.0.diff b/audio/xmms2/files/patch-openssl-1.1.0.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 8554ef2526f..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/audio/xmms2/files/patch-openssl-1.1.0.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,60 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From b8d1d0a1f43f652b19277c93a0eeb2d7432bc8a0 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Tue, 30 Aug 2016 21:28:52 +0200
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: OTHER: Build against openssl 1.1.0.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/plugins/airplay/raop_client.c b/src/plugins/airplay/raop_client.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 1d86cf3..ef113cb 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/plugins/airplay/raop_client.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/plugins/airplay/raop_client.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -135,15 +135,34 @@ raop_rsa_encrypt (guchar *text, gint len, guchar *res)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 0x5e,0xf,0xc8,0x75,0x34,0x3e,0xc7,0x82,0x11,0x76,0x25,0xcd
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ,0xbf,0x98,0x44,0x7b};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static const guchar exp[] = {0x01, 0x00, 0x01};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ BIGNUM *n, *e;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- rsa = RSA_new ();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- rsa->n = BN_bin2bn (mod, 256, NULL);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- rsa->e = BN_bin2bn (exp, 3, NULL);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ n = BN_bin2bn (mod, 256, NULL);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ e = BN_bin2bn (exp, 3, NULL);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (!rsa || !n || !e)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ goto err;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if OPENSSL_VERSION_NUMBER < 0x10100000
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ rsa->n = n;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ rsa->e = e;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (!RSA_set0_key(rsa, n, e, NULL))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ goto err;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- size = RSA_public_encrypt (len, text, res, rsa, RSA_PKCS1_OAEP_PADDING);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- RSA_free (rsa);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return size;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+err:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (rsa)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ RSA_free(rsa);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (n)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ BN_free(n);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (e)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ BN_free(e);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static void
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -250,6 +269,8 @@ raop_rtsp_announce (raop_client_t *rc)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- gint ret = RAOP_EOK;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- size = raop_rsa_encrypt (rc->aes_key_str, 16, enc_aes_key);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (size == 0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return RAOP_EFAIL;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- size = b64_encode_alloc (enc_aes_key, size, &key);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- g_strdelimit (key, "=", '\0');
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-cgit v0.10.2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/audio/xmms2/files/patch-src-clients-vistest-wscript.diff b/audio/xmms2/files/patch-src-clients-vistest-wscript.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 34e46cb0222..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/audio/xmms2/files/patch-src-clients-vistest-wscript.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,28 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/clients/vistest/wscript.orig 2015-10-22 02:04:11.000000000 -0700
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/clients/vistest/wscript 2015-10-22 02:08:31.000000000 -0700
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -23,12 +23,12 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- t.install_path = None
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if bld.env.LIB_vorbisenc:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if bld.env.LIB_vorbisenc and bld.env.LIB_vorbis and bld.env.LIB_ogg:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- t = bld(features = 'c cprogram',
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- target = 'xmms2-ripper',
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- source = 'ripper.c',
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- includes = '. ../../.. ../../include',
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- uselib = 'vorbisenc',
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ uselib = 'vorbisenc vorbis ogg',
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- use = 'xmmsclient'
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if not bld.env.INSTALL_VIS_REFERENCE_CLIENTS:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -55,6 +55,10 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- conf.check_cfg(package='vorbisenc', uselib_store='vorbisenc',
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- args='--cflags --libs', mandatory=False)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ conf.check_cfg(package='vorbis', uselib_store='vorbis',
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ args='--cflags --libs', mandatory=False)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ conf.check_cfg(package='ogg', uselib_store='ogg',
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ args='--cflags --libs', mandatory=False)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if conf.check_cfg(package='libvisual-0.4', uselib_store='visual',
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- args='--cflags --libs', mandatory=False):
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/audio/xmms2/files/patch-src-plugins-cdda-cdda.c.diff b/audio/xmms2/files/patch-src-plugins-cdda-cdda.c.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 8e714d3c726..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/audio/xmms2/files/patch-src-plugins-cdda-cdda.c.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,11 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/plugins/cdda/cdda.c.orig 2015-10-22 15:45:06.000000000 -0700
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/plugins/cdda/cdda.c 2015-10-22 15:47:03.000000000 -0700
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -18,7 +18,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include "xmms/xmms_log.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include "xmms/xmms_util.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#include <cdio/cdda.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <cdio/paranoia/cdda.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <cdio/cdio.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <cdio/logging.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <discid/discid.h>
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/audio/xmms2/files/patch-src-plugins-modplug-modplug.c.diff b/audio/xmms2/files/patch-src-plugins-modplug-modplug.c.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 216cf17bf7a..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/audio/xmms2/files/patch-src-plugins-modplug-modplug.c.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,12 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-https://bugs.xmms2.org/view.php?id=2574
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/plugins/modplug/modplug.c.orig 2011-10-20 14:26:08.000000000 -0500
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/plugins/modplug/modplug.c 2014-10-02 08:38:40.000000000 -0500
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -9,7 +9,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include "xmms/xmms_sample.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include "xmms/xmms_medialib.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include "xmms/xmms_log.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#include <modplug.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <libmodplug/modplug.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <glib.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <string.h>
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/audio/xmms2/files/patch-waftools-podselect.diff b/audio/xmms2/files/patch-waftools-podselect.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..82ffdce626e
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/audio/xmms2/files/patch-waftools-podselect.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,14 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- waftools/podselect.py.orig 2023-05-12 12:19:00
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ waftools/podselect.py 2024-05-17 16:57:06
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -31,7 +31,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ self.bld.install_files(os.path.join(base_path, os.path.dirname(path)), outnode)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class perldoc(Task.Task):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- run_str='podselect ${SRC} > ${TGT}'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ run_str='${PODSELECT} ${SRC} > ${TGT}'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ color='BLUE'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext_in=['.xs']
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ext_out=['.pod']
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++def configure(ctx):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ctx.find_program('podselect', var='PODSELECT')
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/audio/xmms2/files/patch-wscript.diff b/audio/xmms2/files/patch-wscript.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index be7e03402e5..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/audio/xmms2/files/patch-wscript.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,11 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-http://git.xmms2.org/xmms2/xmms2-devel/commit/wscript?id=8a2603cabdc0c184d2c177660986d20b21fd6987
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- wscript.orig 2011-10-20 14:26:08.000000000 -0500
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ wscript 2014-10-02 08:30:12.000000000 -0500
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -356,7 +356,6 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- conf.env.cprogram_PATTERN = '%s.exe'
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if Options.platform == 'darwin':
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- conf.env.append_value('LINKFLAGS', '-multiply_defined_suppress')
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- conf.env.explicit_install_name = True
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- else:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- conf.env.explicit_install_name = False
</span></pre><pre style='margin:0'>
</pre>