From bea7d636e63f4a8dc1dc641c8d1f991988554df2 Mon Sep 17 00:00:00 2001 From: hasso Date: Thu, 26 Feb 2009 18:00:34 +0000 Subject: aKode is a simple audio decoding framework that provides a uniform interface to decode the most common audio formats. It also has a direct playback option for a number of audio outputs. This package provides the aKode library and akodeplay testing utility. --- audio/akode/DESCR | 5 ++ audio/akode/Makefile | 15 +++++ audio/akode/Makefile.common | 42 ++++++++++++++ audio/akode/PLIST | 30 ++++++++++ audio/akode/buildlink3.mk | 21 +++++++ audio/akode/distinfo | 14 +++++ audio/akode/patches/patch-aa | 13 +++++ audio/akode/patches/patch-ab | 30 ++++++++++ audio/akode/patches/patch-ac | 133 +++++++++++++++++++++++++++++++++++++++++++ audio/akode/patches/patch-ad | 28 +++++++++ audio/akode/patches/patch-ae | 13 +++++ audio/akode/patches/patch-af | 19 +++++++ audio/akode/patches/patch-ag | 40 +++++++++++++ audio/akode/patches/patch-ah | 29 ++++++++++ audio/akode/patches/patch-ai | 22 +++++++ 15 files changed, 454 insertions(+) create mode 100644 audio/akode/DESCR create mode 100644 audio/akode/Makefile create mode 100644 audio/akode/Makefile.common create mode 100644 audio/akode/PLIST create mode 100644 audio/akode/buildlink3.mk create mode 100644 audio/akode/distinfo create mode 100644 audio/akode/patches/patch-aa create mode 100644 audio/akode/patches/patch-ab create mode 100644 audio/akode/patches/patch-ac create mode 100644 audio/akode/patches/patch-ad create mode 100644 audio/akode/patches/patch-ae create mode 100644 audio/akode/patches/patch-af create mode 100644 audio/akode/patches/patch-ag create mode 100644 audio/akode/patches/patch-ah create mode 100644 audio/akode/patches/patch-ai diff --git a/audio/akode/DESCR b/audio/akode/DESCR new file mode 100644 index 00000000000..cea5a7617c6 --- /dev/null +++ b/audio/akode/DESCR @@ -0,0 +1,5 @@ +aKode is a simple audio decoding framework that provides a uniform interface +to decode the most common audio formats. It also has a direct playback option +for a number of audio outputs. + +This package provides the aKode library and akodeplay testing utility. diff --git a/audio/akode/Makefile b/audio/akode/Makefile new file mode 100644 index 00000000000..8b189e8c657 --- /dev/null +++ b/audio/akode/Makefile @@ -0,0 +1,15 @@ +# $NetBSD: Makefile,v 1.1.1.1 2009/02/26 18:00:34 hasso Exp $ +# + +PKGNAME= akode-2.0.2 +PKGREVISION= 1 + +MAINTAINER= hasso@NetBSD.org +COMMENT= Simple audio decoding framework (base package) + +.include "../../audio/akode/Makefile.common" + +PKG_DESTDIR_SUPPORT= user-destdir + +.include "../../devel/libltdl/buildlink3.mk" +.include "../../mk/bsd.pkg.mk" diff --git a/audio/akode/Makefile.common b/audio/akode/Makefile.common new file mode 100644 index 00000000000..d2477ad0d6f --- /dev/null +++ b/audio/akode/Makefile.common @@ -0,0 +1,42 @@ +# $NetBSD: Makefile.common,v 1.1.1.1 2009/02/26 18:00:34 hasso Exp $ +# +# used by audio/akode/Makefile +# used by audio/akode-plugins-alsa/Makefile +# used by audio/akode-plugins-ffmpeg/Makefile +# used by audio/akode-plugins-jack/Makefile +# used by audio/akode-plugins-mpc/Makefile +# used by audio/akode-plugins-mpeg/Makefile +# used by audio/akode-plugins-oss/Makefile +# used by audio/akode-plugins-pulseaudio/Makefile +# used by audio/akode-plugins-resampler/Makefile +# used by audio/akode-plugins-sun/Makefile +# used by audio/akode-plugins-xiph/Makefile + +AKODE_VERSION= 2.0.2 +DISTNAME= 30375-akode-${AKODE_VERSION} +CATEGORIES= audio +MASTER_SITES= http://www.kde-apps.org/CONTENT/content-files/ +EXTRACT_SUFX= .tar.bz2 + +MAINTAINER= hasso@NetBSD.org +HOMEPAGE= http://carewolf.com/akode/ + +WRKSRC= ${WRKDIR}/akode-${AKODE_VERSION} + +GNU_CONFIGURE= yes +USE_TOOLS+= gmake pkg-config +USE_LANGUAGES= c c++ +USE_LIBTOOL= yes + +CONFIGURE_ARGS+= --without-flac +CONFIGURE_ARGS+= --without-speex +CONFIGURE_ARGS+= --without-libmad +CONFIGURE_ARGS+= --without-libsamplerate +CONFIGURE_ARGS+= --without-jack +CONFIGURE_ARGS+= --without-polypaudio +CONFIGURE_ARGS+= --without-ffmpeg +CONFIGURE_ARGS+= --without-oss +CONFIGURE_ARGS+= --without-sun +CONFIGURE_ARGS+= --without-alsa +CONFIGURE_ARGS+= --without-vorbis +CONFIGURE_ARGS+= --without-mpc diff --git a/audio/akode/PLIST b/audio/akode/PLIST new file mode 100644 index 00000000000..81b508d25b0 --- /dev/null +++ b/audio/akode/PLIST @@ -0,0 +1,30 @@ +@comment $NetBSD: PLIST,v 1.1.1.1 2009/02/26 18:00:34 hasso Exp $ +bin/akode-config +bin/akodeplay +include/akode/akode_export.h +include/akode/akodelib.h +include/akode/audiobuffer.h +include/akode/audioconfiguration.h +include/akode/audioframe.h +include/akode/auto_sink.h +include/akode/buffered_decoder.h +include/akode/bytebuffer.h +include/akode/converter.h +include/akode/crossfader.h +include/akode/decoder.h +include/akode/encoder.h +include/akode/fast_resampler.h +include/akode/file.h +include/akode/framedecoder.h +include/akode/localfile.h +include/akode/magic.h +include/akode/mmapfile.h +include/akode/player.h +include/akode/pluginhandler.h +include/akode/resampler.h +include/akode/sink.h +include/akode/void_sink.h +include/akode/volumefilter.h +include/akode/wav_decoder.h +lib/libakode.la +@dirrm include/akode diff --git a/audio/akode/buildlink3.mk b/audio/akode/buildlink3.mk new file mode 100644 index 00000000000..aaa355f4c71 --- /dev/null +++ b/audio/akode/buildlink3.mk @@ -0,0 +1,21 @@ +# $NetBSD: buildlink3.mk,v 1.1.1.1 2009/02/26 18:00:34 hasso Exp $ + +BUILDLINK_DEPTH:= ${BUILDLINK_DEPTH}+ +AKODE_BUILDLINK3_MK:= ${AKODE_BUILDLINK3_MK}+ + +.if !empty(BUILDLINK_DEPTH:M+) +BUILDLINK_DEPENDS+= akode +.endif + +BUILDLINK_PACKAGES:= ${BUILDLINK_PACKAGES:Nakode} +BUILDLINK_PACKAGES+= akode +BUILDLINK_ORDER:= ${BUILDLINK_ORDER} ${BUILDLINK_DEPTH}akode + +.if !empty(AKODE_BUILDLINK3_MK:M+) +BUILDLINK_API_DEPENDS.akode+= akode>=2.0.2 +BUILDLINK_PKGSRCDIR.akode?= ../../akode/akode +.endif # AKODE_BUILDLINK3_MK + +.include "../../devel/libltdl/buildlink3.mk" + +BUILDLINK_DEPTH:= ${BUILDLINK_DEPTH:S/+$//} diff --git a/audio/akode/distinfo b/audio/akode/distinfo new file mode 100644 index 00000000000..680de5613e9 --- /dev/null +++ b/audio/akode/distinfo @@ -0,0 +1,14 @@ +$NetBSD: distinfo,v 1.1.1.1 2009/02/26 18:00:34 hasso Exp $ + +SHA1 (30375-akode-2.0.2.tar.bz2) = 10ad1e335bc53c2a90d133b493568324514c729c +RMD160 (30375-akode-2.0.2.tar.bz2) = fa0322367d8e24e541007d3f9e508c3c31370d96 +Size (30375-akode-2.0.2.tar.bz2) = 472605 bytes +SHA1 (patch-aa) = e984dc5d4f1e62812d8c0c9db4bf0476c1edf3fa +SHA1 (patch-ab) = 0366386429f06655aabd3dbfd393182856750cc6 +SHA1 (patch-ac) = 16ecd5bddc4a8490703380f06cf25abf54a2f99e +SHA1 (patch-ad) = b1e110ed925fd35714e0baf89a7ce485496fd0a6 +SHA1 (patch-ae) = e1b8b9439907a92531c1e0a0c4b494bd7776f770 +SHA1 (patch-af) = 99f17f5d3a58ad659a1a8c4dab5ddf6b5382dbff +SHA1 (patch-ag) = 5c3cb7d81af525f1816cd4489ff5097a8457a91e +SHA1 (patch-ah) = f58249f5d32e86e82a5831a826dafc0590653a5e +SHA1 (patch-ai) = 0b1196a792259ed573c964f66b68f56adb8a4b0e diff --git a/audio/akode/patches/patch-aa b/audio/akode/patches/patch-aa new file mode 100644 index 00000000000..2b347c4c17a --- /dev/null +++ b/audio/akode/patches/patch-aa @@ -0,0 +1,13 @@ +$NetBSD: patch-aa,v 1.1.1.1 2009/02/26 18:00:34 hasso Exp $ + +--- akode/plugins/xiph_decoder/flac113_decoder.cpp.orig 2008-12-05 15:27:25 +0200 ++++ akode/plugins/xiph_decoder/flac113_decoder.cpp 2008-12-05 15:27:44 +0200 +@@ -108,7 +108,7 @@ struct FLACDecoder::private_data { + static FLAC__StreamDecoderReadStatus flac_read_callback( + const FLAC__StreamDecoder *, + FLAC__byte buffer[], +- unsigned *bytes, ++ size_t *bytes, + void *client_data) + { + FLACDecoder::private_data *data = (FLACDecoder::private_data*)client_data; diff --git a/audio/akode/patches/patch-ab b/audio/akode/patches/patch-ab new file mode 100644 index 00000000000..9b8adb213b2 --- /dev/null +++ b/audio/akode/patches/patch-ab @@ -0,0 +1,30 @@ +$NetBSD: patch-ab,v 1.1.1.1 2009/02/26 18:00:34 hasso Exp $ + +--- akode/plugins/sun_sink/sun_sink.cpp.orig 2008-12-06 21:32:50 +0200 ++++ akode/plugins/sun_sink/sun_sink.cpp 2008-12-06 21:39:31 +0200 +@@ -20,13 +20,14 @@ + + #include + ++#include ++#include + #include + +-#include + #include + #include ++#include + #include +-#include + + #include + #include "sun_sink.h" +@@ -97,7 +98,7 @@ int SunSink::setAudioConfiguration(const + { + d->config = *config; + +- AUDIO_INITINFO(&d->auinfo) ++ AUDIO_INITINFO(&d->auinfo); + + if (ioctl(d->audio_fd, AUDIO_GETINFO, &d->auinfo) < 0) + { diff --git a/audio/akode/patches/patch-ac b/audio/akode/patches/patch-ac new file mode 100644 index 00000000000..16e32fbec5c --- /dev/null +++ b/audio/akode/patches/patch-ac @@ -0,0 +1,133 @@ +$NetBSD: patch-ac,v 1.1.1.1 2009/02/26 18:00:34 hasso Exp $ + +--- configure.orig 2007-04-06 16:23:22 +0300 ++++ configure 2009-02-20 20:04:46 +0200 +@@ -913,6 +913,8 @@ VORBIS_LIBS + VORBISFILE_LIBS + include_xiph_decoder_TRUE + include_xiph_decoder_FALSE ++include_mpc_decoder_FALSE ++include_mpc_decoder_TRUE + include_src_resampler_TRUE + include_src_resampler_FALSE + include_alsa_sink_TRUE +@@ -1559,6 +1561,7 @@ Optional Packages: + --with-pic try to use only PIC/non-PIC objects [default=use + both] + --with-tags[=TAGS] include additional configurations [automatic] ++ --with-mpc Enable MPC support [default=yes] + --with-flac Enable FLAC support [default=check] + --with-speex Enable speex support [default=check] + --with-libmad Enable libmad support [default=check] +@@ -23630,6 +23633,12 @@ ac_config_headers="$ac_config_headers ak + + + ++# Check whether --with-mpc was given. ++if test "${with_mpc+set}" = set; then ++ withval=$with_mpc; with_mpc="$withval" ++else ++ with_mpc="yes" ++fi + + # Check whether --with-flac was given. + if test "${with_flac+set}" = set; then +@@ -23639,6 +23648,8 @@ else + fi + + ++have_libFLAC=no ++have_libOggFLAC=no + if test "x$flac_test" = "xyes" ; then + + +@@ -24539,6 +24550,7 @@ else + fi + + ++have_libspeex=no + if test "x$speex_test" = "xyes" ; then + { echo "$as_me:$LINENO: checking for speex headers" >&5 + echo $ECHO_N "checking for speex headers... $ECHO_C" >&6; } +@@ -24554,8 +24566,8 @@ cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ + +- #include +- #include ++ #include ++ #include + #include + + int +@@ -24733,10 +24745,10 @@ cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ + +- #include +- #include +- #include +- #include ++ #include ++ #include ++ #include ++ #include + #include + + int +@@ -25506,12 +25518,12 @@ fi + + + if test "x$polypaudio_test" = "xyes" ; then +-{ echo "$as_me:$LINENO: checking for Polypaudio 0.7 or later" >&5 +-echo $ECHO_N "checking for Polypaudio 0.7 or later... $ECHO_C" >&6; } +-if $PKG_CONFIG --atleast-version 0.7 polyplib-simple >/dev/null 2>&1 ; then +- POLYP_CFLAGS="`$PKG_CONFIG --cflags polyplib-simple`" +- POLYP_LIBADD="`$PKG_CONFIG --libs-only-l polyplib-simple`" +- POLYP_LDFLAGS="`$PKG_CONFIG --libs-only-L polyplib-simple`" ++{ echo "$as_me:$LINENO: checking for Pulseaudio 0.9.2 or later" >&5 ++echo $ECHO_N "checking for Pulseaudio 0.9.2 or later... $ECHO_C" >&6; } ++if $PKG_CONFIG --atleast-version 0.7 libpulse-simple >/dev/null 2>&1 ; then ++ POLYP_CFLAGS="`$PKG_CONFIG --cflags libpulse-simple`" ++ POLYP_LIBADD="`$PKG_CONFIG --libs-only-l libpulse-simple`" ++ POLYP_LDFLAGS="`$PKG_CONFIG --libs-only-L libpulse-simple`" + have_polyp=yes + { echo "$as_me:$LINENO: result: yes" >&5 + echo "${ECHO_T}yes" >&6; } +@@ -28341,6 +28353,13 @@ if test x$have_libFLAC$have_libOggFLAC$h + fi + + ++if test x$with_mpc = xyes; then ++ include_mpc_decoder_TRUE= ++ include_mpc_decoder_FALSE='#' ++else ++ include_mpc_decoder_TRUE='#' ++ include_mpc_decoder_FALSE= ++fi + + if test x$usefull_xiph_decoder = xyes; then + include_xiph_decoder_TRUE= +@@ -28660,6 +28679,13 @@ echo "$as_me: error: conditional \"inclu + Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } + fi ++if test -z "${include_mpc_decoder_TRUE}" && test -z "${include_mpc_decoder_FALSE}"; then ++ { { $as_echo "$as_me:$LINENO: error: conditional \"include_mpc_decoder\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++$as_echo "$as_me: error: conditional \"include_mpc_decoder\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi + if test -z "${include_xiph_decoder_TRUE}" && test -z "${include_xiph_decoder_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"include_xiph_decoder\" was never defined. + Usually this means the macro was only invoked conditionally." >&5 +@@ -30094,7 +30120,7 @@ if test "x$have_libOggFLAC" = "xno"; the + echo ">" + fi + +-if test "x$have_libSPEEX" = "xno"; then ++if test "x$have_libspeex" = "xno"; then + echo ">" + echo "> You do not seem to have libspeex installed." + echo "> Without it aKode and aRts will not be" diff --git a/audio/akode/patches/patch-ad b/audio/akode/patches/patch-ad new file mode 100644 index 00000000000..f593de2e402 --- /dev/null +++ b/audio/akode/patches/patch-ad @@ -0,0 +1,28 @@ +$NetBSD: patch-ad,v 1.1.1.1 2009/02/26 18:00:34 hasso Exp $ + +--- akode/plugins/ffmpeg_decoder/ffmpeg_decoder.cpp.orig 2006-08-10 21:37:20 +0300 ++++ akode/plugins/ffmpeg_decoder/ffmpeg_decoder.cpp 2009-02-20 13:57:54 +0200 +@@ -26,9 +26,11 @@ + #include "decoder.h" + + #include +-#include +-#include +-#include ++extern "C" { ++#include ++#include ++#include ++} + + #include "ffmpeg_decoder.h" + #include +@@ -349,7 +351,7 @@ retry: + assert(false); + } + if (length == 0) return readFrame(frame); +- std::cout << "akode: FFMPEG: Frame length: " << length << "\n"; ++ // std::cout << "akode: FFMPEG: Frame length: " << length << "\n"; + + if( d->packetSize <= 0 ) + av_free_packet( &d->packet ); diff --git a/audio/akode/patches/patch-ae b/audio/akode/patches/patch-ae new file mode 100644 index 00000000000..9b2afdc9947 --- /dev/null +++ b/audio/akode/patches/patch-ae @@ -0,0 +1,13 @@ +$NetBSD: patch-ae,v 1.1.1.1 2009/02/26 18:00:34 hasso Exp $ + +--- akode/plugins/Makefile.in.orig 2009-02-20 10:13:15 +0200 ++++ akode/plugins/Makefile.in 2009-02-20 10:13:53 +0200 +@@ -248,7 +248,7 @@ target_os = @target_os@ + target_vendor = @target_vendor@ + unsermake_enable_pch_FALSE = @unsermake_enable_pch_FALSE@ + unsermake_enable_pch_TRUE = @unsermake_enable_pch_TRUE@ +-AKODE_MPC_DECODER = mpc_decoder ++@include_mpc_decoder_TRUE@AKODE_MPC_DECODER = mpc_decoder + @include_xiph_decoder_TRUE@AKODE_XIPH_DECODER = xiph_decoder + @include_mpeg_decoder_TRUE@AKODE_MPEG_DECODER = mpeg_decoder + @include_ffmpeg_decoder_TRUE@AKODE_FFMPEG_DECODER = ffmpeg_decoder diff --git a/audio/akode/patches/patch-af b/audio/akode/patches/patch-af new file mode 100644 index 00000000000..0f21ffb72f5 --- /dev/null +++ b/audio/akode/patches/patch-af @@ -0,0 +1,19 @@ +$NetBSD: patch-af,v 1.1.1.1 2009/02/26 18:00:34 hasso Exp $ + +--- akode/plugins/xiph_decoder/speex_decoder.cpp.orig 2009-02-20 13:47:29 +0200 ++++ akode/plugins/xiph_decoder/speex_decoder.cpp 2009-02-20 13:47:52 +0200 +@@ -25,10 +25,10 @@ + extern "C" { + #include + #include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include + #include + } + diff --git a/audio/akode/patches/patch-ag b/audio/akode/patches/patch-ag new file mode 100644 index 00000000000..c7066885967 --- /dev/null +++ b/audio/akode/patches/patch-ag @@ -0,0 +1,40 @@ +$NetBSD: patch-ag,v 1.1.1.1 2009/02/26 18:00:34 hasso Exp $ + +* Attempt fallback to ffmpeg decoder if loading the "native" one fails. +* Reset resampler/converter if it isn't necessary any more. + +--- akode/lib/player.cpp.orig 2009-02-20 15:04:49 +0200 ++++ akode/lib/player.cpp 2009-02-20 15:11:55 +0200 +@@ -345,8 +345,11 @@ bool Player::load() { + d->src = 0; + return false; + } +- if (!d->decoder_handler.load(format)) ++ if (!d->decoder_handler.load(format)) { + AKODE_DEBUG("Could not load " << format << "-decoder"); ++ if (!d->decoder_handler.load("ffmpeg")) ++ AKODE_DEBUG("Could not load ffmpeg-decoder"); ++ } + } + + if (!d->decoder_handler.isLoaded()) { +@@ -398,6 +401,9 @@ bool Player::load() { + if (d->sample_rate != first_frame.sample_rate) { + AKODE_DEBUG("Resampling to " << d->sample_rate); + d->resampler->setSampleRate(d->sample_rate); ++ } else { ++ delete d->resampler; ++ d->resampler = 0; + } + int out_channels = d->sink->audioConfiguration()->channels; + int in_channels = first_frame.channels; +@@ -419,6 +425,9 @@ bool Player::load() { + d->converter = new Converter(out_width); + else + d->converter->setSampleWidth(out_width); ++ } else { ++ delete d->converter; ++ d->converter = 0; + } + } + else diff --git a/audio/akode/patches/patch-ah b/audio/akode/patches/patch-ah new file mode 100644 index 00000000000..bd09d1a7f33 --- /dev/null +++ b/audio/akode/patches/patch-ah @@ -0,0 +1,29 @@ +$NetBSD: patch-ah,v 1.1.1.1 2009/02/26 18:00:34 hasso Exp $ + +--- akode/plugins/jack_sink/jack_sink.cpp.orig 2009-02-20 15:39:03 +0200 ++++ akode/plugins/jack_sink/jack_sink.cpp 2009-02-20 19:56:17 +0200 +@@ -84,7 +84,7 @@ static int process (jack_nframes_t nfram + m_data->pos++; + } + +- return n; ++ return 0; + } + + static void shutdown (void *arg) +@@ -147,13 +147,13 @@ int JACKSink::setAudioConfiguration(cons + + if (config->channel_config != MonoStereo ) return -1; + m_data->left_port = jack_port_register (m_data->client, "left", JACK_DEFAULT_AUDIO_TYPE, JackPortIsOutput, 0); +- if (jack_connect (m_data->client, jack_port_name (m_data->left_port), "alsa_pcm:playback_1")) { ++ if (jack_connect (m_data->client, jack_port_name (m_data->left_port), "system:playback_1")) { + m_data->error = true; + return -1; + } + if (config->channels > 1) { + m_data->right_port = jack_port_register (m_data->client, "right", JACK_DEFAULT_AUDIO_TYPE, JackPortIsOutput, 0); +- if (jack_connect (m_data->client, jack_port_name (m_data->right_port), "alsa_pcm:playback_2")) { ++ if (jack_connect (m_data->client, jack_port_name (m_data->right_port), "system:playback_2")) { + m_data->config.channels = 1; + res = 1; + } diff --git a/audio/akode/patches/patch-ai b/audio/akode/patches/patch-ai new file mode 100644 index 00000000000..ff25f7ddbd3 --- /dev/null +++ b/audio/akode/patches/patch-ai @@ -0,0 +1,22 @@ +$NetBSD: patch-ai,v 1.1.1.1 2009/02/26 18:00:34 hasso Exp $ + +--- akode/plugins/polyp_sink/polyp_sink.cpp.orig 2009-02-20 19:59:19 +0200 ++++ akode/plugins/polyp_sink/polyp_sink.cpp 2009-02-20 20:00:57 +0200 +@@ -25,7 +25,7 @@ + #elif defined(HAVE_INTTYPES_H) + #include + #endif +-#include ++#include + + #include "audioframe.h" + #include "audiobuffer.h" +@@ -59,7 +59,7 @@ PolypSink::PolypSink() + + bool PolypSink::open() { + int error = 0; +- m_data->server = pa_simple_new(0, "akode-client", PA_STREAM_PLAYBACK, 0, "", &m_data->sample_spec, 0, 255, &error ); ++ m_data->server = pa_simple_new(0, "akode-client", PA_STREAM_PLAYBACK, 0, "", &m_data->sample_spec, 0, 0, &error ); + if (!m_data->server || error != 0) { + m_data->error = true; + close(); -- cgit v1.2.3