[arch-commits] Commit in freerdp/trunk (PKGBUILD ffmpeg2.0.patch)

Bartłomiej Piotrowski bpiotrowski at nymeria.archlinux.org
Mon Jul 22 16:18:43 UTC 2013


    Date: Monday, July 22, 2013 @ 18:18:43
  Author: bpiotrowski
Revision: 94397

upgpkg: freerdp 1.0.2-3

- rebuild against ffmpeg 2.0

Added:
  freerdp/trunk/ffmpeg2.0.patch
Modified:
  freerdp/trunk/PKGBUILD

-----------------+
 PKGBUILD        |   13 +++++++--
 ffmpeg2.0.patch |   76 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 86 insertions(+), 3 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2013-07-22 15:35:37 UTC (rev 94396)
+++ PKGBUILD	2013-07-22 16:18:43 UTC (rev 94397)
@@ -4,7 +4,7 @@
 
 pkgname=freerdp
 pkgver=1.0.2
-pkgrel=2
+pkgrel=3
 pkgdesc="Free RDP client"
 arch=('i686' 'x86_64')
 url="http://freerdp.sourceforge.net"
@@ -15,9 +15,16 @@
 conflicts=('freerdp-git')
 changelog=${pkgname}.changelog
 options=('!libtool')
-source=($pkgname-$pkgver.tar.gz::https://github.com/FreeRDP/FreeRDP/archive/$pkgver.tar.gz)
-md5sums=('c260051a94caff590def5caa4fcf59d6')
+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 \

Added: ffmpeg2.0.patch
===================================================================
--- ffmpeg2.0.patch	                        (rev 0)
+++ ffmpeg2.0.patch	2013-07-22 16:18:43 UTC (rev 94397)
@@ -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;
+ 	}




More information about the arch-commits mailing list