@@ -27,6 +27,9 @@ def setup():
|
|||||||
-DWITH_SERVER=ON \
|
-DWITH_SERVER=ON \
|
||||||
-DWITH_SWSCALE=ON \
|
-DWITH_SWSCALE=ON \
|
||||||
-DWITH_CHANNELS=ON \
|
-DWITH_CHANNELS=ON \
|
||||||
|
-D UWAC_FORCE_STATIC_BUILD=ON \
|
||||||
|
-D RDTK_FORCE_STATIC_BUILD=ON \
|
||||||
|
-DWITH_BINARY_VERSIONING=ON \
|
||||||
-DWITH_CLIENT_CHANNELS=ON \
|
-DWITH_CLIENT_CHANNELS=ON \
|
||||||
-DWITH_SERVER_CHANNELS=ON \
|
-DWITH_SERVER_CHANNELS=ON \
|
||||||
-DCHANNEL_URBDRC_CLIENT=ON")
|
-DCHANNEL_URBDRC_CLIENT=ON")
|
||||||
|
|||||||
@@ -0,0 +1,91 @@
|
|||||||
|
From d8dc2956e5df589ca0766d88797f1cd4dbb10882 Mon Sep 17 00:00:00 2001
|
||||||
|
From: akallabeth <akallabeth@posteo.net>
|
||||||
|
Date: Tue, 22 Oct 2024 11:02:11 +0200
|
||||||
|
Subject: [PATCH] [codec,color] fix overlapping check
|
||||||
|
|
||||||
|
only consider images that do not contain the same lines not overlapping.
|
||||||
|
Ignore any x offsets as this may lead to alignment problems resulting in
|
||||||
|
invalid overlapping areas.
|
||||||
|
---
|
||||||
|
libfreerdp/codec/color.c | 37 ++++++++++++++-----------------------
|
||||||
|
1 file changed, 14 insertions(+), 23 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/libfreerdp/codec/color.c b/libfreerdp/codec/color.c
|
||||||
|
index 3d4060638c2d..dff567f60647 100644
|
||||||
|
--- a/libfreerdp/codec/color.c
|
||||||
|
+++ b/libfreerdp/codec/color.c
|
||||||
|
@@ -549,22 +549,20 @@ BOOL freerdp_image_copy_from_pointer_data(BYTE* WINPR_RESTRICT pDstData, UINT32
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
-static INLINE BOOL overlapping(const BYTE* pDstData, UINT32 nXDst, UINT32 nYDst, UINT32 nDstStep,
|
||||||
|
- UINT32 dstBytesPerPixel, const BYTE* pSrcData, UINT32 nXSrc,
|
||||||
|
- UINT32 nYSrc, UINT32 nSrcStep, UINT32 srcBytesPerPixel,
|
||||||
|
- UINT32 nWidth, UINT32 nHeight)
|
||||||
|
+static INLINE BOOL overlapping(const BYTE* pDstData, UINT32 nYDst, UINT32 nDstStep,
|
||||||
|
+ const BYTE* pSrcData, UINT32 nYSrc, UINT32 nSrcStep, UINT32 nHeight)
|
||||||
|
{
|
||||||
|
- const BYTE* pDstStart = &pDstData[1ULL * nXDst * dstBytesPerPixel + 1ULL * nYDst * nDstStep];
|
||||||
|
- const BYTE* pDstEnd = pDstStart + 1ULL * nHeight * nDstStep;
|
||||||
|
- const BYTE* pSrcStart = &pSrcData[1ULL * nXSrc * srcBytesPerPixel + 1ULL * nYSrc * nSrcStep];
|
||||||
|
- const BYTE* pSrcEnd = pSrcStart + 1ULL * nHeight * nSrcStep;
|
||||||
|
-
|
||||||
|
- WINPR_UNUSED(nWidth);
|
||||||
|
-
|
||||||
|
- if ((pDstStart >= pSrcStart) && (pDstStart <= pSrcEnd))
|
||||||
|
+ const uintptr_t src = (uintptr_t)pSrcData;
|
||||||
|
+ const uintptr_t srcstart = src + 1ULL * nSrcStep * nYSrc;
|
||||||
|
+ const uintptr_t srcend = srcstart + 1ULL * nSrcStep * nHeight;
|
||||||
|
+ const uintptr_t dst = (uintptr_t)pDstData;
|
||||||
|
+ const uintptr_t dststart = dst + 1ULL * nDstStep * nYDst;
|
||||||
|
+ const uintptr_t dstend = dststart + 1ULL * nDstStep * nHeight;
|
||||||
|
+
|
||||||
|
+ if ((dststart >= srcstart) && (dststart <= srcend))
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
|
- if ((pDstEnd >= pSrcStart) && (pDstEnd <= pSrcEnd))
|
||||||
|
+ if ((dstend >= srcstart) && (dstend <= srcend))
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
@@ -733,8 +731,7 @@ BOOL freerdp_image_copy_overlap(BYTE* pDstData, DWORD DstFormat, UINT32 nDstStep
|
||||||
|
SSIZE_T dstVOffset = 0;
|
||||||
|
SSIZE_T dstVMultiplier = 1;
|
||||||
|
|
||||||
|
- WINPR_ASSERT(overlapping(pDstData, nXDst, nYDst, nDstStep, dstByte, pSrcData, nXSrc, nYSrc,
|
||||||
|
- nSrcStep, srcByte, nWidth, nHeight));
|
||||||
|
+ WINPR_ASSERT(overlapping(pDstData, nYDst, nDstStep, pSrcData, nYSrc, nSrcStep, nHeight));
|
||||||
|
|
||||||
|
if ((nWidth == 0) || (nHeight == 0))
|
||||||
|
return TRUE;
|
||||||
|
@@ -851,9 +848,6 @@ BOOL freerdp_image_copy(BYTE* pDstData, DWORD DstFormat, UINT32 nDstStep, UINT32
|
||||||
|
DWORD SrcFormat, UINT32 nSrcStep, UINT32 nXSrc, UINT32 nYSrc,
|
||||||
|
const gdiPalette* WINPR_RESTRICT palette, UINT32 flags)
|
||||||
|
{
|
||||||
|
- const UINT32 dstByte = FreeRDPGetBytesPerPixel(DstFormat);
|
||||||
|
- const UINT32 srcByte = FreeRDPGetBytesPerPixel(SrcFormat);
|
||||||
|
-
|
||||||
|
if ((nHeight > INT32_MAX) || (nWidth > INT32_MAX))
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
@@ -869,8 +863,7 @@ BOOL freerdp_image_copy(BYTE* pDstData, DWORD DstFormat, UINT32 nDstStep, UINT32
|
||||||
|
if (nSrcStep == 0)
|
||||||
|
nSrcStep = nWidth * FreeRDPGetBytesPerPixel(SrcFormat);
|
||||||
|
|
||||||
|
- const BOOL ovl = overlapping(pDstData, nXDst, nYDst, nDstStep, dstByte, pSrcData, nXSrc, nYSrc,
|
||||||
|
- nSrcStep, srcByte, nWidth, nHeight);
|
||||||
|
+ const BOOL ovl = overlapping(pDstData, nYDst, nDstStep, pSrcData, nYSrc, nSrcStep, nHeight);
|
||||||
|
if (ovl)
|
||||||
|
return freerdp_image_copy_overlap(pDstData, DstFormat, nDstStep, nXDst, nYDst, nWidth,
|
||||||
|
nHeight, pSrcData, SrcFormat, nSrcStep, nXSrc, nYSrc,
|
||||||
|
@@ -1611,9 +1604,7 @@ BOOL freerdp_image_copy_no_overlap(BYTE* WINPR_RESTRICT pDstData, DWORD DstForma
|
||||||
|
if (!prims)
|
||||||
|
prims = primitives_get();
|
||||||
|
|
||||||
|
- WINPR_ASSERT(!overlapping(pDstData, nXDst, nYDst, nDstStep, FreeRDPGetBytesPerPixel(DstFormat),
|
||||||
|
- pSrcData, nXSrc, nYSrc, nSrcStep, FreeRDPGetBytesPerPixel(SrcFormat),
|
||||||
|
- nWidth, nHeight));
|
||||||
|
+ WINPR_ASSERT(!overlapping(pDstData, nYDst, nDstStep, pSrcData, nYSrc, nSrcStep, nHeight));
|
||||||
|
WINPR_ASSERT(prims);
|
||||||
|
WINPR_ASSERT(prims->copy_no_overlap);
|
||||||
|
return prims->copy_no_overlap(pDstData, DstFormat, nDstStep, nXDst, nYDst, nWidth, nHeight,
|
||||||
@@ -1,77 +0,0 @@
|
|||||||
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
diff -u -r -N old/include/freerdp/kbd/vkcodes.h new/include/freerdp/kbd/vkcodes.h
|
|
||||||
--- old/include/freerdp/kbd/vkcodes.h 2013-09-19 12:46:07.124339712 +0200
|
|
||||||
+++ new/include/freerdp/kbd/vkcodes.h 2013-09-19 12:45:51.621005583 +0200
|
|
||||||
@@ -434,7 +434,7 @@
|
|
||||||
{ 0x00, 0, "VK_SEPARATOR" , NULL },
|
|
||||||
{ 0x4A, 0, "VK_SUBTRACT" , "KPSU" },
|
|
||||||
{ 0x53, 0, "VK_DECIMAL" , "KPDL" },
|
|
||||||
- { 0x35, 0, "VK_DIVIDE" , "KPDV" },
|
|
||||||
+ { 0x35, 1, "VK_DIVIDE" , "KPDV" },
|
|
||||||
{ 0x3B, 0, "VK_F1" , "FK01" },
|
|
||||||
{ 0x3C, 0, "VK_F2" , "FK02" },
|
|
||||||
{ 0x3D, 0, "VK_F3" , "FK03" },
|
|
||||||
@@ -12,7 +12,7 @@
|
|||||||
<IsA>app:console</IsA>
|
<IsA>app:console</IsA>
|
||||||
<Summary>A Remote Desktop Implementation</Summary>
|
<Summary>A Remote Desktop Implementation</Summary>
|
||||||
<Description>FreeRDP is a free implementation of the Remote Desktop Protocol (RDP), released under Apacle License.</Description>
|
<Description>FreeRDP is a free implementation of the Remote Desktop Protocol (RDP), released under Apacle License.</Description>
|
||||||
<Archive sha1sum="1186b24d615858f4924ee2daca85cbc4d1613731" type="targz">https://github.com/FreeRDP/FreeRDP/archive/3.8.0.tar.gz</Archive>
|
<Archive sha1sum="30a302c0198b0788922049e663f228cfec9c66df" type="targz">https://github.com/FreeRDP/FreeRDP/archive/3.9.0.tar.gz</Archive>
|
||||||
<BuildDependencies>
|
<BuildDependencies>
|
||||||
<Dependency>pam-devel</Dependency>
|
<Dependency>pam-devel</Dependency>
|
||||||
<Dependency>cups-devel</Dependency>
|
<Dependency>cups-devel</Dependency>
|
||||||
@@ -58,8 +58,7 @@
|
|||||||
<Dependency>pulseaudio-libs-devel</Dependency>
|
<Dependency>pulseaudio-libs-devel</Dependency>
|
||||||
</BuildDependencies>
|
</BuildDependencies>
|
||||||
<Patches>
|
<Patches>
|
||||||
<!-- <Patch level="1">ffmpeg2.0.patch</Patch> -->
|
<Patch level="1">d8dc2956e5df589ca0766d88797f1cd4dbb10882.patch</Patch>
|
||||||
<!-- <Patch level="1">patch_numblock.patch</Patch> -->
|
|
||||||
</Patches>
|
</Patches>
|
||||||
</Source>
|
</Source>
|
||||||
|
|
||||||
@@ -110,9 +109,8 @@
|
|||||||
</RuntimeDependencies>
|
</RuntimeDependencies>
|
||||||
<Files>
|
<Files>
|
||||||
<Path fileType="executable">/usr/bin</Path>
|
<Path fileType="executable">/usr/bin</Path>
|
||||||
<Path fileType="lib">/usr/lib</Path>
|
<Path fileType="library">/usr/lib</Path>
|
||||||
<Path fileType="data">/usr/share/freerdp</Path>
|
<Path fileType="data">/usr/share/FreeRDP3</Path>
|
||||||
<Path fileType="data">/usr/share/FreeRDP</Path>
|
|
||||||
<Path fileType="doc">/usr/share/doc</Path>
|
<Path fileType="doc">/usr/share/doc</Path>
|
||||||
<Path fileType="man">/usr/share/man</Path>
|
<Path fileType="man">/usr/share/man</Path>
|
||||||
</Files>
|
</Files>
|
||||||
@@ -129,11 +127,19 @@
|
|||||||
</RuntimeDependencies>
|
</RuntimeDependencies>
|
||||||
<Files>
|
<Files>
|
||||||
<Path fileType="header">/usr/include</Path>
|
<Path fileType="header">/usr/include</Path>
|
||||||
<Path fileType="lib">/usr/lib/pkgconfig</Path>
|
<Path fileType="library">/usr/lib/cmake</Path>
|
||||||
|
<Path fileType="library">/usr/lib/pkgconfig</Path>
|
||||||
</Files>
|
</Files>
|
||||||
</Package>
|
</Package>
|
||||||
|
|
||||||
<History>
|
<History>
|
||||||
|
<Update release="15">
|
||||||
|
<Date>2024-11-11</Date>
|
||||||
|
<Version>3.9.0</Version>
|
||||||
|
<Comment>Version bump.</Comment>
|
||||||
|
<Name>Pisi Linux Community</Name>
|
||||||
|
<Email>admin@pisilinux.org</Email>
|
||||||
|
</Update>
|
||||||
<Update release="14">
|
<Update release="14">
|
||||||
<Date>2024-10-22</Date>
|
<Date>2024-10-22</Date>
|
||||||
<Version>3.8.0</Version>
|
<Version>3.8.0</Version>
|
||||||
|
|||||||
@@ -0,0 +1,37 @@
|
|||||||
|
#!/usr/bin/python
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
#
|
||||||
|
# Licensed under the GNU General Public License, version 3.
|
||||||
|
# See the file http://www.gnu.org/copyleft/gpl.txt.
|
||||||
|
|
||||||
|
from pisi.actionsapi import pisitools
|
||||||
|
from pisi.actionsapi import cmaketools
|
||||||
|
|
||||||
|
def setup():
|
||||||
|
cmaketools.configure("-DCMAKE_SKIP_RPATH=ON \
|
||||||
|
-DWITH_LIBSYSTEMD=OFF \
|
||||||
|
-DCMAKE_INSTALL_LIBDIR=lib \
|
||||||
|
-DWITH_DSP_FFMPEG=ON \
|
||||||
|
-DWITH_FFMPEG=ON \
|
||||||
|
-DWITH_PULSE=ON \
|
||||||
|
-DWITH_CUPS=ON \
|
||||||
|
-DWITH_PCSC=ON \
|
||||||
|
-DWITH_JPEG=ON \
|
||||||
|
-DWITH_SERVER=ON \
|
||||||
|
-DWITH_SWSCALE=ON \
|
||||||
|
-DWITH_CHANNELS=ON \
|
||||||
|
-DWITH_CLIENT_CHANNELS=ON \
|
||||||
|
-DWITH_SERVER_CHANNELS=ON \
|
||||||
|
-DCHANNEL_URBDRC_CLIENT=ON")
|
||||||
|
|
||||||
|
def build():
|
||||||
|
cmaketools.make()
|
||||||
|
|
||||||
|
def check():
|
||||||
|
pass
|
||||||
|
|
||||||
|
def install():
|
||||||
|
#cmaketools.rawInstall("DESTDIR=%s" % get.installDIR())
|
||||||
|
cmaketools.install()
|
||||||
|
|
||||||
|
pisitools.dodoc("LICENSE", "README*", )
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
From 1ef7b9e3e06ef69e5145c6f11cc330078abaa9ea Mon Sep 17 00:00:00 2001
|
||||||
|
From: Armin Novak <anovak@thincast.com>
|
||||||
|
Date: Fri, 24 Nov 2023 19:40:52 +0100
|
||||||
|
Subject: [PATCH] [codec,dsp] fix ffmpeg deprecation warning
|
||||||
|
|
||||||
|
---
|
||||||
|
libfreerdp/codec/dsp_ffmpeg.c | 8 +++++++-
|
||||||
|
1 file changed, 7 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/libfreerdp/codec/dsp_ffmpeg.c b/libfreerdp/codec/dsp_ffmpeg.c
|
||||||
|
index c5c30fb89ed2..c929b3c553a2 100644
|
||||||
|
--- a/libfreerdp/codec/dsp_ffmpeg.c
|
||||||
|
+++ b/libfreerdp/codec/dsp_ffmpeg.c
|
||||||
|
@@ -439,7 +439,13 @@ static BOOL ffmpeg_encode_frame(AVCodecContext* context, AVFrame* in, AVPacket*
|
||||||
|
if (in->format == AV_SAMPLE_FMT_FLTP)
|
||||||
|
{
|
||||||
|
uint8_t** pp = in->extended_data;
|
||||||
|
- for (int y = 0; y < in->channels; y++)
|
||||||
|
+#if LIBAVUTIL_VERSION_INT < AV_VERSION_INT(57, 28, 100)
|
||||||
|
+ const int nr_channels = in->channels;
|
||||||
|
+#else
|
||||||
|
+ const int nr_channels = in->ch_layout.nb_channels;
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
+ for (int y = 0; y < nr_channels; y++)
|
||||||
|
{
|
||||||
|
float* data = pp[y];
|
||||||
|
for (int x = 0; x < in->nb_samples; x++)
|
||||||
@@ -0,0 +1,140 @@
|
|||||||
|
From d0c5b1ae4289c7f3cde3fbc031cb4a3160df05ff Mon Sep 17 00:00:00 2001
|
||||||
|
From: Armin Novak <armin.novak@thincast.com>
|
||||||
|
Date: Wed, 7 Jun 2023 11:46:07 +0200
|
||||||
|
Subject: [PATCH] [codec,dsp] fix ffmpeg deprecations
|
||||||
|
|
||||||
|
---
|
||||||
|
libfreerdp/codec/dsp_ffmpeg.c | 54 +++++++++++++++++++++++++++--------
|
||||||
|
1 file changed, 42 insertions(+), 12 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/libfreerdp/codec/dsp_ffmpeg.c b/libfreerdp/codec/dsp_ffmpeg.c
|
||||||
|
index 2c93a667750e..ebba52b147d2 100644
|
||||||
|
--- a/libfreerdp/codec/dsp_ffmpeg.c
|
||||||
|
+++ b/libfreerdp/codec/dsp_ffmpeg.c
|
||||||
|
@@ -224,18 +224,17 @@ static void ffmpeg_close_context(FREERDP_DSP_CONTEXT* context)
|
||||||
|
static BOOL ffmpeg_open_context(FREERDP_DSP_CONTEXT* context)
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
- int layout;
|
||||||
|
- const AUDIO_FORMAT* format;
|
||||||
|
|
||||||
|
if (!context || context->isOpen)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
- format = &context->format;
|
||||||
|
+ const AUDIO_FORMAT* format = &context->format;
|
||||||
|
|
||||||
|
if (!format)
|
||||||
|
return FALSE;
|
||||||
|
-
|
||||||
|
- layout = av_get_default_channel_layout(format->nChannels);
|
||||||
|
+#if LIBAVUTIL_VERSION_INT < AV_VERSION_INT(57, 28, 100)
|
||||||
|
+ const int layout = av_get_default_channel_layout(format->nChannels);
|
||||||
|
+#endif
|
||||||
|
context->id = ffmpeg_get_avcodec(format);
|
||||||
|
|
||||||
|
if (ffmpeg_codec_is_filtered(context->id, context->encoder))
|
||||||
|
@@ -271,8 +270,12 @@ static BOOL ffmpeg_open_context(FREERDP_DSP_CONTEXT* context)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
+#if LIBAVUTIL_VERSION_INT < AV_VERSION_INT(57, 28, 100)
|
||||||
|
context->context->channels = format->nChannels;
|
||||||
|
context->context->channel_layout = layout;
|
||||||
|
+#else
|
||||||
|
+ av_channel_layout_default(&context->context->ch_layout, format->nChannels);
|
||||||
|
+#endif
|
||||||
|
context->context->sample_rate = format->nSamplesPerSec;
|
||||||
|
context->context->block_align = format->nBlockAlign;
|
||||||
|
context->context->bit_rate = format->nAvgBytesPerSec * 8;
|
||||||
|
@@ -315,8 +318,12 @@ static BOOL ffmpeg_open_context(FREERDP_DSP_CONTEXT* context)
|
||||||
|
if (!context->rcontext)
|
||||||
|
goto fail;
|
||||||
|
|
||||||
|
+#if LIBAVUTIL_VERSION_INT < AV_VERSION_INT(57, 28, 100)
|
||||||
|
context->frame->channel_layout = layout;
|
||||||
|
context->frame->channels = format->nChannels;
|
||||||
|
+#else
|
||||||
|
+ av_channel_layout_default(&context->frame->ch_layout, format->nChannels);
|
||||||
|
+#endif
|
||||||
|
context->frame->sample_rate = format->nSamplesPerSec;
|
||||||
|
context->frame->format = AV_SAMPLE_FMT_S16;
|
||||||
|
|
||||||
|
@@ -331,13 +338,21 @@ static BOOL ffmpeg_open_context(FREERDP_DSP_CONTEXT* context)
|
||||||
|
context->resampled->sample_rate = format->nSamplesPerSec;
|
||||||
|
}
|
||||||
|
|
||||||
|
+#if LIBAVUTIL_VERSION_INT < AV_VERSION_INT(57, 28, 100)
|
||||||
|
context->resampled->channel_layout = layout;
|
||||||
|
context->resampled->channels = format->nChannels;
|
||||||
|
+#else
|
||||||
|
+ av_channel_layout_default(&context->resampled->ch_layout, format->nChannels);
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
if (context->context->frame_size > 0)
|
||||||
|
{
|
||||||
|
+#if LIBAVUTIL_VERSION_INT < AV_VERSION_INT(57, 28, 100)
|
||||||
|
context->buffered->channel_layout = context->resampled->channel_layout;
|
||||||
|
context->buffered->channels = context->resampled->channels;
|
||||||
|
+#else
|
||||||
|
+ av_channel_layout_copy(&context->buffered->ch_layout, &context->resampled->ch_layout);
|
||||||
|
+#endif
|
||||||
|
context->buffered->format = context->resampled->format;
|
||||||
|
context->buffered->nb_samples = context->context->frame_size;
|
||||||
|
|
||||||
|
@@ -458,14 +473,20 @@ static BOOL ffmpeg_fill_frame(AVFrame* frame, const AUDIO_FORMAT* inputFormat, c
|
||||||
|
size_t size)
|
||||||
|
{
|
||||||
|
int ret, bpp;
|
||||||
|
+#if LIBAVUTIL_VERSION_INT < AV_VERSION_INT(57, 28, 100)
|
||||||
|
frame->channels = inputFormat->nChannels;
|
||||||
|
+ frame->channel_layout = av_get_default_channel_layout(frame->channels);
|
||||||
|
+#else
|
||||||
|
+ av_channel_layout_default(&frame->ch_layout, inputFormat->nChannels);
|
||||||
|
+#endif
|
||||||
|
frame->sample_rate = inputFormat->nSamplesPerSec;
|
||||||
|
frame->format = ffmpeg_sample_format(inputFormat);
|
||||||
|
- frame->channel_layout = av_get_default_channel_layout(frame->channels);
|
||||||
|
+
|
||||||
|
bpp = av_get_bytes_per_sample(frame->format);
|
||||||
|
frame->nb_samples = size / inputFormat->nChannels / bpp;
|
||||||
|
|
||||||
|
- if ((ret = avcodec_fill_audio_frame(frame, frame->channels, frame->format, data, size, 1)) < 0)
|
||||||
|
+ if ((ret = avcodec_fill_audio_frame(frame, inputFormat->nChannels, frame->format, data, size,
|
||||||
|
+ 1)) < 0)
|
||||||
|
{
|
||||||
|
const char* err = av_err2str(ret);
|
||||||
|
WLog_ERR(TAG, "Error during audio frame fill %s [%d]", err, ret);
|
||||||
|
@@ -547,7 +568,12 @@ static BOOL ffmpeg_decode(AVCodecContext* dec_ctx, AVPacket* pkt, AVFrame* frame
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
- const size_t data_size = resampled->channels * resampled->nb_samples * 2;
|
||||||
|
+#if LIBAVUTIL_VERSION_INT < AV_VERSION_INT(57, 28, 100)
|
||||||
|
+ const size_t channels = resampled->channels;
|
||||||
|
+#else
|
||||||
|
+ const size_t channels = resampled->ch_layout.nb_channels;
|
||||||
|
+#endif
|
||||||
|
+ const size_t data_size = channels * resampled->nb_samples * 2;
|
||||||
|
Stream_EnsureRemainingCapacity(out, data_size);
|
||||||
|
Stream_Write(out, resampled->data[0], data_size);
|
||||||
|
}
|
||||||
|
@@ -745,10 +771,14 @@ BOOL freerdp_dsp_ffmpeg_encode(FREERDP_DSP_CONTEXT* context, const AUDIO_FORMAT*
|
||||||
|
if (inSamples + (int)context->bufferedSamples > context->context->frame_size)
|
||||||
|
inSamples = context->context->frame_size - (int)context->bufferedSamples;
|
||||||
|
|
||||||
|
- rc =
|
||||||
|
- av_samples_copy(context->buffered->extended_data, context->resampled->extended_data,
|
||||||
|
- (int)context->bufferedSamples, copied, inSamples,
|
||||||
|
- context->context->channels, context->context->sample_fmt);
|
||||||
|
+#if LIBAVUTIL_VERSION_INT < AV_VERSION_INT(57, 28, 100)
|
||||||
|
+ const int channels = context->context->channels;
|
||||||
|
+#else
|
||||||
|
+ const int channels = context->context->ch_layout.nb_channels;
|
||||||
|
+#endif
|
||||||
|
+ rc = av_samples_copy(context->buffered->extended_data,
|
||||||
|
+ context->resampled->extended_data, (int)context->bufferedSamples,
|
||||||
|
+ copied, inSamples, channels, context->context->sample_fmt);
|
||||||
|
rest -= inSamples;
|
||||||
|
copied += inSamples;
|
||||||
|
context->bufferedSamples += (UINT32)inSamples;
|
||||||
@@ -0,0 +1,118 @@
|
|||||||
|
<?xml version="1.0" ?>
|
||||||
|
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
|
||||||
|
<PISI>
|
||||||
|
<Source>
|
||||||
|
<Name>freerdp2</Name>
|
||||||
|
<Homepage>http://www.freerdp.com</Homepage>
|
||||||
|
<Packager>
|
||||||
|
<Name>Aydın Demirel</Name>
|
||||||
|
<Email>aydin.demirel@pisilinux.org</Email>
|
||||||
|
</Packager>
|
||||||
|
<License>ASF</License>
|
||||||
|
<IsA>app:console</IsA>
|
||||||
|
<Summary>A Remote Desktop Implementation</Summary>
|
||||||
|
<Description>FreeRDP is a free implementation of the Remote Desktop Protocol (RDP), released under Apacle License.</Description>
|
||||||
|
<Archive sha1sum="14a73f092e227a77f3d483658033d15d4501a753" type="targz">https://github.com/FreeRDP/FreeRDP/archive/2.11.7.tar.gz</Archive>
|
||||||
|
<BuildDependencies>
|
||||||
|
<Dependency>pam-devel</Dependency>
|
||||||
|
<Dependency>cups-devel</Dependency>
|
||||||
|
<Dependency>ffmpeg-devel</Dependency>
|
||||||
|
<Dependency>alsa-lib-devel</Dependency>
|
||||||
|
<Dependency>libXinerama-devel</Dependency>
|
||||||
|
<Dependency>xmlto</Dependency>
|
||||||
|
<Dependency>libX11-devel</Dependency>
|
||||||
|
<Dependency>libXi-devel</Dependency>
|
||||||
|
<Dependency>libXcursor-devel</Dependency>
|
||||||
|
<Dependency>libxkbcommon-devel</Dependency>
|
||||||
|
<Dependency>libxkbfile-devel</Dependency>
|
||||||
|
<Dependency>libXv-devel</Dependency>
|
||||||
|
<Dependency>libXrandr-devel</Dependency>
|
||||||
|
<Dependency>gstreamer-devel</Dependency>
|
||||||
|
<Dependency>gst-plugins-base-devel</Dependency>
|
||||||
|
<Dependency>glib2-devel</Dependency>
|
||||||
|
<Dependency>openssl-devel</Dependency>
|
||||||
|
<Dependency>zlib-devel</Dependency>
|
||||||
|
<Dependency>cmake</Dependency>
|
||||||
|
<Dependency>libxslt</Dependency>
|
||||||
|
<Dependency>util-linux</Dependency>
|
||||||
|
<Dependency>wayland-devel</Dependency>
|
||||||
|
<Dependency>libusb-devel</Dependency>
|
||||||
|
<Dependency>libXext-devel</Dependency>
|
||||||
|
<Dependency>libXtst-devel</Dependency>
|
||||||
|
<Dependency>libXfixes-devel</Dependency>
|
||||||
|
<Dependency>libXdamage-devel</Dependency>
|
||||||
|
<Dependency>libjpeg-turbo-devel</Dependency>
|
||||||
|
<Dependency>wayland-client</Dependency>
|
||||||
|
<Dependency>wayland-cursor</Dependency>
|
||||||
|
<Dependency>pulseaudio-libs-devel</Dependency>
|
||||||
|
</BuildDependencies>
|
||||||
|
<Patches>
|
||||||
|
<Patch level="1">d0c5b1ae.patch</Patch>
|
||||||
|
<Patch level="1">1ef7b9e3.patch</Patch>
|
||||||
|
</Patches>
|
||||||
|
</Source>
|
||||||
|
|
||||||
|
<Package>
|
||||||
|
<Name>freerdp2</Name>
|
||||||
|
<RuntimeDependencies>
|
||||||
|
<Dependency>pam</Dependency>
|
||||||
|
<Dependency>cups</Dependency>
|
||||||
|
<Dependency>glib2</Dependency>
|
||||||
|
<Dependency>libXi</Dependency>
|
||||||
|
<Dependency>libXv</Dependency>
|
||||||
|
<Dependency>ffmpeg</Dependency>
|
||||||
|
<Dependency>libX11</Dependency>
|
||||||
|
<Dependency>libusb</Dependency>
|
||||||
|
<Dependency>libXext</Dependency>
|
||||||
|
<Dependency>libXtst</Dependency>
|
||||||
|
<Dependency>openssl</Dependency>
|
||||||
|
<Dependency>alsa-lib</Dependency>
|
||||||
|
<Dependency>libXfixes</Dependency>
|
||||||
|
<Dependency>libXrandr</Dependency>
|
||||||
|
<Dependency>libXcursor</Dependency>
|
||||||
|
<Dependency>libXdamage</Dependency>
|
||||||
|
<Dependency>libXrender</Dependency>
|
||||||
|
<Dependency>libxkbfile</Dependency>
|
||||||
|
<Dependency>libXinerama</Dependency>
|
||||||
|
<Dependency>libxkbcommon</Dependency>
|
||||||
|
<Dependency>libjpeg-turbo</Dependency>
|
||||||
|
<Dependency>wayland-client</Dependency>
|
||||||
|
<Dependency>wayland-cursor</Dependency>
|
||||||
|
<Dependency>pulseaudio-libs</Dependency>
|
||||||
|
<Dependency>gstreamer</Dependency>
|
||||||
|
<Dependency>gst-plugins-base</Dependency>
|
||||||
|
</RuntimeDependencies>
|
||||||
|
<Files>
|
||||||
|
<Path fileType="executable">/usr/bin</Path>
|
||||||
|
<Path fileType="library">/usr/lib</Path>
|
||||||
|
<Path fileType="data">/usr/share/freerdp</Path>
|
||||||
|
<Path fileType="doc">/usr/share/doc</Path>
|
||||||
|
<Path fileType="man">/usr/share/man</Path>
|
||||||
|
</Files>
|
||||||
|
</Package>
|
||||||
|
|
||||||
|
<Package>
|
||||||
|
<Name>freerdp2-devel</Name>
|
||||||
|
<RuntimeDependencies>
|
||||||
|
<Dependency release="current">freerdp2</Dependency>
|
||||||
|
<Dependency>openssl-devel</Dependency>
|
||||||
|
<Dependency>wayland-devel</Dependency>
|
||||||
|
<Dependency>libxkbcommon-devel</Dependency>
|
||||||
|
</RuntimeDependencies>
|
||||||
|
<Files>
|
||||||
|
<Path fileType="header">/usr/include</Path>
|
||||||
|
<Path fileType="library">/usr/lib/cmake</Path>
|
||||||
|
<Path fileType="library">/usr/lib/pkgconfig</Path>
|
||||||
|
</Files>
|
||||||
|
</Package>
|
||||||
|
|
||||||
|
<History>
|
||||||
|
<Update release="1">
|
||||||
|
<Date>2024-11-11</Date>
|
||||||
|
<Version>2.11.7</Version>
|
||||||
|
<Comment>First release</Comment>
|
||||||
|
<Name>Ertuğrul Erata</Name>
|
||||||
|
<Email>ertugrulerata@gmail.com</Email>
|
||||||
|
</Update>
|
||||||
|
</History>
|
||||||
|
</PISI>
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" ?>
|
||||||
|
<PISI>
|
||||||
|
<Source>
|
||||||
|
<Name>freerdp</Name>
|
||||||
|
<Summary xml:lang="tr">Bir uzak masaüstü protokol uygulaması</Summary>
|
||||||
|
<Description xml:lang="tr">FreeRDP Apache lisansı altında dağıtılan, Uzak Masaüstü Uygulamasının (RDP) özgür bir uygulamasıdır.</Description>
|
||||||
|
</Source>
|
||||||
|
</PISI>
|
||||||
+4256
-1870
File diff suppressed because it is too large
Load Diff
@@ -1 +1 @@
|
|||||||
d534b6abd8e6d4de0f010e1fc34a6f2580e79bad
|
65ee1de2f281f5de1ab8cbf3d24c7fe7bcd37181
|
||||||
Binary file not shown.
@@ -1 +1 @@
|
|||||||
773bd017504b94a140b8263658851a4d879d6266
|
3f28a9ab1814aef8d212ff2371f6db10d57af162
|
||||||
Reference in New Issue
Block a user