summaryrefslogtreecommitdiffstats
path: root/media-plugins/xmms-wma
diff options
context:
space:
mode:
Diffstat (limited to 'media-plugins/xmms-wma')
-rw-r--r--media-plugins/xmms-wma/Manifest10
-rw-r--r--media-plugins/xmms-wma/files/xmms-wma-ds-ffmpeg.patch193
-rw-r--r--media-plugins/xmms-wma/files/xmms-wma-ds-ffmpeg0.10.patch411
-rw-r--r--media-plugins/xmms-wma/files/xmms-wma-ds-ffmpeg20081014.patch209
-rw-r--r--media-plugins/xmms-wma/files/xmms-wma-ds-fifo_init.patch32
-rw-r--r--media-plugins/xmms-wma/files/xmms-wma-ds-rcc.patch98
-rw-r--r--media-plugins/xmms-wma/xmms-wma-1.0.5-r1.ebuild39
-rw-r--r--media-plugins/xmms-wma/xmms-wma-1.0.5-r2.ebuild39
-rw-r--r--media-plugins/xmms-wma/xmms-wma-1.0.5-r3.ebuild40
-rw-r--r--media-plugins/xmms-wma/xmms-wma-1.0.5-r4.ebuild37
10 files changed, 1108 insertions, 0 deletions
diff --git a/media-plugins/xmms-wma/Manifest b/media-plugins/xmms-wma/Manifest
new file mode 100644
index 0000000..838690b
--- /dev/null
+++ b/media-plugins/xmms-wma/Manifest
@@ -0,0 +1,10 @@
+AUX xmms-wma-ds-ffmpeg.patch 5513 SHA256 55c237964f680bcfb5fe3b3f8a05410162328dfc77ba42af184745b813dffcf8 SHA512 f788b87ae76bc3262bba494b8def1e46e6fa094e221502ec32dd0e257629534f754c9b360778a7e1eb46e76225f18a363c0082ef65d28dd6af3846b1d1302db1 WHIRLPOOL 863e01d96fcbc733daa535ba5e6ba8309a6aeb55e9a363dfd3697d9592884ad8bd302bbb24bdfbd2e23f1c2cdffada06430e95d84df7be817d8891e9768f9141
+AUX xmms-wma-ds-ffmpeg0.10.patch 11445 SHA256 52434b819de3c3a521f48c8debe043e0d36aa5068c8fd4a02f94942e2d6eed32 SHA512 e2ced39d21e3efaea1de25c4c2430d686c9e6e0af21ad5dd4be04d4b38298bbae33155e69fbbc1304b6e01d4fa72cc1da577161798d13782f2ce564e5983a87c WHIRLPOOL 4b78156916d0680c5777a70bdf3a1164a6d5b3506272e2330a92f70e728c0e0311da1018d104b0426b4a887c2a024a6b759af8ed4b9b74bbbc1038828d4a3ae9
+AUX xmms-wma-ds-ffmpeg20081014.patch 5967 SHA256 b49b2147aebc510836260f1c8ef2f6aebe4312b1de380fd5bca82ff860ec7eb7 SHA512 c694c2ee179dbf9f52319ce480ed8dd02d9db87080e5f4dcde9cbac297ab672f91c3f1361a5c0d1b02c23c7c9ec150316e249bc78860f0a5859dbbe52e36a18e WHIRLPOOL 7416211e79eff19703223d4aa94875aa81bd5468e3e1b1155507d6abaa88ccf011d008bca5e92de8895071ecf23b15c7d51395ba05177875b0e3dcbb9a1dd887
+AUX xmms-wma-ds-fifo_init.patch 1041 SHA256 18deaa25c857559360a1c8b79015d56ea5ad5bfaf9670285ea108af78fd77d09 SHA512 1f877f72ee25ca3f29b0bbbb3f2edb7301341f0ecfce8ace9c921214a27118869e5971f65f9ecabaa0a6e7af1360a632b09378b7a076b7a9b53b110412121b8a WHIRLPOOL 683426d914eab0be18ce658b7ff3f53454eb1b6ece9ffe62d6d2bb8b7dad28f8c290d2db54574814af6a60fcf3a4121e0fe9499fe83e865de723192055730100
+AUX xmms-wma-ds-rcc.patch 2772 SHA256 e5cf2f4dd6b3353378c63b7176d13444bb42183f234b87d2a18d81e559b13e38 SHA512 bba9c02b7632d5977606ae069c2b039032342e81efe242c71420e55c3875b4af55295ff370b25cb87ca22efcbe0f260316b776647c8b21dbd897c39688d2ab19 WHIRLPOOL b7ada528a7da6182764d56a71e1978d8f4d5073681bbf3c7fb6562fd051e619c28c8288095e256095a6a2997b108f3e57b93058d8ae268c70131a2b571ad2f7f
+DIST xmms-wma-1.0.5.tar.bz2 146687 SHA256 61ab13363e52707b02b422589bfdbdf49c08ad398c2237c2000c8a4c9181b183 SHA512 9a1c649e0c36ecd6ff1bdb4462c0a8609785cc92355da642933993520814cd5868443e77aa06fbdb84161166864649ca77507a79428ac1c613f1620dff264f99 WHIRLPOOL d5c6eceee0d19bdd84b4d93526544afd992c9e425e2f9e395cb517015a75f98718144bedad7c32fd83f99f33ec15fe79932919a225f3df5c626c6708323b1cbd
+EBUILD xmms-wma-1.0.5-r1.ebuild 891 SHA256 8c7176da3a4b9d97e1c87c865d788fba4ac7cb4a3e92bdf51f4491171d64f059 SHA512 41a3965694e3ded80b9ce443d81e1983a6f3c2aaf316810922627c649543777d21fac8ca17995b52ba0bd920d56861187213a7c94eb1d73bb9f3b360c67013f1 WHIRLPOOL b49dd6632c4718ca7ec26f500b01a9072b3b837dd8b770301bc9c4cd96c90e87ba236c078c643320caae48a641ff95124c1b60dfbf0a5ddf27c8431c3e72b5c8
+EBUILD xmms-wma-1.0.5-r2.ebuild 901 SHA256 beb4b9efef5d26cea15b719641dfad5d73bfaea1cb7f1b803f36818a61d9f117 SHA512 62607136782ccc149b7f528f632e34cc5a56a9e4d3c39efd516347ed1c9a1b1bdd0524920bcd51659c215d342bdbb19760255d6d87fa2bef1cbb6604143d9fa6 WHIRLPOOL 14fc2db33bdf47fcb0504f6b654bee21d4fb7cd3270c489206a0d9542476d475177e59b677ddd0eb67c670af750e50dc8e5bad99f285907d522bf3707a5da061
+EBUILD xmms-wma-1.0.5-r3.ebuild 953 SHA256 c38e4539311b0701d45c4e92e6cb71831b351e6a7fe4be106ef949a96e2e8639 SHA512 1ad9ae94779248c2bf4841d25517b7a21b4d54e3c609a558bf0aaf4cad1c8ddbd6aeabab076181ab8e4cef17d4ec17c7dde67513c07e6ce92b21776a93917aff WHIRLPOOL 90e9e614454d5e9d3b9825847e4b36612d3e9d38a62ced263a7ed60bbc107190dc4cc48b1185b8640965fe17ac35804b91a4feb19488f485ef79cd7b8d4b42fa
+EBUILD xmms-wma-1.0.5-r4.ebuild 817 SHA256 26b6870653e0bc4c7e3891f7853c573d1f7b1b0e007c6276dde6829760b2fa0b SHA512 ba0ec81755d23e5f5230b5f3e6a557f3f5bba9d15d34dcf47192f17ecf0b922eab6262c0e45fc9e0f960a065b1b7a9a090dbf4f586ea69f2b83e3e44080166d7 WHIRLPOOL 33f3b4440384d058bb0a60c320b4beed782e0605118489da38390f0406df365e8e3a511973e1ffd82dca167f013b351ac5804bf4c104c1e90a641b45f440f201
diff --git a/media-plugins/xmms-wma/files/xmms-wma-ds-ffmpeg.patch b/media-plugins/xmms-wma/files/xmms-wma-ds-ffmpeg.patch
new file mode 100644
index 0000000..3ad7ced
--- /dev/null
+++ b/media-plugins/xmms-wma/files/xmms-wma-ds-ffmpeg.patch
@@ -0,0 +1,193 @@
+diff -dPNur xmms-wma-1.0.5/Makefile xmms-wma-1.0.5-new/Makefile
+--- xmms-wma-1.0.5/Makefile 2004-03-03 15:47:58.000000000 +0100
++++ xmms-wma-1.0.5-new/Makefile 2007-04-21 22:51:51.000000000 +0200
+@@ -11,7 +11,7 @@
+ export DEPS := $(SOURCES:%.c=$(DEPDIR)/%.d)
+
+ all:
+- @cd ffmpeg-strip-wma; make; cd ..
++ #@cd ffmpeg-strip-wma; make; cd ..
+ @$(MAKE) --no-print-directory -f Makefile.inc
+ @strip $(PLUGIN_FILE)
+ @echo "The plug-in has been compiled. Run one of the following:"
+@@ -40,5 +40,5 @@
+ @echo "The plug-in has been uninstalled."
+
+ clean:
+- cd ffmpeg-strip-wma; make clean; cd ..
++ #cd ffmpeg-strip-wma; make clean; cd ..
+ rm -f $(OBJECTS) $(DEPS)
+diff -dPNur xmms-wma-1.0.5/Makefile.inc xmms-wma-1.0.5-new/Makefile.inc
+--- xmms-wma-1.0.5/Makefile.inc 2005-09-05 14:48:20.000000000 +0200
++++ xmms-wma-1.0.5-new/Makefile.inc 2007-04-21 22:51:51.000000000 +0200
+@@ -1,16 +1,18 @@
+ CC := gcc
+-CFLAGS := -O2 -ffast-math -fomit-frame-pointer -fPIC
+-#CFLAGS := -Wall -g -O3
+-CFLAGS += -DHAVE_AV_CONFIG_H -I.. -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE
+-CFLAGS += -I ffmpeg-strip-wma
+-CFLAGS += `xmms-config --cflags`
+-LIBS := `xmms-config --libs` -L ffmpeg-strip-wma -lffwma
++MYCFLAGS := $(CFLAGS) -fPIC
++#MYCFLAGS := -Wall -g -O3
++MYCFLAGS += -DHAVE_AV_CONFIG_H -I.. -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -fPIC
++#MYCFLAGS += -I ffmpeg-strip-wma
++MYCFLAGS += `xmms-config --cflags`
++MYCFLAGS += -I/usr/include/ffmpeg
++#LIBS := `xmms-config --libs` -L ffmpeg-strip-wma -lffwma
++LIBS := `xmms-config --libs` -lavcodec -lavformat
+
+ $(PLUGIN_FILE): $(OBJECTS)
+ $(CC) -o $@ $^ $(LIBS) -shared
+
+ $(OBJDIR)/%.o: %.c
+- $(CC) -c -o $@ $(CFLAGS) $<
++ $(CC) -c -o $@ $(MYCFLAGS) $<
+
+ $(DEPDIR)/%.d: %.c
+ $(CC) -MM $(CFLAGS) $< | sed "s/^$*\.o:/$(OBJDIR)\/$*\.o $(DEPDIR)\/$*\.d:/" > $@
+diff -dPNur xmms-wma-1.0.5/xmms-wma.c xmms-wma-1.0.5-new/xmms-wma.c
+--- xmms-wma-1.0.5/xmms-wma.c 2005-09-05 22:19:00.000000000 +0200
++++ xmms-wma-1.0.5-new/xmms-wma.c 2007-04-22 00:47:20.000000000 +0200
+@@ -42,8 +42,9 @@
+ #undef HAVE_AV_CONFIG_H
+ #endif
+
+-#include "avcodec.h"
+-#include "avformat.h"
++#include "ffmpeg/avcodec.h"
++#include "ffmpeg/avformat.h"
++#include "ffmpeg/fifo.h"
+ #include "iir.h"
+
+ #define ABOUT_TXT "Copyright (C) 2004,2005 Mokrushin I.V. aka McMCC (mcmcc@mail.ru).\n \
+@@ -190,8 +191,6 @@
+
+ static void wma_init(void)
+ {
+- avcodec_init();
+- avcodec_register_all();
+ av_register_all();
+ init_iir();
+ }
+@@ -200,9 +199,14 @@
+ {
+ gchar *ext;
+ ext = strrchr(filename, '.');
+- if(ext)
++ if(ext) {
+ if(!strcasecmp(ext, ".wma"))
+ return 1;
++ if(!strcasecmp(ext, ".m4a"))
++ return 1;
++ if(!strcasecmp(ext, ".aac"))
++ return 1;
++ }
+ return 0;
+ }
+
+@@ -337,20 +341,21 @@
+ return;
+ #endif
+
+- av_find_stream_info(in);
+- (*len_real) = get_song_time(in);
+- (*title_real) = get_song_title(in, filename);
++ if (!av_find_stream_info(in)) {
++ (*len_real) = get_song_time(in);
++ (*title_real) = get_song_title(in, filename);
++ }
+ av_close_input_file(in);
+ }
+
+ static void wma_playbuff(int out_size)
+ {
+- FifoBuffer f;
++ AVFifoBuffer f;
+ int sst_buff;
+
+- fifo_init(&f, out_size*2);
+- fifo_write(&f, wma_outbuf, out_size, &f.wptr);
+- while(!fifo_read(&f, wma_s_outbuf, wma_st_buff, &f.rptr) && wma_decode)
++ av_fifo_init(&f, out_size*2);
++ av_fifo_write(&f, wma_outbuf, out_size);
++ while(!av_fifo_read(&f, wma_s_outbuf, wma_st_buff) && wma_decode)
+ {
+ if(wma_eq_on)
+ sst_buff = iir((gpointer)&wma_s_outbuf, wma_st_buff);
+@@ -364,7 +369,7 @@
+ wma_ip.output->write_audio((short *)wma_s_outbuf, sst_buff);
+ memset(wma_s_outbuf, 0, sst_buff);
+ }
+- fifo_free(&f);
++ av_fifo_free(&f);
+ return;
+ }
+
+@@ -373,18 +378,29 @@
+ uint8_t *inbuf_ptr;
+ int out_size, size, len;
+ AVPacket pkt;
++ int64_t seek_target;
+
+ pthread_mutex_lock(&wma_mutex);
+ while(wma_decode){
+-
+ if(wma_seekpos != -1)
+ {
+- av_seek_frame(ic, wma_idx, wma_seekpos * 1000000LL);
++ if (wma_idx>=0) {
++ seek_target = av_rescale_q(wma_seekpos * 1000000LL, AV_TIME_BASE_Q, ic->streams[wma_idx]->time_base);
++ } else {
++ seek_target = wma_seekpos * 1000000LL;
++ }
++ av_seek_frame(ic, wma_idx, seek_target, AVSEEK_FLAG_BACKWARD);
+ wma_ip.output->flush(wma_seekpos * 1000);
+ wma_seekpos = -1;
+ }
+
+- if(av_read_frame(ic, &pkt) < 0) break;
++ if(av_read_frame(ic, &pkt) < 0) {
++ /*if (url_ferror(&ic->pb) == 0) {
++ usleep(100000);
++ continue;
++ }*/
++ break;
++ }
+
+ size = pkt.size;
+ inbuf_ptr = pkt.data;
+@@ -427,10 +443,13 @@
+ #endif
+
+ for(wma_idx = 0; wma_idx < ic->nb_streams; wma_idx++) {
+- c = &ic->streams[wma_idx]->codec;
++ c = ic->streams[wma_idx]->codec;
+ if(c->codec_type == CODEC_TYPE_AUDIO) break;
+ }
+
++ if(!c || c->codec_type != CODEC_TYPE_AUDIO)
++ return;
++
+ av_find_stream_info(ic);
+
+ codec = avcodec_find_decoder(c->codec_id);
+@@ -459,7 +478,8 @@
+ {
+ wma_decode = 0;
+ if(wma_pause) wma_do_pause(0);
+- pthread_join(wma_decode_thread, NULL);
++ if(wma_decode_thread)
++ pthread_join(wma_decode_thread, NULL);
+ wma_ip.output->close_audio();
+ }
+
+@@ -482,7 +502,7 @@
+ #endif
+
+ for(i = 0; i < in->nb_streams; i++) {
+- s = &in->streams[i]->codec;
++ s = in->streams[i]->codec;
+ if(s->codec_type == CODEC_TYPE_AUDIO) break;
+ }
+
diff --git a/media-plugins/xmms-wma/files/xmms-wma-ds-ffmpeg0.10.patch b/media-plugins/xmms-wma/files/xmms-wma-ds-ffmpeg0.10.patch
new file mode 100644
index 0000000..922eb9a
--- /dev/null
+++ b/media-plugins/xmms-wma/files/xmms-wma-ds-ffmpeg0.10.patch
@@ -0,0 +1,411 @@
+diff -dPNur xmms-wma-1.0.5/Makefile xmms-wma-1.0.5-ds/Makefile
+--- xmms-wma-1.0.5/Makefile 2004-03-03 15:47:58.000000000 +0100
++++ xmms-wma-1.0.5-ds/Makefile 2012-11-17 08:49:25.000000000 +0100
+@@ -11,7 +11,7 @@
+ export DEPS := $(SOURCES:%.c=$(DEPDIR)/%.d)
+
+ all:
+- @cd ffmpeg-strip-wma; make; cd ..
++ #@cd ffmpeg-strip-wma; make; cd ..
+ @$(MAKE) --no-print-directory -f Makefile.inc
+ @strip $(PLUGIN_FILE)
+ @echo "The plug-in has been compiled. Run one of the following:"
+@@ -40,5 +40,5 @@
+ @echo "The plug-in has been uninstalled."
+
+ clean:
+- cd ffmpeg-strip-wma; make clean; cd ..
++ #cd ffmpeg-strip-wma; make clean; cd ..
+ rm -f $(OBJECTS) $(DEPS)
+diff -dPNur xmms-wma-1.0.5/Makefile.inc xmms-wma-1.0.5-ds/Makefile.inc
+--- xmms-wma-1.0.5/Makefile.inc 2005-09-05 14:48:20.000000000 +0200
++++ xmms-wma-1.0.5-ds/Makefile.inc 2012-11-17 08:49:25.000000000 +0100
+@@ -1,16 +1,18 @@
+ CC := gcc
+-CFLAGS := -O2 -ffast-math -fomit-frame-pointer -fPIC
+-#CFLAGS := -Wall -g -O3
+-CFLAGS += -DHAVE_AV_CONFIG_H -I.. -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE
+-CFLAGS += -I ffmpeg-strip-wma
+-CFLAGS += `xmms-config --cflags`
+-LIBS := `xmms-config --libs` -L ffmpeg-strip-wma -lffwma
++MYCFLAGS := $(CFLAGS) -fPIC
++#MYCFLAGS := -Wall -g -O3
++MYCFLAGS += -DHAVE_AV_CONFIG_H -I.. -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -fPIC
++#MYCFLAGS += -I ffmpeg-strip-wma
++MYCFLAGS += `xmms-config --cflags`
++MYCFLAGS += -I/usr/include/ffmpeg
++#LIBS := `xmms-config --libs` -L ffmpeg-strip-wma -lffwma
++LIBS := `xmms-config --libs` -lavcodec -lavformat
+
+ $(PLUGIN_FILE): $(OBJECTS)
+ $(CC) -o $@ $^ $(LIBS) -shared
+
+ $(OBJDIR)/%.o: %.c
+- $(CC) -c -o $@ $(CFLAGS) $<
++ $(CC) -c -o $@ $(MYCFLAGS) $<
+
+ $(DEPDIR)/%.d: %.c
+ $(CC) -MM $(CFLAGS) $< | sed "s/^$*\.o:/$(OBJDIR)\/$*\.o $(DEPDIR)\/$*\.d:/" > $@
+diff -dPNur xmms-wma-1.0.5/xmms-wma.c xmms-wma-1.0.5-ds/xmms-wma.c
+--- xmms-wma-1.0.5/xmms-wma.c 2005-09-05 22:19:00.000000000 +0200
++++ xmms-wma-1.0.5-ds/xmms-wma.c 2012-11-17 08:40:11.000000000 +0100
+@@ -36,14 +36,16 @@
+ #include <xmms/configfile.h>
+ #include <xmms/util.h>
+ #include <xmms/titlestring.h>
++#include <libxmms/rcc.h>
+ #endif
+
+ #ifdef HAVE_AV_CONFIG_H
+ #undef HAVE_AV_CONFIG_H
+ #endif
+
+-#include "avcodec.h"
+-#include "avformat.h"
++#include "libavcodec/avcodec.h"
++#include "libavformat/avformat.h"
++#include "libavutil/fifo.h"
+ #include "iir.h"
+
+ #define ABOUT_TXT "Copyright (C) 2004,2005 Mokrushin I.V. aka McMCC (mcmcc@mail.ru).\n \
+@@ -190,8 +192,6 @@
+
+ static void wma_init(void)
+ {
+- avcodec_init();
+- avcodec_register_all();
+ av_register_all();
+ init_iir();
+ }
+@@ -200,9 +200,14 @@
+ {
+ gchar *ext;
+ ext = strrchr(filename, '.');
+- if(ext)
++ if(ext) {
+ if(!strcasecmp(ext, ".wma"))
+ return 1;
++ if(!strcasecmp(ext, ".m4a"))
++ return 1;
++ if(!strcasecmp(ext, ".aac"))
++ return 1;
++ }
+ return 0;
+ }
+
+@@ -262,12 +267,24 @@
+ return splitname;
+ }
+
+-static char* w_getstr(char* str)
++static char* w_getstr(AVFormatContext *in, char* str)
+ {
+- if(str && strlen(str) > 0) return str;
++ AVDictionaryEntry *entry = av_dict_get(in->metadata, str, NULL, 0);
++ if (!entry) return NULL;
++
++
++ if(entry && strlen(entry->value) > 0) {
++ return entry->value;
++ }
+ return NULL;
+ }
+
++static int w_getnum(AVFormatContext *in, char* str) {
++ char *res = w_getstr(in, str);
++ if (res) return atoi(res);
++ return 0;
++}
++
+ static gchar *get_song_title(AVFormatContext *in, gchar * filename)
+ {
+ gchar *ret = NULL;
+@@ -279,17 +296,14 @@
+ XMMS_NEW_TITLEINPUT(input);
+ #endif
+
+- if((in->title[0] != '\0') || (in->author[0] != '\0') || (in->album[0] != '\0') ||
+- (in->comment[0] != '\0') || (in->genre[0] != '\0') || (in->year != 0) || (in->track != 0))
+- {
+- input->performer = w_getstr(in->author);
+- input->album_name = w_getstr(in->album);
+- input->track_name = w_getstr(in->title);
+- input->year = in->year;
+- input->track_number = in->track;
+- input->genre = w_getstr(in->genre);
+- input->comment = w_getstr(in->comment);
+- }
++ input->performer = w_getstr(in, "artist");
++ input->album_name = w_getstr(in, "album");
++ input->track_name = w_getstr(in, "title");
++ input->year = 0;//in->year;
++ input->track_number = w_getnum(in, "track");
++ input->genre = w_getstr(in, "genre");
++ input->comment = w_getstr(in, "comment");
++
+ #ifdef BMP
+ input->file_name = g_path_get_basename(filename);
+ input->file_path = g_path_get_dirname(filename);
+@@ -298,7 +312,7 @@
+ input->file_path = filename;
+ #endif
+ input->file_ext = extname(filename);
+- ret = xmms_get_titlestring(xmms_get_gentitle_format(), input);
++ ret = xmms_charset_get_titlestring(xmms_get_gentitle_format(), input, XMMS_RCC_UTF8);
+ if(input) g_free(input);
+
+ if(!ret)
+@@ -337,21 +351,23 @@
+ return;
+ #endif
+
+- av_find_stream_info(in);
+- (*len_real) = get_song_time(in);
+- (*title_real) = get_song_title(in, filename);
++ if (!av_find_stream_info(in)) {
++ (*len_real) = get_song_time(in);
++ (*title_real) = get_song_title(in, filename);
++ }
+ av_close_input_file(in);
+ }
+-
+ static void wma_playbuff(int out_size)
+ {
+- FifoBuffer f;
++ AVFifoBuffer *f;
+ int sst_buff;
+-
+- fifo_init(&f, out_size*2);
+- fifo_write(&f, wma_outbuf, out_size, &f.wptr);
+- while(!fifo_read(&f, wma_s_outbuf, wma_st_buff, &f.rptr) && wma_decode)
+- {
++
++ f = av_fifo_alloc(out_size*2);
++ av_fifo_generic_write(f, wma_outbuf, out_size, NULL);
++
++ while ((av_fifo_size(f) > 0) && wma_decode) {
++ if (av_fifo_generic_read(f, wma_s_outbuf, wma_st_buff, NULL)) break;
++
+ if(wma_eq_on)
+ sst_buff = iir((gpointer)&wma_s_outbuf, wma_st_buff);
+ else
+@@ -364,7 +380,7 @@
+ wma_ip.output->write_audio((short *)wma_s_outbuf, sst_buff);
+ memset(wma_s_outbuf, 0, sst_buff);
+ }
+- fifo_free(&f);
++ av_fifo_free(f);
+ return;
+ }
+
+@@ -373,18 +389,29 @@
+ uint8_t *inbuf_ptr;
+ int out_size, size, len;
+ AVPacket pkt;
++ int64_t seek_target;
+
+ pthread_mutex_lock(&wma_mutex);
+ while(wma_decode){
+-
+ if(wma_seekpos != -1)
+ {
+- av_seek_frame(ic, wma_idx, wma_seekpos * 1000000LL);
++ if (wma_idx>=0) {
++ seek_target = av_rescale_q(wma_seekpos * 1000000LL, AV_TIME_BASE_Q, ic->streams[wma_idx]->time_base);
++ } else {
++ seek_target = wma_seekpos * 1000000LL;
++ }
++ av_seek_frame(ic, wma_idx, seek_target, AVSEEK_FLAG_BACKWARD);
+ wma_ip.output->flush(wma_seekpos * 1000);
+ wma_seekpos = -1;
+ }
+
+- if(av_read_frame(ic, &pkt) < 0) break;
++ if(av_read_frame(ic, &pkt) < 0) {
++ /*if (url_ferror(&ic->pb) == 0) {
++ usleep(100000);
++ continue;
++ }*/
++ break;
++ }
+
+ size = pkt.size;
+ inbuf_ptr = pkt.data;
+@@ -392,8 +419,9 @@
+ if(size == 0) break;
+
+ while(size > 0){
+- len = avcodec_decode_audio(c, (short *)wma_outbuf, &out_size,
+- inbuf_ptr, size);
++ out_size = AVCODEC_MAX_AUDIO_FRAME_SIZE;
++
++ len = avcodec_decode_audio3(c, (short *)wma_outbuf, &out_size, &pkt);
+ if(len < 0) break;
+
+ if(out_size <= 0) continue;
+@@ -427,10 +455,13 @@
+ #endif
+
+ for(wma_idx = 0; wma_idx < ic->nb_streams; wma_idx++) {
+- c = &ic->streams[wma_idx]->codec;
+- if(c->codec_type == CODEC_TYPE_AUDIO) break;
++ c = ic->streams[wma_idx]->codec;
++ if(c->codec_type == AVMEDIA_TYPE_AUDIO) break;
+ }
+
++ if(!c || c->codec_type != AVMEDIA_TYPE_AUDIO)
++ return;
++
+ av_find_stream_info(ic);
+
+ codec = avcodec_find_decoder(c->codec_id);
+@@ -459,7 +490,8 @@
+ {
+ wma_decode = 0;
+ if(wma_pause) wma_do_pause(0);
+- pthread_join(wma_decode_thread, NULL);
++ if(wma_decode_thread)
++ pthread_join(wma_decode_thread, NULL);
+ wma_ip.output->close_audio();
+ }
+
+@@ -468,6 +500,8 @@
+ char *title;
+ char *tmp;
+ char *message;
++ char *recoded;
++ char *msg;
+ AVFormatContext *in = NULL;
+ AVCodecContext *s = NULL;
+ AVCodec *codec;
+@@ -482,8 +516,8 @@
+ #endif
+
+ for(i = 0; i < in->nb_streams; i++) {
+- s = &in->streams[i]->codec;
+- if(s->codec_type == CODEC_TYPE_AUDIO) break;
++ s = in->streams[i]->codec;
++ if(s->codec_type == AVMEDIA_TYPE_AUDIO) break;
+ }
+
+ av_find_stream_info(in);
+@@ -498,6 +532,11 @@
+
+ strcpy(message, "\n\n\n");
+ strcat(message, "File Name: ");
++ recoded = xmms_rcc_recode(XMMS_RCC_FS, XMMS_RCC_OUT, slashkill(filename));
++ if (recoded) {
++ strcat(message, recoded);
++ free(recoded);
++ } else
+ strcat(message, slashkill(filename));
+ strcat(message, "\n\n");
+ strcat(message, "Audio Info:\n");
+@@ -535,56 +574,85 @@
+ }
+ strcat(message, "\n");
+ strcat(message, "Text Info:\n");
+- if (in->title[0] != '\0')
++ msg = w_getstr(in, "title");
++ if (msg)
+ {
+ strcat(message, "Title: ");
+- strcat(message, in->title);
++ recoded = xmms_rcc_recode(XMMS_RCC_UTF8, XMMS_RCC_OUT, msg);
++ if (recoded) {
++ strcat(message, recoded);
++ free(recoded);
++ } else
++ strcat(message, msg);
+ strcat(message, "\n");
+- }
+- if (in->author[0] != '\0')
++ }
++ msg = w_getstr(in, "artist");
++ if (msg)
+ {
+ strcat(message, "Author: ");
+- strcat(message, in->author);
++ recoded = xmms_rcc_recode(XMMS_RCC_UTF8, XMMS_RCC_OUT, msg);
++ if (recoded) {
++ strcat(message, recoded);
++ free(recoded);
++ } else
++ strcat(message, msg);
+ strcat(message, "\n");
+ }
+- if (in->album[0] != '\0')
++ msg = w_getstr(in, "album");
++ if (msg)
+ {
+ strcat(message, "Album: ");
+- strcat(message, in->album);
++ recoded = xmms_rcc_recode(XMMS_RCC_UTF8, XMMS_RCC_OUT, msg);
++ if (recoded) {
++ strcat(message, recoded);
++ free(recoded);
++ } else
++ strcat(message, msg);
+ strcat(message, "\n");
+ }
+- if (in->year != 0)
++ msg = w_getstr(in, "date");
++ if (msg)
+ {
+- strcat(message, "Year: ");
+- sprintf(tmp, "%d", in->year);
+- strcat(message, tmp);
+- memset(tmp, 0, 256);
++ strcat(message, "Date: ");
++ strcat(message, msg);
+ strcat(message, "\n");
+ }
+- if (in->track != 0)
++ msg = w_getstr(in, "track");
++ if (msg)
+ {
+ strcat(message, "Track: ");
+- sprintf(tmp, "%d", in->track);
+- strcat(message, tmp);
+- memset(tmp, 0, 256);
++ strcat(message, msg);
+ strcat(message, "\n");
+ }
+- if (in->genre[0] != '\0')
++ msg = w_getstr(in, "genre");
++ if (msg)
+ {
+ strcat(message, "Genre: ");
+- strcat(message, in->genre);
++ strcat(message, msg);
+ strcat(message, "\n");
+ }
+- if (in->comment[0] != '\0')
++ msg = w_getstr(in, "comment");
++ if (msg)
+ {
+ strcat(message, "Comments: ");
+- strcat(message, in->comment);
++ recoded = xmms_rcc_recode(XMMS_RCC_UTF8, XMMS_RCC_OUT, msg);
++ if (recoded) {
++ strcat(message, recoded);
++ free(recoded);
++ } else
++ strcat(message, msg);
+ strcat(message, "\n");
+ }
+- if (in->copyright[0] != '\0')
++ msg = w_getstr(in, "copyright");
++ if (msg)
+ {
+ strcat(message, "Copyright: ");
+- strcat(message, in->copyright);
++ recoded = xmms_rcc_recode(XMMS_RCC_UTF8, XMMS_RCC_OUT, msg);
++ if (recoded) {
++ strcat(message, recoded);
++ free(recoded);
++ } else
++ strcat(message, msg);
+ strcat(message, "\n");
+ }
+ strcat(message, "\n\n");
diff --git a/media-plugins/xmms-wma/files/xmms-wma-ds-ffmpeg20081014.patch b/media-plugins/xmms-wma/files/xmms-wma-ds-ffmpeg20081014.patch
new file mode 100644
index 0000000..23c0b1a
--- /dev/null
+++ b/media-plugins/xmms-wma/files/xmms-wma-ds-ffmpeg20081014.patch
@@ -0,0 +1,209 @@
+diff -dPNur xmms-wma-1.0.5/Makefile xmms-wma-1.0.5-ds/Makefile
+--- xmms-wma-1.0.5/Makefile 2004-03-03 15:47:58.000000000 +0100
++++ xmms-wma-1.0.5-ds/Makefile 2008-11-27 01:33:03.000000000 +0100
+@@ -11,7 +11,7 @@
+ export DEPS := $(SOURCES:%.c=$(DEPDIR)/%.d)
+
+ all:
+- @cd ffmpeg-strip-wma; make; cd ..
++ #@cd ffmpeg-strip-wma; make; cd ..
+ @$(MAKE) --no-print-directory -f Makefile.inc
+ @strip $(PLUGIN_FILE)
+ @echo "The plug-in has been compiled. Run one of the following:"
+@@ -40,5 +40,5 @@
+ @echo "The plug-in has been uninstalled."
+
+ clean:
+- cd ffmpeg-strip-wma; make clean; cd ..
++ #cd ffmpeg-strip-wma; make clean; cd ..
+ rm -f $(OBJECTS) $(DEPS)
+diff -dPNur xmms-wma-1.0.5/Makefile.inc xmms-wma-1.0.5-ds/Makefile.inc
+--- xmms-wma-1.0.5/Makefile.inc 2005-09-05 14:48:20.000000000 +0200
++++ xmms-wma-1.0.5-ds/Makefile.inc 2008-11-27 01:35:01.000000000 +0100
+@@ -1,16 +1,18 @@
+ CC := gcc
+-CFLAGS := -O2 -ffast-math -fomit-frame-pointer -fPIC
+-#CFLAGS := -Wall -g -O3
+-CFLAGS += -DHAVE_AV_CONFIG_H -I.. -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE
+-CFLAGS += -I ffmpeg-strip-wma
+-CFLAGS += `xmms-config --cflags`
+-LIBS := `xmms-config --libs` -L ffmpeg-strip-wma -lffwma
++MYCFLAGS := $(CFLAGS) -fPIC
++#MYCFLAGS := -Wall -g -O3
++MYCFLAGS += -DHAVE_AV_CONFIG_H -I.. -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -fPIC
++#MYCFLAGS += -I ffmpeg-strip-wma
++MYCFLAGS += `xmms-config --cflags`
++MYCFLAGS += -I/usr/include/ffmpeg
++#LIBS := `xmms-config --libs` -L ffmpeg-strip-wma -lffwma
++LIBS := `xmms-config --libs` -lavcodec -lavformat
+
+ $(PLUGIN_FILE): $(OBJECTS)
+ $(CC) -o $@ $^ $(LIBS) -shared
+
+ $(OBJDIR)/%.o: %.c
+- $(CC) -c -o $@ $(CFLAGS) $<
++ $(CC) -c -o $@ $(MYCFLAGS) $<
+
+ $(DEPDIR)/%.d: %.c
+ $(CC) -MM $(CFLAGS) $< | sed "s/^$*\.o:/$(OBJDIR)\/$*\.o $(DEPDIR)\/$*\.d:/" > $@
+diff -dPNur xmms-wma-1.0.5/xmms-wma.c xmms-wma-1.0.5-ds/xmms-wma.c
+--- xmms-wma-1.0.5/xmms-wma.c 2008-11-27 02:58:02.000000000 +0100
++++ xmms-wma-1.0.5-ds/xmms-wma.c 2008-11-27 02:54:38.000000000 +0100
+@@ -43,8 +43,9 @@
+ #undef HAVE_AV_CONFIG_H
+ #endif
+
+-#include "avcodec.h"
+-#include "avformat.h"
++#include "libavcodec/avcodec.h"
++#include "libavformat/avformat.h"
++#include "libavutil/fifo.h"
+ #include "iir.h"
+
+ #define ABOUT_TXT "Copyright (C) 2004,2005 Mokrushin I.V. aka McMCC (mcmcc@mail.ru).\n \
+@@ -191,8 +192,6 @@
+
+ static void wma_init(void)
+ {
+- avcodec_init();
+- avcodec_register_all();
+ av_register_all();
+ init_iir();
+ }
+@@ -201,9 +200,14 @@
+ {
+ gchar *ext;
+ ext = strrchr(filename, '.');
+- if(ext)
++ if(ext) {
+ if(!strcasecmp(ext, ".wma"))
+ return 1;
++ if(!strcasecmp(ext, ".m4a"))
++ return 1;
++ if(!strcasecmp(ext, ".aac"))
++ return 1;
++ }
+ return 0;
+ }
+
+@@ -338,21 +342,23 @@
+ return;
+ #endif
+
+- av_find_stream_info(in);
+- (*len_real) = get_song_time(in);
+- (*title_real) = get_song_title(in, filename);
++ if (!av_find_stream_info(in)) {
++ (*len_real) = get_song_time(in);
++ (*title_real) = get_song_title(in, filename);
++ }
+ av_close_input_file(in);
+ }
+-
+ static void wma_playbuff(int out_size)
+ {
+- FifoBuffer f;
++ AVFifoBuffer f;
+ int sst_buff;
+-
+- fifo_init(&f, out_size*2);
+- fifo_write(&f, wma_outbuf, out_size, &f.wptr);
+- while(!fifo_read(&f, wma_s_outbuf, wma_st_buff, &f.rptr) && wma_decode)
+- {
++
++ av_fifo_init(&f, out_size*2);
++ av_fifo_generic_write(&f, wma_outbuf, out_size, NULL);
++
++ while ((av_fifo_size(&f) > 0) && wma_decode) {
++ if (av_fifo_read(&f, wma_s_outbuf, wma_st_buff)) break;
++
+ if(wma_eq_on)
+ sst_buff = iir((gpointer)&wma_s_outbuf, wma_st_buff);
+ else
+@@ -365,7 +371,7 @@
+ wma_ip.output->write_audio((short *)wma_s_outbuf, sst_buff);
+ memset(wma_s_outbuf, 0, sst_buff);
+ }
+- fifo_free(&f);
++ av_fifo_free(&f);
+ return;
+ }
+
+@@ -374,18 +380,29 @@
+ uint8_t *inbuf_ptr;
+ int out_size, size, len;
+ AVPacket pkt;
++ int64_t seek_target;
+
+ pthread_mutex_lock(&wma_mutex);
+ while(wma_decode){
+-
+ if(wma_seekpos != -1)
+ {
+- av_seek_frame(ic, wma_idx, wma_seekpos * 1000000LL);
++ if (wma_idx>=0) {
++ seek_target = av_rescale_q(wma_seekpos * 1000000LL, AV_TIME_BASE_Q, ic->streams[wma_idx]->time_base);
++ } else {
++ seek_target = wma_seekpos * 1000000LL;
++ }
++ av_seek_frame(ic, wma_idx, seek_target, AVSEEK_FLAG_BACKWARD);
+ wma_ip.output->flush(wma_seekpos * 1000);
+ wma_seekpos = -1;
+ }
+
+- if(av_read_frame(ic, &pkt) < 0) break;
++ if(av_read_frame(ic, &pkt) < 0) {
++ /*if (url_ferror(&ic->pb) == 0) {
++ usleep(100000);
++ continue;
++ }*/
++ break;
++ }
+
+ size = pkt.size;
+ inbuf_ptr = pkt.data;
+@@ -393,7 +410,9 @@
+ if(size == 0) break;
+
+ while(size > 0){
+- len = avcodec_decode_audio(c, (short *)wma_outbuf, &out_size,
++ out_size = AVCODEC_MAX_AUDIO_FRAME_SIZE;
++
++ len = avcodec_decode_audio2(c, (short *)wma_outbuf, &out_size,
+ inbuf_ptr, size);
+ if(len < 0) break;
+
+@@ -428,10 +447,13 @@
+ #endif
+
+ for(wma_idx = 0; wma_idx < ic->nb_streams; wma_idx++) {
+- c = &ic->streams[wma_idx]->codec;
++ c = ic->streams[wma_idx]->codec;
+ if(c->codec_type == CODEC_TYPE_AUDIO) break;
+ }
+
++ if(!c || c->codec_type != CODEC_TYPE_AUDIO)
++ return;
++
+ av_find_stream_info(ic);
+
+ codec = avcodec_find_decoder(c->codec_id);
+@@ -460,7 +482,8 @@
+ {
+ wma_decode = 0;
+ if(wma_pause) wma_do_pause(0);
+- pthread_join(wma_decode_thread, NULL);
++ if(wma_decode_thread)
++ pthread_join(wma_decode_thread, NULL);
+ wma_ip.output->close_audio();
+ }
+
+@@ -484,7 +507,7 @@
+ #endif
+
+ for(i = 0; i < in->nb_streams; i++) {
+- s = &in->streams[i]->codec;
++ s = in->streams[i]->codec;
+ if(s->codec_type == CODEC_TYPE_AUDIO) break;
+ }
+
diff --git a/media-plugins/xmms-wma/files/xmms-wma-ds-fifo_init.patch b/media-plugins/xmms-wma/files/xmms-wma-ds-fifo_init.patch
new file mode 100644
index 0000000..b2e1d82
--- /dev/null
+++ b/media-plugins/xmms-wma/files/xmms-wma-ds-fifo_init.patch
@@ -0,0 +1,32 @@
+diff -dPNur xmms-wma-1.0.5/xmms-wma.c xmms-wma-1.0.5-ds/xmms-wma.c
+--- xmms-wma-1.0.5/xmms-wma.c 2010-02-07 15:46:56.000000000 +0100
++++ xmms-wma-1.0.5-ds/xmms-wma.c 2010-02-07 15:58:23.000000000 +0100
+@@ -350,14 +350,14 @@
+ }
+ static void wma_playbuff(int out_size)
+ {
+- AVFifoBuffer f;
++ AVFifoBuffer *f;
+ int sst_buff;
+
+- av_fifo_init(&f, out_size*2);
+- av_fifo_generic_write(&f, wma_outbuf, out_size, NULL);
++ f = av_fifo_alloc(out_size*2);
++ av_fifo_generic_write(f, wma_outbuf, out_size, NULL);
+
+- while ((av_fifo_size(&f) > 0) && wma_decode) {
+- if (av_fifo_read(&f, wma_s_outbuf, wma_st_buff)) break;
++ while ((av_fifo_size(f) > 0) && wma_decode) {
++ if (av_fifo_generic_read(f, wma_s_outbuf, wma_st_buff, NULL)) break;
+
+ if(wma_eq_on)
+ sst_buff = iir((gpointer)&wma_s_outbuf, wma_st_buff);
+@@ -371,7 +371,7 @@
+ wma_ip.output->write_audio((short *)wma_s_outbuf, sst_buff);
+ memset(wma_s_outbuf, 0, sst_buff);
+ }
+- av_fifo_free(&f);
++ av_fifo_free(f);
+ return;
+ }
+
diff --git a/media-plugins/xmms-wma/files/xmms-wma-ds-rcc.patch b/media-plugins/xmms-wma/files/xmms-wma-ds-rcc.patch
new file mode 100644
index 0000000..fcdc82a
--- /dev/null
+++ b/media-plugins/xmms-wma/files/xmms-wma-ds-rcc.patch
@@ -0,0 +1,98 @@
+diff -dPNur xmms-wma-1.0.5-new/xmms-wma.c xmms-wma-1.0.5-new-rcc/xmms-wma.c
+--- xmms-wma-1.0.5-new/xmms-wma.c 2007-04-22 00:47:20.000000000 +0200
++++ xmms-wma-1.0.5-new-rcc/xmms-wma.c 2007-04-22 01:13:08.000000000 +0200
+@@ -36,6 +36,7 @@
+ #include <xmms/configfile.h>
+ #include <xmms/util.h>
+ #include <xmms/titlestring.h>
++#include <libxmms/rcc.h>
+ #endif
+
+ #ifdef HAVE_AV_CONFIG_H
+@@ -302,7 +303,7 @@
+ input->file_path = filename;
+ #endif
+ input->file_ext = extname(filename);
+- ret = xmms_get_titlestring(xmms_get_gentitle_format(), input);
++ ret = xmms_charset_get_titlestring(xmms_get_gentitle_format(), input, XMMS_RCC_UTF8);
+ if(input) g_free(input);
+
+ if(!ret)
+@@ -488,6 +489,7 @@
+ char *title;
+ char *tmp;
+ char *message;
++ char *recoded;
+ AVFormatContext *in = NULL;
+ AVCodecContext *s = NULL;
+ AVCodec *codec;
+@@ -518,6 +520,11 @@
+
+ strcpy(message, "\n\n\n");
+ strcat(message, "File Name: ");
++ recoded = xmms_rcc_recode(XMMS_RCC_FS, XMMS_RCC_OUT, slashkill(filename));
++ if (recoded) {
++ strcat(message, recoded);
++ free(recoded);
++ } else
+ strcat(message, slashkill(filename));
+ strcat(message, "\n\n");
+ strcat(message, "Audio Info:\n");
+@@ -558,18 +565,33 @@
+ if (in->title[0] != '\0')
+ {
+ strcat(message, "Title: ");
++ recoded = xmms_rcc_recode(XMMS_RCC_UTF8, XMMS_RCC_OUT, in->title);
++ if (recoded) {
++ strcat(message, recoded);
++ free(recoded);
++ } else
+ strcat(message, in->title);
+ strcat(message, "\n");
+ }
+ if (in->author[0] != '\0')
+ {
+ strcat(message, "Author: ");
++ recoded = xmms_rcc_recode(XMMS_RCC_UTF8, XMMS_RCC_OUT, in->author);
++ if (recoded) {
++ strcat(message, recoded);
++ free(recoded);
++ } else
+ strcat(message, in->author);
+ strcat(message, "\n");
+ }
+ if (in->album[0] != '\0')
+ {
+ strcat(message, "Album: ");
++ recoded = xmms_rcc_recode(XMMS_RCC_UTF8, XMMS_RCC_OUT, in->album);
++ if (recoded) {
++ strcat(message, recoded);
++ free(recoded);
++ } else
+ strcat(message, in->album);
+ strcat(message, "\n");
+ }
+@@ -598,12 +620,23 @@
+ if (in->comment[0] != '\0')
+ {
+ strcat(message, "Comments: ");
++ recoded = xmms_rcc_recode(XMMS_RCC_UTF8, XMMS_RCC_OUT, in->comment);
++ if (recoded) {
++ strcat(message, recoded);
++ free(recoded);
++ } else
+ strcat(message, in->comment);
+ strcat(message, "\n");
+ }
+ if (in->copyright[0] != '\0')
+ {
+ strcat(message, "Copyright: ");
++ strcat(message, "Comments: ");
++ recoded = xmms_rcc_recode(XMMS_RCC_UTF8, XMMS_RCC_OUT, in->copyright);
++ if (recoded) {
++ strcat(message, recoded);
++ free(recoded);
++ } else
+ strcat(message, in->copyright);
+ strcat(message, "\n");
+ }
diff --git a/media-plugins/xmms-wma/xmms-wma-1.0.5-r1.ebuild b/media-plugins/xmms-wma/xmms-wma-1.0.5-r1.ebuild
new file mode 100644
index 0000000..1eb20f1
--- /dev/null
+++ b/media-plugins/xmms-wma/xmms-wma-1.0.5-r1.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/media-plugins/xmms-wma/xmms-wma-1.0.5.ebuild,v 1.1 2005/10/24 00:46:58 metalgod Exp $
+
+IUSE=""
+
+inherit eutils toolchain-funcs
+
+DESCRIPTION="XMMS plugin to play wma"
+HOMEPAGE="http://mcmcc.bat.ru/xmms-wma/"
+SRC_URI="http://mcmcc.bat.ru/xmms-wma/${P}.tar.bz2"
+
+SLOT="0"
+LICENSE="GPL-2"
+
+#~sparc: 1.0.4: Plays a little staticy, x86/adm64 is clear...
+
+KEYWORDS="amd64 ~ppc ~sparc x86"
+
+DEPEND="media-sound/xmms
+ >=media-video/ffmpeg-0.4.9_p20070129"
+
+src_unpack() {
+ unpack ${A}
+ cd ${S}
+
+# Patches for system ffmpeg, broken
+ epatch ${FILESDIR}/${PN}-ds-ffmpeg.patch || die
+ epatch ${FILESDIR}/${PN}-ds-rcc.patch || die
+}
+
+src_compile () {
+ emake CC="$(tc-getCC)" || die
+}
+
+src_install () {
+ exeinto `xmms-config --input-plugin-dir`
+ doexe libwma.so
+}
diff --git a/media-plugins/xmms-wma/xmms-wma-1.0.5-r2.ebuild b/media-plugins/xmms-wma/xmms-wma-1.0.5-r2.ebuild
new file mode 100644
index 0000000..a03e1b7
--- /dev/null
+++ b/media-plugins/xmms-wma/xmms-wma-1.0.5-r2.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/media-plugins/xmms-wma/xmms-wma-1.0.5.ebuild,v 1.1 2005/10/24 00:46:58 metalgod Exp $
+
+IUSE=""
+
+inherit eutils toolchain-funcs
+
+DESCRIPTION="XMMS plugin to play wma"
+HOMEPAGE="http://mcmcc.bat.ru/xmms-wma/"
+SRC_URI="http://mcmcc.bat.ru/xmms-wma/${P}.tar.bz2"
+
+SLOT="0"
+LICENSE="GPL-2"
+
+#~sparc: 1.0.4: Plays a little staticy, x86/adm64 is clear...
+
+KEYWORDS="~amd64 ~ppc ~sparc ~x86"
+
+DEPEND="media-sound/xmms
+ >=media-video/ffmpeg-0.4.9_p20081014"
+
+src_unpack() {
+ unpack ${A}
+ cd ${S}
+
+# Patches for system ffmpeg, broken
+ epatch ${FILESDIR}/${PN}-ds-ffmpeg20081014.patch || die
+ epatch ${FILESDIR}/${PN}-ds-rcc.patch || die
+}
+
+src_compile () {
+ emake CC="$(tc-getCC)" || die
+}
+
+src_install () {
+ exeinto `xmms-config --input-plugin-dir`
+ doexe libwma.so
+}
diff --git a/media-plugins/xmms-wma/xmms-wma-1.0.5-r3.ebuild b/media-plugins/xmms-wma/xmms-wma-1.0.5-r3.ebuild
new file mode 100644
index 0000000..471a0e9
--- /dev/null
+++ b/media-plugins/xmms-wma/xmms-wma-1.0.5-r3.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/media-plugins/xmms-wma/xmms-wma-1.0.5.ebuild,v 1.1 2005/10/24 00:46:58 metalgod Exp $
+
+IUSE=""
+
+inherit eutils toolchain-funcs
+
+DESCRIPTION="XMMS plugin to play wma"
+HOMEPAGE="http://mcmcc.bat.ru/xmms-wma/"
+SRC_URI="http://mcmcc.bat.ru/xmms-wma/${P}.tar.bz2"
+
+SLOT="0"
+LICENSE="GPL-2"
+
+#~sparc: 1.0.4: Plays a little staticy, x86/adm64 is clear...
+
+KEYWORDS="~amd64 ~ppc ~sparc ~x86"
+
+DEPEND="media-sound/xmms
+ >=media-video/ffmpeg-0.4.9_p20081014"
+
+src_unpack() {
+ unpack ${A}
+ cd ${S}
+
+# Patches for system ffmpeg, broken
+ epatch ${FILESDIR}/${PN}-ds-ffmpeg20081014.patch || die
+ epatch ${FILESDIR}/${PN}-ds-rcc.patch || die
+ epatch ${FILESDIR}/${PN}-ds-fifo_init.patch || die
+}
+
+src_compile () {
+ emake CC="$(tc-getCC)" || die
+}
+
+src_install () {
+ exeinto `xmms-config --input-plugin-dir`
+ doexe libwma.so
+}
diff --git a/media-plugins/xmms-wma/xmms-wma-1.0.5-r4.ebuild b/media-plugins/xmms-wma/xmms-wma-1.0.5-r4.ebuild
new file mode 100644
index 0000000..08c63ca
--- /dev/null
+++ b/media-plugins/xmms-wma/xmms-wma-1.0.5-r4.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/media-plugins/xmms-wma/xmms-wma-1.0.5.ebuild,v 1.1 2005/10/24 00:46:58 metalgod Exp $
+
+IUSE=""
+
+inherit eutils toolchain-funcs
+
+DESCRIPTION="XMMS plugin to play wma"
+HOMEPAGE="http://mcmcc.bat.ru/xmms-wma/"
+SRC_URI="http://mcmcc.bat.ru/xmms-wma/${P}.tar.bz2"
+
+SLOT="0"
+LICENSE="GPL-2"
+
+#~sparc: 1.0.4: Plays a little staticy, x86/adm64 is clear...
+
+KEYWORDS="~amd64 ~ppc ~sparc ~x86"
+
+DEPEND="media-sound/xmms
+ >=media-video/ffmpeg-0.4.9_p20081014"
+
+src_unpack() {
+ unpack ${A}
+ cd ${S}
+
+ epatch "${FILESDIR}"/${PN}-ds-ffmpeg0.10.patch || die
+}
+
+src_compile () {
+ emake CC="$(tc-getCC)" || die
+}
+
+src_install () {
+ exeinto `xmms-config --input-plugin-dir`
+ doexe libwma.so
+}