summaryrefslogtreecommitdiff
path: root/community/deadbeef
diff options
context:
space:
mode:
Diffstat (limited to 'community/deadbeef')
-rw-r--r--community/deadbeef/PKGBUILD48
-rw-r--r--community/deadbeef/deadbeef-0.5.1-ffmpeg-AV_VERSION_INT.patch118
-rw-r--r--community/deadbeef/deadbeef-0.5.1-ffmpeg-version-check-fix.patch25
-rw-r--r--community/deadbeef/deadbeef.install19
4 files changed, 210 insertions, 0 deletions
diff --git a/community/deadbeef/PKGBUILD b/community/deadbeef/PKGBUILD
new file mode 100644
index 000000000..e47224768
--- /dev/null
+++ b/community/deadbeef/PKGBUILD
@@ -0,0 +1,48 @@
+# $Id: PKGBUILD 82328 2013-01-15 11:34:59Z allan $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Alexey Yakovenko <waker@users.sourceforge.net>
+
+pkgname=deadbeef
+pkgver=0.5.6
+pkgrel=2
+pkgdesc='An audio player for GNU/Linux based on GTK2.'
+arch=('i686' 'x86_64')
+url='http://deadbeef.sourceforge.net'
+license=('GPL2')
+depends=('gtk3' 'alsa-lib' 'hicolor-icon-theme' 'desktop-file-utils')
+makedepends=('libvorbis' 'libmad' 'flac' 'curl' 'imlib2' 'wavpack' 'libsndfile' 'libcdio' 'libcddb'
+ 'libx11' 'faad2' 'zlib' 'intltool' 'pkgconfig' 'libpulse' 'libzip' 'libsamplerate'
+ 'yasm')
+optdepends=('libsamplerate: for Resampler plugin'
+ 'libvorbis: for Ogg Vorbis playback'
+ 'libmad: for MP1/MP2/MP3 playback'
+ 'flac: for FLAC playback'
+ 'curl: for Last.fm scrobbler, SHOUTcast, Icecast, Podcast support'
+ 'imlib2: for artwork plugin'
+ 'wavpack: for WavPack playback'
+ 'libsndfile: for Wave playback'
+ 'libcdio: audio cd plugin'
+ 'libcddb: audio cd plugin'
+ 'faad2: for AAC/MP4 support'
+ 'dbus: for OSD notifications support'
+ 'pulseaudio: for PulseAudio output plugin'
+ 'libx11: for global hotkeys plugin'
+ 'zlib: for Audio Overload plugin'
+ 'libzip: for vfs_zip plugin')
+options=('!libtool')
+install='deadbeef.install'
+source=("http://downloads.sourceforge.net/project/${pkgname}/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('26b6036ca7e59c88267d3de4f42c4d01')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr --disable-ffmpeg --enable-gtk3
+ make
+}
+
+package () {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make prefix="${pkgdir}/usr" install
+}
diff --git a/community/deadbeef/deadbeef-0.5.1-ffmpeg-AV_VERSION_INT.patch b/community/deadbeef/deadbeef-0.5.1-ffmpeg-AV_VERSION_INT.patch
new file mode 100644
index 000000000..db1c79638
--- /dev/null
+++ b/community/deadbeef/deadbeef-0.5.1-ffmpeg-AV_VERSION_INT.patch
@@ -0,0 +1,118 @@
+From 2bb5828e58fa8c187377f8ba75f8eb73a53ed7ca Mon Sep 17 00:00:00 2001
+From: Igor Murzov <e-mail@date.by>
+Date: Mon, 4 Jul 2011 16:47:25 +0400
+Subject: [PATCH 1/2] ffmpeg: define fallback macro AV_VERSION_INT()
+
+For ffmpeg < 0.5. Copied from libavutil 0.5.
+
+ffmpeg: don't use deprecated CODEC_TYPE_AUDIO with new lavc
+
+fixes build with lavc 53.
+
+ffmpeg: fix erroneous version comparisons
+
+Comparing versions this way: (x.y < x1.y1) is obviously equivalent to
+(x < x1 || (x == x1 && y < y1)), not to (x <= x1 && y < y1).
+
+ffmpeg: use av_register_protocol2() if available
+
+fixes usage with ffmpeg-0.8
+---
+ plugins/ffmpeg/ffmpeg.c | 37 ++++++++++++++++++++++++++++++-------
+ 1 files changed, 30 insertions(+), 7 deletions(-)
+
+diff --git a/plugins/ffmpeg/ffmpeg.c b/plugins/ffmpeg/ffmpeg.c
+index cd7edf4..0cb9955 100644
+--- a/plugins/ffmpeg/ffmpeg.c
++++ b/plugins/ffmpeg/ffmpeg.c
+@@ -44,6 +44,10 @@
+ #define av_register_protocol register_protocol
+ #endif
+
++#ifndef AV_VERSION_INT
++#define AV_VERSION_INT(a, b, c) (a<<16 | b<<8 | c)
++#endif
++
+ #endif
+
+ //#define trace(...) { fprintf(stderr, __VA_ARGS__); }
+@@ -140,7 +144,12 @@ ffmpeg_init (DB_fileinfo_t *_info, DB_playItem_t *it) {
+ for (i = 0; i < info->fctx->nb_streams; i++)
+ {
+ info->ctx = info->fctx->streams[i]->codec;
+- if (info->ctx->codec_type == CODEC_TYPE_AUDIO)
++ if (info->ctx->codec_type ==
++#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(52, 64, 0)
++ AVMEDIA_TYPE_AUDIO)
++#else
++ CODEC_TYPE_AUDIO)
++#endif
+ {
+ info->codec = avcodec_find_decoder (info->ctx->codec_id);
+ if (info->codec != NULL) {
+@@ -279,10 +288,10 @@ ffmpeg_read (DB_fileinfo_t *_info, char *bytes, int size) {
+ int out_size = AVCODEC_MAX_AUDIO_FRAME_SIZE;
+ int len;
+ //trace ("in: out_size=%d(%d), size=%d\n", out_size, AVCODEC_MAX_AUDIO_FRAME_SIZE, size);
+-#if (LIBAVCODEC_VERSION_MAJOR <= 52) && (LIBAVCODEC_VERSION_MINOR <= 25)
+- len = avcodec_decode_audio2 (info->ctx, (int16_t *)info->buffer, &out_size, info->pkt.data, info->pkt.size);
+-#else
++#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(52,25,0)
+ len = avcodec_decode_audio3 (info->ctx, (int16_t *)info->buffer, &out_size, &info->pkt);
++#else
++ len = avcodec_decode_audio2 (info->ctx, (int16_t *)info->buffer, &out_size, info->pkt.data, info->pkt.size);
+ #endif
+ trace ("out: out_size=%d, len=%d\n", out_size, len);
+ if (len <= 0) {
+@@ -418,7 +427,7 @@ static const char *map[] = {
+
+ static int
+ ffmpeg_read_metadata_internal (DB_playItem_t *it, AVFormatContext *fctx) {
+-#if LIBAVFORMAT_VERSION_MAJOR <= 52 && LIBAVFORMAT_VERSION_MINOR < 43
++#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(52,43,0)
+ if (!strlen (fctx->title)) {
+ // title is empty, this call will set track title to filename without extension
+ deadbeef->pl_add_meta (it, "title", NULL);
+@@ -490,7 +499,12 @@ ffmpeg_insert (ddb_playlist_t *plt, DB_playItem_t *after, const char *fname) {
+ for (i = 0; i < fctx->nb_streams; i++)
+ {
+ ctx = fctx->streams[i]->codec;
+- if (ctx->codec_type == CODEC_TYPE_AUDIO)
++ if (ctx->codec_type ==
++#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(52, 64, 0)
++ AVMEDIA_TYPE_AUDIO)
++#else
++ CODEC_TYPE_AUDIO)
++#endif
+ {
+ codec = avcodec_find_decoder(ctx->codec_id);
+ if (codec != NULL && !strcasecmp (codec->name, "alac")) { // only open alac streams
+@@ -704,7 +718,11 @@ ffmpeg_start (void) {
+ ffmpeg_init_exts ();
+ avcodec_init ();
+ av_register_all ();
++#if LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(52, 64, 0)
++ av_register_protocol2 (&vfswrapper, sizeof(vfswrapper));
++#else
+ av_register_protocol (&vfswrapper);
++#endif
+ return 0;
+ }
+
+@@ -745,7 +763,12 @@ ffmpeg_read_metadata (DB_playItem_t *it) {
+ for (i = 0; i < fctx->nb_streams; i++)
+ {
+ ctx = fctx->streams[i]->codec;
+- if (ctx->codec_type == CODEC_TYPE_AUDIO)
++ if (ctx->codec_type ==
++#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(52, 64, 0)
++ AVMEDIA_TYPE_AUDIO)
++#else
++ CODEC_TYPE_AUDIO)
++#endif
+ {
+ codec = avcodec_find_decoder(ctx->codec_id);
+ if (codec != NULL)
+--
+1.7.8.4
+
diff --git a/community/deadbeef/deadbeef-0.5.1-ffmpeg-version-check-fix.patch b/community/deadbeef/deadbeef-0.5.1-ffmpeg-version-check-fix.patch
new file mode 100644
index 000000000..af8c282c0
--- /dev/null
+++ b/community/deadbeef/deadbeef-0.5.1-ffmpeg-version-check-fix.patch
@@ -0,0 +1,25 @@
+From 9cbd09b81028679a507f751c206e8f6769fd450c Mon Sep 17 00:00:00 2001
+From: Igor Murzov <e-mail@date.by>
+Date: Thu, 7 Jul 2011 22:31:44 +0400
+Subject: [PATCH 2/2] ffmpeg: version check fix
+
+---
+ plugins/ffmpeg/ffmpeg.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/plugins/ffmpeg/ffmpeg.c b/plugins/ffmpeg/ffmpeg.c
+index 0cb9955..37c7e80 100644
+--- a/plugins/ffmpeg/ffmpeg.c
++++ b/plugins/ffmpeg/ffmpeg.c
+@@ -718,7 +718,7 @@ ffmpeg_start (void) {
+ ffmpeg_init_exts ();
+ avcodec_init ();
+ av_register_all ();
+-#if LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(52, 64, 0)
++#if LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(52, 69, 0)
+ av_register_protocol2 (&vfswrapper, sizeof(vfswrapper));
+ #else
+ av_register_protocol (&vfswrapper);
+--
+1.7.8.4
+
diff --git a/community/deadbeef/deadbeef.install b/community/deadbeef/deadbeef.install
new file mode 100644
index 000000000..fcdbf15fb
--- /dev/null
+++ b/community/deadbeef/deadbeef.install
@@ -0,0 +1,19 @@
+pkgname=deadbeef
+
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+
+ cat <<EOF
+==> ffmpeg support was disabled in this deadbeef release due to
+==> incompatibilities with ffmpeg 0.11. It might be re-introduced soon.
+EOF
+}
+
+post_remove() {
+ post_install
+}