summaryrefslogtreecommitdiff
path: root/community/freerdp
diff options
context:
space:
mode:
Diffstat (limited to 'community/freerdp')
-rw-r--r--community/freerdp/PKGBUILD41
-rw-r--r--community/freerdp/ffmpeg2.0.patch76
-rw-r--r--community/freerdp/freerdp.changelog2
3 files changed, 119 insertions, 0 deletions
diff --git a/community/freerdp/PKGBUILD b/community/freerdp/PKGBUILD
new file mode 100644
index 000000000..7f6f85ca4
--- /dev/null
+++ b/community/freerdp/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 94879 2013-08-01 06:54:53Z bpiotrowski $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Stijn Segers <francesco dot borromini at gmail dot com>
+
+pkgname=freerdp
+pkgver=1.0.2
+pkgrel=3
+pkgdesc="Free RDP client"
+arch=('i686' 'x86_64')
+url="http://freerdp.sourceforge.net"
+license=('GPL')
+depends=('openssl' 'libxcursor' 'libcups' 'alsa-lib' 'libxext' 'libxdamage'
+ 'ffmpeg' 'libxkbfile' 'libxinerama' 'libxv' 'libpulse')
+makedepends=('krb5' 'cmake' 'damageproto' 'xmlto' 'docbook-xsl')
+conflicts=('freerdp-git')
+changelog=${pkgname}.changelog
+options=('!libtool')
+source=($pkgname-$pkgver.tar.gz::https://github.com/FreeRDP/FreeRDP/archive/$pkgver.tar.gz
+ ffmpeg2.0.patch)
+md5sums=('c260051a94caff590def5caa4fcf59d6'
+ '1260eecf01ea5212e2db8ac9c5e7fa6d')
+
+prepare() {
+ cd $srcdir/FreeRDP-$pkgver
+ patch -Np1 -i ../ffmpeg2.0.patch
+}
+
+build() {
+ cd $srcdir/FreeRDP-$pkgver
+ cmake \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DWITH_PULSEAUDIO=ON \
+ .
+ make
+}
+
+package() {
+ cd $srcdir/FreeRDP-$pkgver
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/freerdp/ffmpeg2.0.patch b/community/freerdp/ffmpeg2.0.patch
new file mode 100644
index 000000000..bc9022da4
--- /dev/null
+++ b/community/freerdp/ffmpeg2.0.patch
@@ -0,0 +1,76 @@
+diff -rupN a/channels/drdynvc/tsmf/ffmpeg/tsmf_ffmpeg.c b/channels/drdynvc/tsmf/ffmpeg/tsmf_ffmpeg.c
+--- a/channels/drdynvc/tsmf/ffmpeg/tsmf_ffmpeg.c 2013-01-02 22:46:59.000000000 +0100
++++ b/channels/drdynvc/tsmf/ffmpeg/tsmf_ffmpeg.c 2013-07-22 18:12:18.001576713 +0200
+@@ -28,6 +28,8 @@
+ #include "tsmf_constants.h"
+ #include "tsmf_decoder.h"
+
++#define AVCODEC_MAX_AUDIO_FRAME_SIZE 192000
++
+ /* Compatibility with older FFmpeg */
+ #if LIBAVUTIL_VERSION_MAJOR < 50
+ #define AVMEDIA_TYPE_VIDEO 0
+@@ -39,7 +41,7 @@ typedef struct _TSMFFFmpegDecoder
+ ITSMFDecoder iface;
+
+ int media_type;
+- enum CodecID codec_id;
++ enum AVCodecID codec_id;
+ AVCodecContext* codec_context;
+ AVCodec* codec;
+ AVFrame* frame;
+@@ -54,7 +56,7 @@ static boolean tsmf_ffmpeg_init_context(
+ {
+ TSMFFFmpegDecoder* mdecoder = (TSMFFFmpegDecoder*) decoder;
+
+- mdecoder->codec_context = avcodec_alloc_context();
++ mdecoder->codec_context = avcodec_alloc_context3(NULL);
+ if (!mdecoder->codec_context)
+ {
+ DEBUG_WARN("avcodec_alloc_context failed.");
+@@ -88,16 +90,6 @@ static boolean tsmf_ffmpeg_init_audio_st
+ mdecoder->codec_context->channels = media_type->Channels;
+ mdecoder->codec_context->block_align = media_type->BlockAlign;
+
+-#ifdef AV_CPU_FLAG_SSE2
+- mdecoder->codec_context->dsp_mask = AV_CPU_FLAG_SSE2 | AV_CPU_FLAG_MMX2;
+-#else
+-#if LIBAVCODEC_VERSION_MAJOR < 53
+- mdecoder->codec_context->dsp_mask = FF_MM_SSE2 | FF_MM_MMXEXT;
+-#else
+- mdecoder->codec_context->dsp_mask = FF_MM_SSE2 | FF_MM_MMX2;
+-#endif
+-#endif
+-
+ return true;
+ }
+
+@@ -174,7 +166,7 @@ static boolean tsmf_ffmpeg_prepare(ITSMF
+ {
+ TSMFFFmpegDecoder* mdecoder = (TSMFFFmpegDecoder*) decoder;
+
+- if (avcodec_open(mdecoder->codec_context, mdecoder->codec) < 0)
++ if (avcodec_open2(mdecoder->codec_context, mdecoder->codec, NULL) < 0)
+ {
+ DEBUG_WARN("avcodec_open failed.");
+ return false;
+@@ -372,8 +364,9 @@ static boolean tsmf_ffmpeg_decode_audio(
+ av_init_packet(&pkt);
+ pkt.data = (uint8*) src;
+ pkt.size = src_size;
+- len = avcodec_decode_audio3(mdecoder->codec_context,
+- (int16_t*) dst, &frame_size, &pkt);
++ AVFrame * frame = avcodec_alloc_frame ();
++ len = avcodec_decode_audio4(mdecoder->codec_context,
++ frame, &frame_size, &pkt);
+ }
+ #endif
+ if (len <= 0 || frame_size <= 0)
+@@ -499,7 +492,6 @@ TSMFDecoderEntry(void)
+
+ if (!initialized)
+ {
+- avcodec_init();
+ avcodec_register_all();
+ initialized = true;
+ }
diff --git a/community/freerdp/freerdp.changelog b/community/freerdp/freerdp.changelog
new file mode 100644
index 000000000..d47f165c3
--- /dev/null
+++ b/community/freerdp/freerdp.changelog
@@ -0,0 +1,2 @@
+0.7.1-1 to 0.7.1-2
+* Added x86_64 to supported architectures (tested by figue).