diff options
author | root <root@rshg054.dnsready.net> | 2013-08-13 01:33:19 -0700 |
---|---|---|
committer | root <root@rshg054.dnsready.net> | 2013-08-13 01:33:19 -0700 |
commit | 7a65a910b77ad191d69881098c47f9b0c852d92e (patch) | |
tree | 9564e611af1442f8952a8cbddb3b0ad25ed71aab /community/freerdp | |
parent | 60da6abff6c9577a783d72865f11de7a585e912e (diff) |
Tue Aug 13 01:31:08 PDT 2013
Diffstat (limited to 'community/freerdp')
-rw-r--r-- | community/freerdp/PKGBUILD | 41 | ||||
-rw-r--r-- | community/freerdp/ffmpeg2.0.patch | 76 | ||||
-rw-r--r-- | community/freerdp/freerdp.changelog | 2 |
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). |