summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2015-08-08 13:49:04 -0700
committerRobin H. Johnson <robbat2@gentoo.org>2015-08-08 17:38:18 -0700
commit56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch)
tree3f91093cdb475e565ae857f1c5a7fd339e2d781e /media-libs/FusionSound
downloadgentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip
proj/gentoo: Initial commit
This commit represents a new era for Gentoo: Storing the gentoo-x86 tree in Git, as converted from CVS. This commit is the start of the NEW history. Any historical data is intended to be grafted onto this point. Creation process: 1. Take final CVS checkout snapshot 2. Remove ALL ChangeLog* files 3. Transform all Manifests to thin 4. Remove empty Manifests 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$ 5.1. Do not touch files with -kb/-ko keyword flags. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'media-libs/FusionSound')
-rw-r--r--media-libs/FusionSound/FusionSound-1.1.1-r1.ebuild73
-rw-r--r--media-libs/FusionSound/Manifest1
-rw-r--r--media-libs/FusionSound/files/FusionSound-1.1.1-ffmpeg-0.10.patch126
-rw-r--r--media-libs/FusionSound/files/FusionSound-1.1.1-ffmpeg-0.6.90.patch11
-rw-r--r--media-libs/FusionSound/files/FusionSound-1.1.1-ffmpeg.patch43
-rw-r--r--media-libs/FusionSound/files/FusionSound-1.1.1-ffmpeg2.patch31
-rw-r--r--media-libs/FusionSound/files/FusionSound-1.1.1-gcc43.patch40
-rw-r--r--media-libs/FusionSound/files/FusionSound-1.1.1-libav-0.8.1.patch11
-rw-r--r--media-libs/FusionSound/files/FusionSound-1.1.1-libav-9.patch21
-rw-r--r--media-libs/FusionSound/files/FusionSound-1.1.1-libavformat54.patch31
-rw-r--r--media-libs/FusionSound/files/FusionSound-1.1.1-segfault.patch24
-rw-r--r--media-libs/FusionSound/metadata.xml9
12 files changed, 421 insertions, 0 deletions
diff --git a/media-libs/FusionSound/FusionSound-1.1.1-r1.ebuild b/media-libs/FusionSound/FusionSound-1.1.1-r1.ebuild
new file mode 100644
index 000000000000..1d803eb3fe7e
--- /dev/null
+++ b/media-libs/FusionSound/FusionSound-1.1.1-r1.ebuild
@@ -0,0 +1,73 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+inherit autotools eutils
+
+DESCRIPTION="Audio sub system for multiple applications"
+HOMEPAGE="http://www.directfb.org/"
+SRC_URI="http://www.directfb.org/downloads/Core/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 hppa ppc x86"
+IUSE="alsa cddb ffmpeg mad oss timidity vorbis"
+
+RDEPEND=">=dev-libs/DirectFB-${PV}
+ <dev-libs/DirectFB-1.6.3
+ alsa? ( media-libs/alsa-lib )
+ timidity? (
+ media-libs/libtimidity
+ media-sound/timidity++
+ )
+ vorbis? ( media-libs/libvorbis )
+ mad? ( media-libs/libmad )
+ cddb? ( media-libs/libcddb )
+ ffmpeg? ( >=virtual/ffmpeg-9 )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ sys-apps/sed"
+
+src_prepare() {
+ epatch \
+ "${FILESDIR}"/${P}-gcc43.patch \
+ "${FILESDIR}"/${P}-ffmpeg.patch \
+ "${FILESDIR}"/${P}-ffmpeg-0.6.90.patch \
+ "${FILESDIR}"/${P}-ffmpeg-0.10.patch \
+ "${FILESDIR}"/${P}-libavformat54.patch \
+ "${FILESDIR}"/${P}-libav-0.8.1.patch \
+ "${FILESDIR}"/${P}-libav-9.patch \
+ "${FILESDIR}"/${P}-ffmpeg2.patch \
+ "${FILESDIR}"/${P}-segfault.patch
+
+ sed -i -e 's:-O3 -ffast-math -pipe::' configure.in || die
+
+ AT_M4DIR="m4" eautoreconf
+}
+
+src_configure() {
+ local myaudio="wave"
+ use alsa && myaudio+=" alsa"
+ use oss && myaudio+=" oss"
+
+ # Lite is used only for tests or examples.
+ # Tremor isn't there with latest libvorbis.
+ econf \
+ --without-lite \
+ --with-drivers="${myaudio}" \
+ --without-examples \
+ $(use_with timidity) \
+ --with-wave \
+ $(use_with vorbis) \
+ --without-tremor \
+ $(use_with mad) \
+ $(use_with cddb cdda) \
+ $(use_with ffmpeg) \
+ --with-playlist
+}
+
+src_install() {
+ emake DESTDIR="${D}" htmldir=/usr/share/doc/${PF}/html install
+ dodoc AUTHORS ChangeLog NEWS README TODO
+}
diff --git a/media-libs/FusionSound/Manifest b/media-libs/FusionSound/Manifest
new file mode 100644
index 000000000000..93e7dbebca9c
--- /dev/null
+++ b/media-libs/FusionSound/Manifest
@@ -0,0 +1 @@
+DIST FusionSound-1.1.1.tar.gz 1103465 SHA256 573505cb6d8e39174f188ef8f749fc4c0f3476397f379d2b65ff8d07b8aa6f6d SHA512 58ede71d78165491a24f28ee7658f4ca7ea6292e3bc5dad3e54f42f785338a6ae02020a03af38e92f3a4e9b2fd5a70cc2d643dc338ffb62eeeed1a0e9d11d853 WHIRLPOOL f0905d60ca3b72daa1744e8608fc7797b335fa4978440fbfb6397ebae689a8e20a2df1509ae7f76a65b92200b975a052df4d38e9608410393863e44fc7973200
diff --git a/media-libs/FusionSound/files/FusionSound-1.1.1-ffmpeg-0.10.patch b/media-libs/FusionSound/files/FusionSound-1.1.1-ffmpeg-0.10.patch
new file mode 100644
index 000000000000..f6fc333ff796
--- /dev/null
+++ b/media-libs/FusionSound/files/FusionSound-1.1.1-ffmpeg-0.10.patch
@@ -0,0 +1,126 @@
+Parts of:
+http://cvs.pld-linux.org/cgi-bin/viewvc.cgi/cvs/packages/FusionSound/FusionSound-ffmpeg.patch?view=markup
+
+and remove a write only variable.
+https://bugs.gentoo.org/show_bug.cgi?id=405721
+
+Index: FusionSound-1.1.1/interfaces/IFusionSoundMusicProvider/ifusionsoundmusicprovider_ffmpeg.c
+===================================================================
+--- FusionSound-1.1.1.orig/interfaces/IFusionSoundMusicProvider/ifusionsoundmusicprovider_ffmpeg.c
++++ FusionSound-1.1.1/interfaces/IFusionSoundMusicProvider/ifusionsoundmusicprovider_ffmpeg.c
+@@ -41,6 +41,7 @@
+
+ #include <misc/sound_util.h>
+
++#define FF_API_OLD_METADATA2 0
+ #include <libavcodec/avcodec.h>
+ #include <libavformat/avformat.h>
+
+@@ -476,17 +477,26 @@ static DFBResult
+ IFusionSoundMusicProvider_FFmpeg_GetTrackDescription( IFusionSoundMusicProvider *thiz,
+ FSTrackDescription *desc )
+ {
++ AVDictionaryEntry *tag = NULL;
++
+ DIRECT_INTERFACE_GET_DATA( IFusionSoundMusicProvider_FFmpeg )
+
+ if (!desc)
+ return DFB_INVARG;
+
+- direct_snputs( desc->artist, data->ctx->author, FS_TRACK_DESC_ARTIST_LENGTH );
+- direct_snputs( desc->title, data->ctx->title, FS_TRACK_DESC_TITLE_LENGTH );
+- direct_snputs( desc->album, data->ctx->album, FS_TRACK_DESC_ALBUM_LENGTH );
+- direct_snputs( desc->genre, data->ctx->genre, FS_TRACK_DESC_GENRE_LENGTH );
+- direct_snputs( desc->encoding, data->codec->codec->name, FS_TRACK_DESC_ENCODING_LENGTH );
+- desc->year = data->ctx->year;
++ tag = av_dict_get(data->ctx->metadata, "artist", NULL, 0);
++ if (tag) direct_snputs( desc->artist, tag->value, FS_TRACK_DESC_ARTIST_LENGTH );
++ tag = av_dict_get(data->ctx->metadata, "title", NULL, 0);
++ if (tag) direct_snputs( desc->title, tag->value, FS_TRACK_DESC_TITLE_LENGTH );
++ tag = av_dict_get(data->ctx->metadata, "album", NULL, 0);
++ if (tag) direct_snputs( desc->album, tag->value, FS_TRACK_DESC_ALBUM_LENGTH );
++ tag = av_dict_get(data->ctx->metadata, "genre", NULL, 0);
++ if (tag) direct_snputs( desc->genre, tag->value, FS_TRACK_DESC_GENRE_LENGTH );
++ tag = av_dict_get(data->ctx->metadata, "encoding", NULL, 0);
++ if (tag) direct_snputs( desc->encoding, tag->value, FS_TRACK_DESC_ENCODING_LENGTH );
++ tag = av_dict_get(data->ctx->metadata, "year", NULL, 0);
++ if (tag) desc->year = atoi(tag->value);
++
+ desc->bitrate = data->codec->bit_rate;
+ desc->replaygain = desc->replaygain_album = 0;
+
+@@ -540,7 +550,6 @@ FFmpegStreamThread( DirectThread *thread
+ IFusionSoundMusicProvider_FFmpeg_data *data = ctx;
+
+ AVPacket pkt;
+- u8 *pkt_data = NULL;
+ int pkt_size = 0;
+ s64 pkt_pts = AV_NOPTS_VALUE;
+
+@@ -584,7 +593,6 @@ FFmpegStreamThread( DirectThread *thread
+ continue;
+ }
+
+- pkt_data = pkt.data;
+ pkt_size = pkt.size;
+ pkt_pts = pkt.pts;
+ if (pkt_pts != AV_NOPTS_VALUE) {
+@@ -595,14 +603,13 @@ FFmpegStreamThread( DirectThread *thread
+ }
+
+ len = AVCODEC_MAX_AUDIO_FRAME_SIZE;
+- decoded = avcodec_decode_audio2( data->codec,
+- (s16*)data->buf, &len, pkt_data, pkt_size );
++ decoded = avcodec_decode_audio3( data->codec,
++ (s16*)data->buf, &len, &pkt );
+ if (decoded < 0) {
+ av_free_packet( &pkt );
+ pkt_size = 0;
+ }
+ else {
+- pkt_data += decoded;
+ pkt_size -= decoded;
+ if (pkt_size <= 0)
+ av_free_packet( &pkt );
+@@ -739,7 +746,6 @@ FFmpegBufferThread( DirectThread *thread
+ IFusionSoundMusicProvider_FFmpeg_data *data = ctx;
+
+ AVPacket pkt;
+- u8 *pkt_data = NULL;
+ int pkt_size = 0;
+ s64 pkt_pts = AV_NOPTS_VALUE;
+ int pos = 0;
+@@ -789,7 +795,6 @@ FFmpegBufferThread( DirectThread *thread
+ continue;
+ }
+
+- pkt_data = pkt.data;
+ pkt_size = pkt.size;
+ pkt_pts = pkt.pts;
+ if (pkt_pts != AV_NOPTS_VALUE) {
+@@ -800,14 +805,13 @@ FFmpegBufferThread( DirectThread *thread
+ }
+
+ len = AVCODEC_MAX_AUDIO_FRAME_SIZE;
+- decoded = avcodec_decode_audio2( data->codec,
+- (s16*)data->buf, &len, pkt_data, pkt_size );
++ decoded = avcodec_decode_audio3( data->codec,
++ (s16*)data->buf, &len, &pkt );
+ if (decoded < 0) {
+ av_free_packet( &pkt );
+ pkt_size = 0;
+ }
+ else {
+- pkt_data += decoded;
+ pkt_size -= decoded;
+ if (pkt_size <= 0)
+ av_free_packet( &pkt );
+@@ -1208,7 +1212,7 @@ Construct( IFusionSoundMusicProvider *th
+ }
+
+ for (i = 0; i < data->ctx->nb_streams; i++) {
+- if (data->ctx->streams[i]->codec->codec_type == CODEC_TYPE_AUDIO) {
++ if (data->ctx->streams[i]->codec->codec_type == AVMEDIA_TYPE_AUDIO) {
+ if (!data->st || data->st->codec->bit_rate < data->ctx->streams[i]->codec->bit_rate)
+ data->st = data->ctx->streams[i];
+ }
diff --git a/media-libs/FusionSound/files/FusionSound-1.1.1-ffmpeg-0.6.90.patch b/media-libs/FusionSound/files/FusionSound-1.1.1-ffmpeg-0.6.90.patch
new file mode 100644
index 000000000000..b25b85bef621
--- /dev/null
+++ b/media-libs/FusionSound/files/FusionSound-1.1.1-ffmpeg-0.6.90.patch
@@ -0,0 +1,11 @@
+--- interfaces/IFusionSoundMusicProvider/ifusionsoundmusicprovider_ffmpeg.c.orig 2011-06-15 20:01:31.000000000 +0200
++++ interfaces/IFusionSoundMusicProvider/ifusionsoundmusicprovider_ffmpeg.c 2011-06-15 20:01:45.000000000 +0200
+@@ -64,7 +64,7 @@
+
+ DirectStream *stream;
+
+- ByteIOContext pb;
++ AVIOContext pb;
+ AVFormatContext *ctx;
+ AVStream *st;
+ void *iobuf;
diff --git a/media-libs/FusionSound/files/FusionSound-1.1.1-ffmpeg.patch b/media-libs/FusionSound/files/FusionSound-1.1.1-ffmpeg.patch
new file mode 100644
index 000000000000..8135157b3f31
--- /dev/null
+++ b/media-libs/FusionSound/files/FusionSound-1.1.1-ffmpeg.patch
@@ -0,0 +1,43 @@
+diff -Naurp FusionSound-1.1.1-original/configure.in FusionSound-1.1.1/configure.in
+--- FusionSound-1.1.1-original/configure.in 2008-02-11 05:31:45.000000000 -0600
++++ FusionSound-1.1.1/configure.in 2009-04-10 15:18:02.000000000 -0600
+@@ -513,11 +513,11 @@ AC_ARG_WITH(ffmpeg,
+
+ if test "x$with_ffmpeg" = "xyes"; then
+ AC_MSG_CHECKING([for libavcodec/libavformat])
+- if $PKG_CONFIG libavcodec libavformat; then
++ if $PKG_CONFIG libavcodec libavformat libavutil; then
+ AC_MSG_RESULT(yes)
+ ffmpeg="yes"
+- FFMPEG_CFLAGS=`$PKG_CONFIG --cflags libavcodec libavformat`
+- FFMPEG_LIBS=`$PKG_CONFIG --libs libavcodec libavformat`
++ FFMPEG_CFLAGS=`$PKG_CONFIG --cflags libavcodec libavformat libavutil`
++ FFMPEG_LIBS=`$PKG_CONFIG --libs libavcodec libavformat libavutil`
+ else
+ AC_MSG_RESULT(no)
+ AC_MSG_WARN([
+diff -Naurp FusionSound-1.1.1-original/interfaces/IFusionSoundMusicProvider/ifusionsoundmusicprovider_ffmpeg.c FusionSound-1.1.1/interfaces/IFusionSoundMusicProvider/ifusionsoundmusicprovider_ffmpeg.c
+--- FusionSound-1.1.1-original/interfaces/IFusionSoundMusicProvider/ifusionsoundmusicprovider_ffmpeg.c 2008-02-11 05:31:45.000000000 -0600
++++ FusionSound-1.1.1/interfaces/IFusionSoundMusicProvider/ifusionsoundmusicprovider_ffmpeg.c 2009-04-10 15:18:21.000000000 -0600
+@@ -41,8 +41,8 @@
+
+ #include <misc/sound_util.h>
+
+-#include <avcodec.h>
+-#include <avformat.h>
++#include <libavcodec/avcodec.h>
++#include <libavformat/avformat.h>
+
+ static DFBResult
+ Probe( IFusionSoundMusicProvider_ProbeContext *ctx );
+@@ -123,8 +123,8 @@ av_read_callback( void *opaque, uint8_t
+ return len;
+ }
+
+-static offset_t
+-av_seek_callback( void *opaque, offset_t offset, int whence )
++static int64_t
++av_seek_callback( void *opaque, int64_t offset, int whence )
+ {
+ IFusionSoundMusicProvider_FFmpeg_data *data = opaque;
+ unsigned int pos = 0;
diff --git a/media-libs/FusionSound/files/FusionSound-1.1.1-ffmpeg2.patch b/media-libs/FusionSound/files/FusionSound-1.1.1-ffmpeg2.patch
new file mode 100644
index 000000000000..adde2a541450
--- /dev/null
+++ b/media-libs/FusionSound/files/FusionSound-1.1.1-ffmpeg2.patch
@@ -0,0 +1,31 @@
+Minimal change fix to build with ffmpeg2.
+
+Index: FusionSound-1.1.1/interfaces/IFusionSoundMusicProvider/ifusionsoundmusicprovider_ffmpeg.c
+===================================================================
+--- FusionSound-1.1.1.orig/interfaces/IFusionSoundMusicProvider/ifusionsoundmusicprovider_ffmpeg.c
++++ FusionSound-1.1.1/interfaces/IFusionSoundMusicProvider/ifusionsoundmusicprovider_ffmpeg.c
+@@ -46,6 +46,10 @@
+ #include <libavformat/avformat.h>
+ #include <libavutil/mathematics.h>
+
++#ifndef MAX_AUDIO_FRAME_SIZE
++#define AVCODEC_MAX_AUDIO_FRAME_SIZE 192000 // 1 second of 48khz 32bit audio
++#endif
++
+ static DFBResult
+ Probe( IFusionSoundMusicProvider_ProbeContext *ctx );
+
+@@ -416,11 +420,11 @@ IFusionSoundMusicProvider_FFmpeg_Destruc
+ /* Ugly hack to fix a bug (segfault) in url_fclose() */
+ if (!(iformat->flags & AVFMT_NOFILE)) {
+ iformat->flags |= AVFMT_NOFILE;
+- av_close_input_file( data->ctx );
++ avformat_close_input( &data->ctx );
+ iformat->flags ^= AVFMT_NOFILE;
+ }
+ else {
+- av_close_input_file( data->ctx );
++ avformat_close_input( &data->ctx );
+ }
+ }
+
diff --git a/media-libs/FusionSound/files/FusionSound-1.1.1-gcc43.patch b/media-libs/FusionSound/files/FusionSound-1.1.1-gcc43.patch
new file mode 100644
index 000000000000..5ebdfbcf1eeb
--- /dev/null
+++ b/media-libs/FusionSound/files/FusionSound-1.1.1-gcc43.patch
@@ -0,0 +1,40 @@
+--- src/fusionsound.c.old 2009-01-16 14:28:27.000000000 +0100
++++ src/fusionsound.c 2009-01-16 14:33:34.000000000 +0100
+@@ -116,7 +116,7 @@
+ return fs_config_set( name, value );
+ }
+
+-DirectResult
++DFBResult
+ FusionSoundCreate( IFusionSound **ret_interface )
+ {
+ DFBResult ret;
+@@ -160,8 +160,8 @@
+ return ret;
+ }
+
+-DirectResult
+-FusionSoundError( const char *msg, DirectResult error )
++DFBResult
++FusionSoundError( const char *msg, DFBResult error )
+ {
+ if (msg)
+ fprintf( stderr, "(#) FusionSound Error [%s]: %s\n", msg, DirectResultString( error ) );
+@@ -172,7 +172,7 @@
+ }
+
+ DFBResult
+-FusionSoundErrorFatal( const char *msg, DirectResult error )
++FusionSoundErrorFatal( const char *msg, DFBResult error )
+ {
+ FusionSoundError( msg, error );
+
+@@ -180,7 +180,7 @@
+ }
+
+ const char *
+-FusionSoundErrorString( DirectResult error )
++FusionSoundErrorString( DFBResult error )
+ {
+ return DirectResultString( error );
+ }
diff --git a/media-libs/FusionSound/files/FusionSound-1.1.1-libav-0.8.1.patch b/media-libs/FusionSound/files/FusionSound-1.1.1-libav-0.8.1.patch
new file mode 100644
index 000000000000..d16fdd17c971
--- /dev/null
+++ b/media-libs/FusionSound/files/FusionSound-1.1.1-libav-0.8.1.patch
@@ -0,0 +1,11 @@
+diff -Naur FusionSound-1.1.1.orig/interfaces/IFusionSoundMusicProvider/ifusionsoundmusicprovider_ffmpeg.c FusionSound-1.1.1/interfaces/IFusionSoundMusicProvider/ifusionsoundmusicprovider_ffmpeg.c
+--- FusionSound-1.1.1.orig/interfaces/IFusionSoundMusicProvider/ifusionsoundmusicprovider_ffmpeg.c 2012-04-17 15:13:57.864935809 +0200
++++ FusionSound-1.1.1/interfaces/IFusionSoundMusicProvider/ifusionsoundmusicprovider_ffmpeg.c 2012-04-17 15:15:07.299067761 +0200
+@@ -44,6 +44,7 @@
+ #define FF_API_OLD_METADATA2 0
+ #include <libavcodec/avcodec.h>
+ #include <libavformat/avformat.h>
++#include <libavutil/mathematics.h>
+
+ static DFBResult
+ Probe( IFusionSoundMusicProvider_ProbeContext *ctx );
diff --git a/media-libs/FusionSound/files/FusionSound-1.1.1-libav-9.patch b/media-libs/FusionSound/files/FusionSound-1.1.1-libav-9.patch
new file mode 100644
index 000000000000..35295d37cf89
--- /dev/null
+++ b/media-libs/FusionSound/files/FusionSound-1.1.1-libav-9.patch
@@ -0,0 +1,21 @@
+diff -burN FusionSound-1.1.1.old//interfaces/IFusionSoundMusicProvider/ifusionsoundmusicprovider_ffmpeg.c FusionSound-1.1.1/interfaces/IFusionSoundMusicProvider/ifusionsoundmusicprovider_ffmpeg.c
+--- FusionSound-1.1.1.old//interfaces/IFusionSoundMusicProvider/ifusionsoundmusicprovider_ffmpeg.c 2012-11-25 14:41:46.306782213 +0100
++++ FusionSound-1.1.1/interfaces/IFusionSoundMusicProvider/ifusionsoundmusicprovider_ffmpeg.c 2012-11-25 14:46:14.151772465 +0100
+@@ -1197,7 +1197,7 @@
+ return DFB_FAILURE;
+ }
+
+- if (av_find_stream_info( data->ctx ) < 0) {
++ if (avformat_find_stream_info( data->ctx, NULL ) < 0) {
+ D_ERROR( "IFusionSoundMusicProvider_FFmpeg: couldn't find stream info!\n" );
+ IFusionSoundMusicProvider_FFmpeg_Destruct( thiz );
+ return DFB_FAILURE;
+@@ -1218,7 +1218,7 @@
+
+ data->codec = data->st->codec;
+ c = avcodec_find_decoder( data->codec->codec_id );
+- if (!c || avcodec_open( data->codec, c ) < 0) {
++ if (!c || avcodec_open2( data->codec, c, NULL ) < 0) {
+ D_ERROR( "IFusionSoundMusicProvider_FFmpeg: couldn't find audio decoder!\n" );
+ IFusionSoundMusicProvider_FFmpeg_Destruct( thiz );
+ return DFB_FAILURE;
diff --git a/media-libs/FusionSound/files/FusionSound-1.1.1-libavformat54.patch b/media-libs/FusionSound/files/FusionSound-1.1.1-libavformat54.patch
new file mode 100644
index 000000000000..41f513ae9eff
--- /dev/null
+++ b/media-libs/FusionSound/files/FusionSound-1.1.1-libavformat54.patch
@@ -0,0 +1,31 @@
+Index: FusionSound-1.1.1/interfaces/IFusionSoundMusicProvider/ifusionsoundmusicprovider_ffmpeg.c
+===================================================================
+--- FusionSound-1.1.1.orig/interfaces/IFusionSoundMusicProvider/ifusionsoundmusicprovider_ffmpeg.c
++++ FusionSound-1.1.1/interfaces/IFusionSoundMusicProvider/ifusionsoundmusicprovider_ffmpeg.c
+@@ -65,7 +65,6 @@ typedef struct {
+
+ DirectStream *stream;
+
+- AVIOContext pb;
+ AVFormatContext *ctx;
+ AVStream *st;
+ void *iobuf;
+@@ -1191,16 +1190,8 @@ Construct( IFusionSoundMusicProvider *th
+ return D_OOM();
+ }
+
+- if (init_put_byte( &data->pb, data->iobuf, 4096, 0,
+- (void*)data, av_read_callback, NULL,
+- direct_stream_seekable( stream ) ? av_seek_callback : NULL ) < 0) {
+- D_ERROR( "IFusionSoundMusicProvider_FFmpeg: init_put_byte() failed!\n" );
+- IFusionSoundMusicProvider_FFmpeg_Destruct( thiz );
+- return DFB_INIT;
+- }
+-
+- if (av_open_input_stream( &data->ctx, &data->pb, filename, fmt, NULL ) < 0) {
+- D_ERROR( "IFusionSoundMusicProvider_FFmpeg: av_open_input_stream() failed!\n" );
++ if (avformat_open_input( &data->ctx, filename, fmt, NULL ) < 0) {
++ D_ERROR( "IFusionSoundMusicProvider_FFmpeg: avformat_open_input() failed!\n" );
+ IFusionSoundMusicProvider_FFmpeg_Destruct( thiz );
+ return DFB_FAILURE;
+ }
diff --git a/media-libs/FusionSound/files/FusionSound-1.1.1-segfault.patch b/media-libs/FusionSound/files/FusionSound-1.1.1-segfault.patch
new file mode 100644
index 000000000000..52b96b0bfc37
--- /dev/null
+++ b/media-libs/FusionSound/files/FusionSound-1.1.1-segfault.patch
@@ -0,0 +1,24 @@
+Fixes a segfault on probe.
+
+Index: FusionSound-1.1.1/interfaces/IFusionSoundMusicProvider/ifusionsoundmusicprovider_ffmpeg.c
+===================================================================
+--- FusionSound-1.1.1.orig/interfaces/IFusionSoundMusicProvider/ifusionsoundmusicprovider_ffmpeg.c
++++ FusionSound-1.1.1/interfaces/IFusionSoundMusicProvider/ifusionsoundmusicprovider_ffmpeg.c
+@@ -1138,7 +1138,7 @@ IFusionSoundMusicProvider_FFmpeg_WaitSta
+ static DFBResult
+ Probe( IFusionSoundMusicProvider_ProbeContext *ctx )
+ {
+- AVProbeData pd;
++ AVProbeData pd = { 0 };
+ AVInputFormat *format;
+
+ av_register_all();
+@@ -1165,7 +1165,7 @@ Construct( IFusionSoundMusicProvider *th
+ const char *filename,
+ DirectStream *stream )
+ {
+- AVProbeData pd;
++ AVProbeData pd = { 0 };
+ AVInputFormat *fmt;
+ AVCodec *c;
+ unsigned char buf[64];
diff --git a/media-libs/FusionSound/metadata.xml b/media-libs/FusionSound/metadata.xml
new file mode 100644
index 000000000000..5e71b4c24efb
--- /dev/null
+++ b/media-libs/FusionSound/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>sound</herd>
+ <maintainer>
+ <email>hd_brummy@gentoo.org</email>
+ <name>Joerg Bornkessel</name>
+ </maintainer>
+</pkgmetadata>