[packages/freerdp] Revert "- up to 2.0 devel version (git snapshot) due to problems with compatibility with modern RDP
qboosh
qboosh at pld-linux.org
Sun Jul 3 14:14:51 CEST 2016
commit 082279eff17c54a11e9ee1c040e05ec83e76a8b9
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date: Sun Jul 3 14:10:58 2016 +0200
Revert "- up to 2.0 devel version (git snapshot) due to problems with compatibility with modern RDP servers on stable version"
freerdp 2.0 snapshots with libs parallel-installable with freerdp 1.x continued in freerdp2.spec.
This reverts commit e2f5e56915b3412fe15b23b52f8a9cfd31a9a6d8.
ffmpeg3.patch | 96 +++++++++++++++++
freerdp-DirectFB-include.patch | 10 --
freerdp-ffmpeg.patch | 72 +++++++++++++
freerdp.spec | 228 ++++++++++++++++++++++++++++-------------
4 files changed, 324 insertions(+), 82 deletions(-)
---
diff --git a/freerdp.spec b/freerdp.spec
index cda8648..5360851 100644
--- a/freerdp.spec
+++ b/freerdp.spec
@@ -1,34 +1,28 @@
-# TODO:
-# - fix DirectFB client build
-# - consider coexisting freerdp 1.x and 2.0 (some apps require 1.x version, e.g. vlc)
#
# Conditional build:
%bcond_without alsa # ALSA sound support
%bcond_without cups # CUPS printing support
-%bcond_with directfb # DirectFB client
+%bcond_without directfb # DirectFB client
%bcond_without ffmpeg # FFmpeg audio/video decoding support
%bcond_without pcsc # SmartCard support via PCSC-lite library
%bcond_without pulseaudio # Pulseaudio sound support
-%bcond_without wayland # Wayland client
%bcond_without x11 # X11 client
%bcond_with sse2 # SSE2 instructions
%ifarch %{x8664} pentium4
%define with_sse2 1
%endif
-%define rel 1
-%define snap 20160519
Summary: Remote Desktop Protocol client
Summary(pl.UTF-8): Klient protokołu RDP
Name: freerdp
-Version: 2.0.0
-Release: 0.%{snap}.%{rel}
+Version: 1.0.2
+Release: 6
License: Apache v2.0
Group: Applications/Communications
-# https://github.com/FreeRDP/FreeRDP/archive/master.tar.gz
-Source0: %{name}-%{version}-%{snap}.tar.gz
-# Source0-md5: ba0d58f19e6a2bd3ca1ac88593c7ed80
-Patch0: freerdp-DirectFB-include.patch
+Source0: http://pub.freerdp.com/releases/%{name}-%{version}.tar.gz
+# Source0-md5: 08f0e07d8d77e142f7dc39e4033a458d
+Patch0: %{name}-ffmpeg.patch
+Patch1: ffmpeg3.patch
URL: http://www.freerdp.com/
%{?with_directfb:BuildRequires: DirectFB-devel}
%{?with_alsa:BuildRequires: alsa-lib-devel}
@@ -40,8 +34,6 @@ BuildRequires: openssl-devel
%{?with_pcsc:BuildRequires: pcsc-lite-devel}
BuildRequires: pkgconfig
%{?with_pulseaudio:BuildRequires: pulseaudio-devel}
-%{?with_wayland:BuildRequires: wayland-devel}
-%if %{with x11}
BuildRequires: xmlto
BuildRequires: xorg-lib-libX11-devel
BuildRequires: xorg-lib-libXcursor-devel
@@ -52,12 +44,11 @@ BuildRequires: xorg-lib-libXinerama-devel
BuildRequires: xorg-lib-libXtst-devel
BuildRequires: xorg-lib-libXv-devel
BuildRequires: xorg-lib-libxkbfile
-%endif
BuildRequires: zlib-devel
Requires: %{name}-libs = %{version}-%{release}
+Requires: %{name}-plugins = %{version}-%{release}
Requires: hicolor-icon-theme
Provides: xfreerdp = %{version}-%{release}
-Conflicts: xfreerdp < 2.0.0
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
@@ -79,6 +70,7 @@ Summary: DirectFB based Remote Desktop Protocol klient
Summary(pl.UTF-8): Klient protokołu RDP oparty na DirectFB
Group: Applications/Communications
Requires: %{name}-libs = %{version}-%{release}
+Requires: %{name}-plugins = %{version}-%{release}
%description dfb
DirectFB based Remote Desktop Protocol klient.
@@ -128,9 +120,75 @@ that use FreeRDP libraries.
Ten pakiet zawiera pliki nagłówkowe do tworzenia aplikacji
wykorzystujących biblioteki FreeRDP.
+%package plugins
+Summary: Plugins for handling the standard RDP channels
+Summary(pl.UTF-8): Wtyczki do obsługi standardowych kanałów RDP
+Group: Applications/Communications
+Requires: %{name}-libs = %{version}-%{release}
+
+%description plugins
+A set of plugins to the channel manager implementing the standard
+virtual channels extending RDP core functionality. For instance,
+sounds, clipboard sync, disk/printer redirection, etc.
+
+%description plugins -l pl.UTF-8
+Zestaw wtyczek zarządcy kanałów, implementujących standardowe
+kanały wirtualne rozszerzające podstawową funkcjonalność RDP -
+na przykład dźwięk, synchronizację schowka, przekierowanie
+dysku/drukarki.
+
+%package plugins-alsa
+Summary: ALSA plugins for handling RDP audio
+Summary(pl.UTF-8): Wtyczki ALSA do obsługi dźwięku RDP
+Group: Libraries
+Requires: %{name}-plugins = %{version}-%{release}
+
+%description plugins-alsa
+ALSA plugins for handling RDP audio.
+
+%description plugins-alsa -l pl.UTF-8
+Wtyczki ALSA do obsługi dźwięku RDP.
+
+%package plugins-ffmpeg
+Summary: FFmpeg plugin for decoding RDP audio/video
+Summary(pl.UTF-8): Wtyczka FFmpeg do dekodowania dźwięku/obrazu RDP
+Group: Libraries
+Requires: %{name}-plugins = %{version}-%{release}
+
+%description plugins-ffmpeg
+FFmpeg plugin for decoding RDP audio/video.
+
+%description plugins-ffmpeg -l pl.UTF-8
+Wtyczka FFmpeg do dekodowania dźwięku/obrazu RDP.
+
+%package plugins-pcsc
+Summary: PC/SC plugin for RDP smartcard support
+Summary(pl.UTF-8): Wtyczka PC/SC do obsługi kart procesorowych w RDP
+Group: Libraries
+Requires: %{name}-plugins = %{version}-%{release}
+
+%description plugins-pcsc
+PC/SC plugin for RDP smartcard support.
+
+%description plugins-pcsc -l pl.UTF-8
+Wtyczka PC/SC do obsługi kart procesorowych w RDP.
+
+%package plugins-pulse
+Summary: PulseAudio plugins for handling RDP audio
+Summary(pl.UTF-8): Wtyczki PulseAudio do obsługi dźwięku RDP
+Group: Libraries
+Requires: %{name}-plugins = %{version}-%{release}
+
+%description plugins-pulse
+PulseAudio plugins for handling RDP audio.
+
+%description plugins-pulse -l pl.UTF-8
+Wtyczki PulseAudio do obsługi dźwięku RDP.
+
%prep
-%setup -q -n FreeRDP-master
+%setup -q
%patch0 -p1
+%patch1 -p1
cat << EOF > xfreerdp.desktop
[Desktop Entry]
@@ -150,17 +208,16 @@ install -d build
cd build
%cmake .. \
-DCMAKE_INSTALL_LIBDIR:PATH=%{_lib} \
- %{?with_alsa:-DWITH_ALSA=ON}%{!?with_alsa:-DWITH_ALSA=OFF} \
+ %{!?with_alsa:-DWITH_ALSA=OFF} \
-DWITH_CUNIT=OFF \
- %{?with_cups:-DWITH_CUPS=ON}%{!?with_cups:-DWITH_CUPS=OFF} \
- %{?with_directfb:-DWITH_DIRECTFB=ON}%{!?with_directfb:-DWITH_DIRECTFB=OFF} \
- %{?with_ffmpeg:-DWITH_FFMPEG=ON}%{!?with_ffmpeg:-DWITH_FFMPEG=OFF} \
- %{?with_pcsc:-DWITH_PCSC=ON}%{!?with_pcsc:-DWITH_PCSC=OFF} \
- %{?with_pulseaudio:-DWITH_PULSE=ON}%{!?with_pulseaudio:-DWITH_PULSE=OFF} \
+ %{!?with_cups:-DWITH_CUPS=OFF} \
+ %{?with_directfb:-DWITH_DIRECTFB=ON} \
+ %{!?with_ffmpeg:-DWITH_FFMPEG=OFF} \
+ %{?with_pcsc:-DWITH_PCSC=ON} \
+ %{?with_pulseaudio:-DWITH_PULSEAUDIO=ON} \
-DWITH_SERVER=ON \
- %{?with_sse2:-DWITH_SSE2=ON}%{!?with_sse2:-DWITH_SSE2=OFF} \
- %{?with_wayland:-DWITH_X11=ON}%{!?with_wayland:-DWITH_X11=OFF} \
- %{?with_x11:-DWITH_X11=ON}%{!?with_x11:-DWITH_X11=OFF} \
+ %{!?with_sse2:-DWITH_SSE2=OFF} \
+ -DWITH_X11=ON \
-DWITH_XCURSOR=ON \
-DWITH_XEXT=ON \
-DWITH_XINERAMA=ON \
@@ -175,7 +232,8 @@ rm -rf $RPM_BUILD_ROOT
INSTALL="install -p" \
DESTDIR=$RPM_BUILD_ROOT
-%{__rm} -r $RPM_BUILD_ROOT%{_libdir}/cmake
+# No need for keymap files when using xkbfile
+%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/freerdp
desktop-file-install --dir=$RPM_BUILD_ROOT%{_desktopdir} xfreerdp.desktop
install -p -D resources/FreeRDP_Icon_256px.png $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/256x256/apps/%{name}.png
@@ -194,62 +252,88 @@ rm -rf $RPM_BUILD_ROOT
%files
%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/freerdp-shadow-cli
-%if %{with wayland}
-%attr(755,root,root) %{_bindir}/wlfreerdp
-%endif
-%if %{with x11}
%attr(755,root,root) %{_bindir}/xfreerdp
-%endif
-%attr(755,root,root) %{_bindir}/winpr-hash
-%attr(755,root,root) %{_bindir}/winpr-makecert
%{_mandir}/man1/xfreerdp.1*
%{_desktopdir}/xfreerdp.desktop
%{_iconsdir}/hicolor/256x256/apps/freerdp.png
-%if %{with directfb}
%files dfb
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/dfreerdp
-%endif
%files libs
%defattr(644,root,root,755)
%doc ChangeLog README
-%attr(755,root,root) %{_libdir}/libfreerdp-client.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libfreerdp-client.so.2
-%attr(755,root,root) %{_libdir}/libfreerdp-server.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libfreerdp-server.so.2
-%attr(755,root,root) %{_libdir}/libfreerdp-shadow.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libfreerdp-shadow.so.2
-%attr(755,root,root) %{_libdir}/libfreerdp-shadow-subsystem.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libfreerdp-shadow-subsystem.so.2
-%attr(755,root,root) %{_libdir}/libfreerdp.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libfreerdp.so.2
-%attr(755,root,root) %{_libdir}/libuwac.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libuwac.so.0
-%attr(755,root,root) %{_libdir}/libwinpr.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libwinpr.so.2
-%attr(755,root,root) %{_libdir}/libwinpr-tools.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libwinpr-tools.so.2
+%attr(755,root,root) %{_libdir}/libfreerdp-cache.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libfreerdp-cache.so.1.0
+%attr(755,root,root) %{_libdir}/libfreerdp-channels.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libfreerdp-channels.so.1.0
+%attr(755,root,root) %{_libdir}/libfreerdp-codec.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libfreerdp-codec.so.1.0
+%attr(755,root,root) %{_libdir}/libfreerdp-core.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libfreerdp-core.so.1.0
+%attr(755,root,root) %{_libdir}/libfreerdp-gdi.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libfreerdp-gdi.so.1.0
+%attr(755,root,root) %{_libdir}/libfreerdp-kbd.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libfreerdp-kbd.so.1.0
+%attr(755,root,root) %{_libdir}/libfreerdp-rail.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libfreerdp-rail.so.1.0
+%attr(755,root,root) %{_libdir}/libfreerdp-utils.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libfreerdp-utils.so.1.0
+%dir %{_libdir}/%{name}
%files devel
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libfreerdp-client.so
-%attr(755,root,root) %{_libdir}/libfreerdp-server.so
-%attr(755,root,root) %{_libdir}/libfreerdp-shadow.so
-%attr(755,root,root) %{_libdir}/libfreerdp-shadow-subsystem.so
-%attr(755,root,root) %{_libdir}/libfreerdp.so
-%attr(755,root,root) %{_libdir}/libuwac.so
-%attr(755,root,root) %{_libdir}/libwinpr.so
-%attr(755,root,root) %{_libdir}/libwinpr-tools.so
-%{_includedir}/freerdp2
-%{_includedir}/uwac0
-%{_includedir}/winpr2
-%{_pkgconfigdir}/freerdp-client2.pc
-%{_pkgconfigdir}/freerdp-server2.pc
-%{_pkgconfigdir}/freerdp-shadow2.pc
-%{_pkgconfigdir}/freerdp2.pc
-%{_pkgconfigdir}/uwac0.pc
-%{_pkgconfigdir}/winpr-tools2.pc
-%{_pkgconfigdir}/winpr2.pc
+%attr(755,root,root) %{_libdir}/libfreerdp-cache.so
+%attr(755,root,root) %{_libdir}/libfreerdp-channels.so
+%attr(755,root,root) %{_libdir}/libfreerdp-codec.so
+%attr(755,root,root) %{_libdir}/libfreerdp-core.so
+%attr(755,root,root) %{_libdir}/libfreerdp-gdi.so
+%attr(755,root,root) %{_libdir}/libfreerdp-kbd.so
+%attr(755,root,root) %{_libdir}/libfreerdp-rail.so
+%attr(755,root,root) %{_libdir}/libfreerdp-utils.so
+%{_includedir}/freerdp
+%{_pkgconfigdir}/freerdp.pc
+
+%files plugins
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/%{name}/audin.so
+%attr(755,root,root) %{_libdir}/%{name}/cliprdr.so
+%attr(755,root,root) %{_libdir}/%{name}/disk.so
+%attr(755,root,root) %{_libdir}/%{name}/drdynvc.so
+%attr(755,root,root) %{_libdir}/%{name}/parallel.so
+%attr(755,root,root) %{_libdir}/%{name}/printer.so
+%attr(755,root,root) %{_libdir}/%{name}/rail.so
+%attr(755,root,root) %{_libdir}/%{name}/rdpdbg.so
+%attr(755,root,root) %{_libdir}/%{name}/rdpdr.so
+%attr(755,root,root) %{_libdir}/%{name}/rdpsnd.so
+%attr(755,root,root) %{_libdir}/%{name}/serial.so
+%attr(755,root,root) %{_libdir}/%{name}/tsmf.so
+
+%if %{with alsa}
+%files plugins-alsa
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/%{name}/audin_alsa.so
+%attr(755,root,root) %{_libdir}/%{name}/rdpsnd_alsa.so
+%attr(755,root,root) %{_libdir}/%{name}/tsmf_alsa.so
+%endif
+
+%if %{with ffmpeg}
+%files plugins-ffmpeg
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/%{name}/tsmf_ffmpeg.so
+%endif
+
+%if %{with pcsc}
+%files plugins-pcsc
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/%{name}/scard.so
+%endif
+
+%if %{with pulseaudio}
+%files plugins-pulse
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/%{name}/audin_pulse.so
+%attr(755,root,root) %{_libdir}/%{name}/rdpsnd_pulse.so
+%attr(755,root,root) %{_libdir}/%{name}/tsmf_pulse.so
+%endif
diff --git a/ffmpeg3.patch b/ffmpeg3.patch
new file mode 100644
index 0000000..c084c21
--- /dev/null
+++ b/ffmpeg3.patch
@@ -0,0 +1,96 @@
+diff -ur freerdp-1.0.2/channels/drdynvc/tsmf/ffmpeg/tsmf_ffmpeg.c freerdp-1.0.2.ffmpeg/channels/drdynvc/tsmf/ffmpeg/tsmf_ffmpeg.c
+--- freerdp-1.0.2/channels/drdynvc/tsmf/ffmpeg/tsmf_ffmpeg.c 2016-04-04 21:17:22.515023232 +0900
++++ freerdp-1.0.2.ffmpeg/channels/drdynvc/tsmf/ffmpeg/tsmf_ffmpeg.c 2016-04-04 21:16:59.521188035 +0900
+@@ -193,28 +193,28 @@
+ switch (media_type->SubType)
+ {
+ case TSMF_SUB_TYPE_WVC1:
+- mdecoder->codec_id = CODEC_ID_VC1;
++ mdecoder->codec_id = AV_CODEC_ID_VC1;
+ break;
+ case TSMF_SUB_TYPE_WMA2:
+- mdecoder->codec_id = CODEC_ID_WMAV2;
++ mdecoder->codec_id = AV_CODEC_ID_WMAV2;
+ break;
+ case TSMF_SUB_TYPE_WMA9:
+- mdecoder->codec_id = CODEC_ID_WMAPRO;
++ mdecoder->codec_id = AV_CODEC_ID_WMAPRO;
+ break;
+ case TSMF_SUB_TYPE_MP3:
+- mdecoder->codec_id = CODEC_ID_MP3;
++ mdecoder->codec_id = AV_CODEC_ID_MP3;
+ break;
+ case TSMF_SUB_TYPE_MP2A:
+- mdecoder->codec_id = CODEC_ID_MP2;
++ mdecoder->codec_id = AV_CODEC_ID_MP2;
+ break;
+ case TSMF_SUB_TYPE_MP2V:
+- mdecoder->codec_id = CODEC_ID_MPEG2VIDEO;
++ mdecoder->codec_id = AV_CODEC_ID_MPEG2VIDEO;
+ break;
+ case TSMF_SUB_TYPE_WMV3:
+- mdecoder->codec_id = CODEC_ID_WMV3;
++ mdecoder->codec_id = AV_CODEC_ID_WMV3;
+ break;
+ case TSMF_SUB_TYPE_AAC:
+- mdecoder->codec_id = CODEC_ID_AAC;
++ mdecoder->codec_id = AV_CODEC_ID_AAC;
+ /* For AAC the pFormat is a HEAACWAVEINFO struct, and the codec data
+ is at the end of it. See
+ http://msdn.microsoft.com/en-us/library/dd757806.aspx */
+@@ -226,10 +226,10 @@
+ break;
+ case TSMF_SUB_TYPE_H264:
+ case TSMF_SUB_TYPE_AVC1:
+- mdecoder->codec_id = CODEC_ID_H264;
++ mdecoder->codec_id = AV_CODEC_ID_H264;
+ break;
+ case TSMF_SUB_TYPE_AC3:
+- mdecoder->codec_id = CODEC_ID_AC3;
++ mdecoder->codec_id = AV_CODEC_ID_AC3;
+ break;
+ default:
+ return false;
+@@ -351,19 +351,29 @@
+ }
+ dst += mdecoder->decoded_size;
+ }
++
+ frame_size = mdecoder->decoded_size_max - mdecoder->decoded_size;
+ #if LIBAVCODEC_VERSION_MAJOR < 52 || (LIBAVCODEC_VERSION_MAJOR == 52 && LIBAVCODEC_VERSION_MINOR <= 20)
+ len = avcodec_decode_audio2(mdecoder->codec_context,
+- (int16_t*) dst, &frame_size,
+- src, src_size);
++ (int16_t*) dst, &frame_size, src, src_size);
+ #else
+ {
++ AVFrame* decoded_frame = avcodec_alloc_frame();
++ int got_frame = 0;
+ AVPacket pkt;
+ 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);
++ len = avcodec_decode_audio4(mdecoder->codec_context, decoded_frame, &got_frame, &pkt);
++
++ if (len >= 0 && got_frame)
++ {
++ frame_size = av_samples_get_buffer_size(NULL, mdecoder->codec_context->channels,
++ decoded_frame->nb_samples, mdecoder->codec_context->sample_fmt, 1);
++ memcpy(dst, decoded_frame->data[0], frame_size);
++ }
++
++ av_free(decoded_frame);
+ }
+ #endif
+ if (len <= 0 || frame_size <= 0)
+@@ -435,7 +445,7 @@
+
+ switch (mdecoder->codec_context->pix_fmt)
+ {
+- case PIX_FMT_YUV420P:
++ case AV_PIX_FMT_YUV420P:
+ return RDP_PIXFMT_I420;
+
+ default:
diff --git a/freerdp-DirectFB-include.patch b/freerdp-DirectFB-include.patch
deleted file mode 100644
index 088e284..0000000
--- a/freerdp-DirectFB-include.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- FreeRDP-master/client/DirectFB/dfreerdp.c.orig 2016-05-18 17:30:25.000000000 +0200
-+++ FreeRDP-master/client/DirectFB/dfreerdp.c 2016-05-19 14:33:25.427474854 +0200
-@@ -23,7 +23,6 @@
-
- #include <freerdp/freerdp.h>
- #include <freerdp/constants.h>
--#include <freerdp/utils/event.h>
-
- #include <freerdp/client/file.h>
- #include <freerdp/client/cmdline.h>
diff --git a/freerdp-ffmpeg.patch b/freerdp-ffmpeg.patch
new file mode 100644
index 0000000..ebf0c2d
--- /dev/null
+++ b/freerdp-ffmpeg.patch
@@ -0,0 +1,72 @@
+--- freerdp-1.0.2/channels/drdynvc/tsmf/ffmpeg/tsmf_ffmpeg.c.orig 2013-01-02 22:46:59.000000000 +0100
++++ freerdp-1.0.2/channels/drdynvc/tsmf/ffmpeg/tsmf_ffmpeg.c 2013-09-26 18:29:52.693695785 +0200
+@@ -39,7 +39,7 @@
+ ITSMFDecoder iface;
+
+ int media_type;
+- enum CodecID codec_id;
++ enum AVCodecID codec_id;
+ AVCodecContext* codec_context;
+ AVCodec* codec;
+ AVFrame* frame;
+@@ -54,7 +54,7 @@
+ {
+ 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 +88,6 @@
+ 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 +164,7 @@
+ {
+ 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;
+@@ -337,7 +327,7 @@
+ #endif
+
+ if (mdecoder->decoded_size_max == 0)
+- mdecoder->decoded_size_max = AVCODEC_MAX_AUDIO_FRAME_SIZE + 16;
++ mdecoder->decoded_size_max = 192000 /* AVCODEC_MAX_AUDIO_FRAME_SIZE */ + 16;
+ mdecoder->decoded_data = xzalloc(mdecoder->decoded_size_max);
+ /* align the memory for SSE2 needs */
+ dst = (uint8*) (((uintptr_t)mdecoder->decoded_data + 15) & ~ 0x0F);
+@@ -348,7 +338,7 @@
+ while (src_size > 0)
+ {
+ /* Ensure enough space for decoding */
+- if (mdecoder->decoded_size_max - mdecoder->decoded_size < AVCODEC_MAX_AUDIO_FRAME_SIZE)
++ if (mdecoder->decoded_size_max - mdecoder->decoded_size < 192000 /* AVCODEC_MAX_AUDIO_FRAME_SIZE */)
+ {
+ mdecoder->decoded_size_max = mdecoder->decoded_size_max * 2 + 16;
+ mdecoder->decoded_data = xrealloc(mdecoder->decoded_data, mdecoder->decoded_size_max);
+@@ -499,7 +489,6 @@
+
+ if (!initialized)
+ {
+- avcodec_init();
+ avcodec_register_all();
+ initialized = true;
+ }
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/freerdp.git/commitdiff/1b60fb88d451e9dd15e6bf9173885e226a6295d6
More information about the pld-cvs-commit
mailing list