2a02ed63 | 2019-03-17 05:34:02 | Jay Sorg |
X11rdp: xrandr change for multimon |
||
M xorg/X11R7.6/rdp/rdprandr.c |
||
xorg/X11R7.6/rdp/rdprandr.cdiff --git a/xorg/X11R7.6/rdp/rdprandr.c b/xorg/X11R7.6/rdp/rdprandr.c index 46c4908..2a040a9 100644 --- a/xorg/X11R7.6/rdp/rdprandr.c +++ b/xorg/X11R7.6/rdp/rdprandr.c @@ -439,11 +439,13 @@ } } +#if 0 for (index = 0; index < pRRScrPriv->numOutputs; index++) { RROutputSetCrtcs(pRRScrPriv->outputs[index], pRRScrPriv->crtcs, pRRScrPriv->numCrtcs); } +#endif return 0; } |
||
627efbca | 2019-03-17 05:34:02 | Jay Sorg |
chansrv: added mp3 compression from Speidy |
||
M configure.ac M sesman/chansrv/Makefile.am M sesman/chansrv/sound.c M sesman/chansrv/wave-format-server.txt |
||
configure.acdiff --git a/configure.ac b/configure.ac index 50eff68..ac1d0ad 100644 --- a/configure.ac +++ b/configure.ac @@ -107,6 +107,10 @@ [Build opus(audio codec) (default: no)]), [], [enable_opus=no]) AM_CONDITIONAL(XRDP_OPUS, [test x$enable_opus = xyes]) +AC_ARG_ENABLE(mp3lame, AS_HELP_STRING([--enable-mp3lame], + [Build lame mp3(audio codec) (default: no)]), + [], [enable_mp3lame=no]) +AM_CONDITIONAL(XRDP_MP3LAME, [test x$enable_mp3lame = xyes]) # checking for openssl AC_CHECK_HEADER([openssl/rc4.h], [], @@ -179,6 +183,13 @@ [AC_MSG_ERROR([please install libopus-dev or opus-devel])]) fi +# checking for lame mp3 +if test "x$enable_mp3lame" = "xyes" +then + AC_CHECK_HEADER([lame/lame.h], [], + [AC_MSG_ERROR([please install libmp3lame-dev or lamemp3-devel])]) +fi + # checking for TurboJPEG if test "x$enable_tjpeg" = "xyes" then sesman/chansrv/Makefile.amdiff --git a/sesman/chansrv/Makefile.am b/sesman/chansrv/Makefile.am index 45597e1..c4cd1a3 100644 --- a/sesman/chansrv/Makefile.am +++ b/sesman/chansrv/Makefile.am @@ -13,6 +13,11 @@ EXTRA_LIBS += -lopus endif +if XRDP_MP3LAME +EXTRA_DEFINES += -DXRDP_MP3LAME +EXTRA_LIBS += -lmp3lame +endif + AM_CPPFLAGS = \ -DXRDP_CFG_PATH=\"${sysconfdir}/xrdp\" \ -DXRDP_SBIN_PATH=\"${sbindir}\" \ sesman/chansrv/sound.cdiff --git a/sesman/chansrv/sound.c b/sesman/chansrv/sound.c index 6610865..e2b6f53 100644 --- a/sesman/chansrv/sound.c +++ b/sesman/chansrv/sound.c @@ -35,6 +35,11 @@ static OpusEncoder *g_opus_encoder = 0; #endif +#if defined(XRDP_MP3LAME) +#include <lame/lame.h> +static lame_global_flags *g_lame_encoder = 0; +#endif + extern int g_rdpsnd_chan_id; /* in chansrv.c */ extern int g_display_num; /* in chansrv.c */ @@ -72,12 +77,12 @@ int nBlockAlign; int wBitsPerSample; int cbSize; - char *data; + tui8 *data; }; /* output formats */ -static char g_pcm_22050_data[] = { 0 }; +static tui8 g_pcm_22050_data[] = { 0 }; static struct xr_wave_format_ex g_pcm_22050 = { 1, /* wFormatTag - WAVE_FORMAT_PCM */ @@ -90,7 +95,7 @@ g_pcm_22050_data /* data */ }; -static char g_pcm_44100_data[] = { 0 }; +static tui8 g_pcm_44100_data[] = { 0 }; static struct xr_wave_format_ex g_pcm_44100 = { 1, /* wFormatTag - WAVE_FORMAT_PCM */ @@ -104,7 +109,7 @@ }; #if defined(XRDP_OPUS) -static char g_opus_44100_data[] = { 0 }; +static tui8 g_opus_44100_data[] = { 0 }; static struct xr_wave_format_ex g_opus_44100 = { 0x0069, /* wFormatTag - WAVE_FORMAT_OPUS */ @@ -118,26 +123,39 @@ }; #endif - -#if defined(XRDP_OPUS) -#define SND_NUM_OUTP_FORMATS 3 -static struct xr_wave_format_ex *g_wave_outp_formats[SND_NUM_OUTP_FORMATS] = +#if defined(XRDP_MP3LAME) +static tui8 g_mp3lame_44100_data[] = { 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb6, 0x00, 0x01, 0x00, 0x71, 0x05 }; +static struct xr_wave_format_ex g_mp3lame_44100 = { - &g_pcm_44100, - &g_pcm_22050, - &g_opus_44100 -}; -#else -#define SND_NUM_OUTP_FORMATS 2 -static struct xr_wave_format_ex *g_wave_outp_formats[SND_NUM_OUTP_FORMATS] = -{ - &g_pcm_44100, - &g_pcm_22050 + 0x0055, /* wFormatTag - WAVE_FORMAT_MPEGLAYER3 */ + 2, /* num of channels */ + 44100, /* samples per sec */ + 176400, /* avg bytes per sec */ + 4, /* block align */ + 0, /* bits per sample */ + 12, /* data size */ + g_mp3lame_44100_data /* data */ }; #endif +static struct xr_wave_format_ex *g_wave_outp_formats[] = +{ + &g_pcm_44100, + &g_pcm_22050, +#if defined(XRDP_OPUS) + &g_opus_44100, +#endif +#if defined(XRDP_MP3LAME) + &g_mp3lame_44100, +#endif + 0 +}; + static int g_client_does_opus = 0; static int g_client_opus_index = 0; + +static int g_client_does_mp3lame = 0; +static int g_client_mp3lame_index = 0; /* index into list from client */ static int g_current_client_format_index = 0; @@ -147,7 +165,7 @@ /* input formats */ -static char g_pcm_inp_22050_data[] = { 0 }; +static tui8 g_pcm_inp_22050_data[] = { 0 }; static struct xr_wave_format_ex g_pcm_inp_22050 = { 1, /* wFormatTag - WAVE_FORMAT_PCM */ @@ -160,7 +178,7 @@ g_pcm_inp_22050_data /* data */ }; -static char g_pcm_inp_44100_data[] = { 0 }; +static tui8 g_pcm_inp_44100_data[] = { 0 }; static struct xr_wave_format_ex g_pcm_inp_44100 = { 1, /* wFormatTag - WAVE_FORMAT_PCM */ @@ -173,11 +191,11 @@ g_pcm_inp_44100_data /* data */ }; -#define SND_NUM_INP_FORMATS 2 -static struct xr_wave_format_ex *g_wave_inp_formats[SND_NUM_INP_FORMATS] = +static struct xr_wave_format_ex *g_wave_inp_formats[] = { &g_pcm_inp_44100, - &g_pcm_inp_22050 + &g_pcm_inp_22050, + 0 }; static int g_client_input_format_index = 0; @@ -204,7 +222,12 @@ struct stream *s; int bytes; int index; + int num_formats; char *size_ptr; + + num_formats = sizeof(g_wave_outp_formats) / + sizeof(g_wave_outp_formats[0]) - 1; + LOG(10, ("sound_send_server_output_formats: num_formats %d", num_formats)); make_stream(s); init_stream(s, 8182); @@ -215,9 +238,9 @@ out_uint32_le(s, 0); /* dwVolume */ out_uint32_le(s, 0); /* dwPitch */ out_uint16_le(s, 0); /* wDGramPort */ - out_uint16_le(s, SND_NUM_OUTP_FORMATS); /* wNumberOfFormats */ + out_uint16_le(s, num_formats); /* wNumberOfFormats */ out_uint8(s, g_cBlockNo); /* cLastBlockConfirmed */ - out_uint16_le(s, 2); /* wVersion */ + out_uint16_le(s, 5); /* wVersion */ out_uint8(s, 0); /* bPad */ /* sndFormats */ @@ -239,7 +262,7 @@ 00 00 */ - for (index = 0; index < SND_NUM_OUTP_FORMATS; index++) + for (index = 0; index < num_formats; index++) { out_uint16_le(s, g_wave_outp_formats[index]->wFormatTag); out_uint16_le(s, g_wave_outp_formats[index]->nChannels); @@ -341,8 +364,16 @@ if (wFormatTag == 0x0069) { + LOG(0, ("wFormatTag, opus")); g_client_does_opus = 1; g_client_opus_index = aindex; + g_bbuf_size = 11520; + } + else if (wFormatTag == 0x0055) + { + LOG(0, ("wFormatTag, mp3")); + g_client_does_mp3lame = 1; + g_client_mp3lame_index = aindex; g_bbuf_size = 11520; } ** Diff limit reached (max: 250 lines) ** |
||
99b1e41b | 2019-03-17 05:34:02 | Kentaro Hayashi |
chansrv: avoid chansrv SEGV when xinode is NULL When xfuse_create_file_in_xrdp_fs is failed, it returns NULL. Without this fix, xinode->size causes SEGV, so implementation is changed to return -1 and check the return value in caller. |
||
M sesman/chansrv/chansrv_fuse.c M sesman/chansrv/clipboard_file.c |
||
** Diff limit reached (max: 250 lines) **
|
||
68b3aec9 | 2019-03-17 05:34:02 | Timothy Pearson |
Put Raptor fork back under GPL |
||
M COPYING |
||
** Diff limit reached (max: 250 lines) **
|
||
17bd5500 | 2019-03-17 05:34:02 | Timothy Pearson |
Minor modifications for Debian |
||
A debian_configure M sesman/startwm.sh |
||
** Diff limit reached (max: 250 lines) **
|
||
c09eaf54 | 2019-03-17 05:34:02 | Timothy Pearson |
Fix xrdp script on Debian |
||
M instfiles/xrdp.sh |
||
** Diff limit reached (max: 250 lines) **
|
||
ffeda4fd | 2019-03-17 05:34:02 | Timothy Pearson |
Add preliminary Raptor session management |
||
A raptorsmiface/Makefile.am A raptorsmiface/libraptorsmiface.c A raptorsmiface/libraptorsmiface.h M Makefile.am M configure.ac M sesman/Makefile.am M sesman/chansrv/Makefile.am M sesman/chansrv/chansrv.c M sesman/sesman.ini M sesman/session.c M xrdp/Makefile.am M xrdp/xrdp.ini M xrdp/xrdp_mm.c M xrdp/xrdp_types.h |
||
** Diff limit reached (max: 250 lines) **
|
||
46a8e637 | 2019-03-17 05:34:02 | Timothy Pearson |
Fix a number of problems System is now mostly stabilized |
||
M common/defines.h M common/trans.c M raptorsmiface/libraptorsmiface.c M raptorsmiface/libraptorsmiface.h M sesman/chansrv/chansrv.c M sesman/scp_v0.c M sesman/scp_v1.c M sesman/session.c M xrdp/xrdp_mm.c M xup/xup.c |
||
** Diff limit reached (max: 250 lines) **
|
||
d385c08f | 2019-03-17 05:34:02 | Timothy Pearson |
Add server/group mapping |
||
M raptorsmiface/libraptorsmiface.c M xrdp/xrdp_mm.c |
||
** Diff limit reached (max: 250 lines) **
|
||
36c7edbf | 2019-03-17 05:34:02 | Timothy Pearson |
Partially fix immediate exit after login |
||
M xup/xup.c |
||
** Diff limit reached (max: 250 lines) **
|
||
195230be | 2019-03-17 05:34:02 | Timothy Pearson |
Add hack to support blank cursors for now |
||
M xorg/X11R7.6/rdp/rdpinput.c M xup/xup.c |
||
** Diff limit reached (max: 250 lines) **
|
||
9f6da51a | 2019-03-17 05:34:02 | Timothy Pearson |
Update branding |
||
M xrdp/ad24b.bmp M xrdp/ad256.bmp M xrdp/xrdp.ini M xrdp/xrdp24b.bmp M xrdp/xrdp256.bmp M xrdp/xrdp_login_wnd.c M xrdp/xrdp_logo.bmp |
||
** Diff limit reached (max: 250 lines) **
|
||
3abfd232 | 2019-03-17 05:34:02 | Timothy Pearson |
Use a black login background |
||
M xrdp/xrdp.ini M xrdp/xrdp24b.bmp M xrdp/xrdp256.bmp |
||
** Diff limit reached (max: 250 lines) **
|
||
ce82d1f1 | 2019-03-17 05:34:02 | Timothy Pearson |
Add ability to recover somewhat from a dead master node |
||
M raptorsmiface/libraptorsmiface.c |
||
** Diff limit reached (max: 250 lines) **
|
||
1731a713 | 2019-03-17 05:34:02 | Timothy Pearson |
Add master node session recovery support |
||
M raptorsmiface/libraptorsmiface.c M raptorsmiface/libraptorsmiface.h M sesman/scp_v0.c M sesman/scp_v1.c M sesman/session.c |
||
** Diff limit reached (max: 250 lines) **
|
||
0607f42f | 2019-03-17 05:34:02 | Timothy Pearson |
Add additional debug statement |
||
M raptorsmiface/libraptorsmiface.c |
||
** Diff limit reached (max: 250 lines) **
|
||
a3c2cb3b | 2019-03-17 05:34:02 | Timothy Pearson |
Fix merge |
||
M sesman/scp_v0.c M sesman/session.c |
||
** Diff limit reached (max: 250 lines) **
|
||
a2d4f91e | 2019-03-17 05:34:02 | Timothy Pearson |
Add rudimentary sound support |
||
M raptorsmiface/libraptorsmiface.c M raptorsmiface/libraptorsmiface.h M sesman/chansrv/chansrv.c M sesman/chansrv/clipboard.c M sesman/chansrv/sound.c |
||
** Diff limit reached (max: 250 lines) **
|
||
c12cbea6 | 2019-03-17 05:34:03 | Timothy Pearson |
Add statistics reporting |
||
M raptorsmiface/libraptorsmiface.c M raptorsmiface/libraptorsmiface.h M xrdp/xrdp_types.h |
||
** Diff limit reached (max: 250 lines) **
|
||
d9d774c2 | 2019-03-17 05:34:03 | Timothy Pearson |
Add additional statistics reporting |
||
M raptorsmiface/libraptorsmiface.c M raptorsmiface/libraptorsmiface.h M xrdp/xrdp.c |
||
** Diff limit reached (max: 250 lines) **
|
||
18efbc17 | 2019-03-17 05:34:03 | Timothy Pearson |
Add MySQL database skeleton file |
||
A database/mysql/remotelab_sm_database.sql |
||
** Diff limit reached (max: 250 lines) **
|
||
1978692f | 2019-03-17 05:34:03 | Timothy Pearson |
Add database configuration options to main config file |
||
M raptorsmiface/libraptorsmiface.c M raptorsmiface/libraptorsmiface.h |
||
** Diff limit reached (max: 250 lines) **
|
||
ffcc4ab3 | 2019-03-17 05:34:03 | Timothy Pearson |
Fix non-root-user display server startup failure Transfer and clean up Kerberos ticket on login and logout Remove spurious debugging messages |
||
M instfiles/pam.d/xrdp-sesman.common M raptorsmiface/libraptorsmiface.c M sesman/env.c M xrdp/xrdp_login_wnd.c |
||
** Diff limit reached (max: 250 lines) **
|
||
4744512e | 2019-03-17 05:34:03 | Timothy Pearson |
Fix sporadic xrdp-sesman crash on session initiation Fix a number of memory leaks Fix access to freed memory Fix invalid function return values |
||
M raptorsmiface/libraptorsmiface.c M raptorsmiface/libraptorsmiface.h |
||
** Diff limit reached (max: 250 lines) **
|
||
643da9e1 | 2019-03-17 05:34:03 | Timothy Pearson |
Download installation files from correct locations Keep track of arbiter(s) in use per connection |
||
M raptorsmiface/libraptorsmiface.c M raptorsmiface/libraptorsmiface.h |
||
** Diff limit reached (max: 250 lines) **
|
||
1117f8b3 | 2019-03-17 05:34:03 | Timothy Pearson |
Second part of prior commit |
||
M database/mysql/remotelab_sm_database.sql |
||
** Diff limit reached (max: 250 lines) **
|
||
8fca4e41 | 2019-03-17 05:34:03 | Timothy Pearson |
Update for OpenSSL 1.1 |
||
M common/ssl_calls.c |
||
** Diff limit reached (max: 250 lines) **
|
||
b46473e2 | 2019-03-17 05:34:03 | Timothy Pearson |
Update sources to build on ppc64el |
||
A xorg/X11R7.6/libdrm-2.4.26.patch M xorg/X11R7.6/buildx.sh |
||
** Diff limit reached (max: 250 lines) **
|
||
7d0cd0c4 | 2019-03-17 05:34:03 | Timothy Pearson |
Fix endianness checks on ppc64 |
||
M common/arch.h |
||
** Diff limit reached (max: 250 lines) **
|
||
0aa28343 | 2019-03-17 05:34:03 | Timothy Pearson |
Don't try connecting to remote node if preliminary node allocation has failed for any reason |
||
M sesman/session.c |
||
** Diff limit reached (max: 250 lines) **
|
||
0e149048 | 2019-03-17 05:34:03 | Timothy Pearson |
Add debug warning when maximum session limit is hit for a specified user group |
||
M raptorsmiface/libraptorsmiface.c |
||
** Diff limit reached (max: 250 lines) **
|
||
31a76fc0 | 2019-03-17 05:34:03 | Timothy Pearson |
Fix a few situations where process output was corrupted with existing uncleard buffer data This fixes session termination not being marked in the database |
||
M raptorsmiface/libraptorsmiface.c |
||
** Diff limit reached (max: 250 lines) **
|
||
763641b2 | 2019-03-17 05:34:03 | Timothy Pearson |
Fix a couple of additional ppc64 endianness / alignment issues |
||
A xorg/X11R7.6/xorg-server-1.9.3.patch M common/arch.h M xorg/X11R7.6/rdp/rdp.h |
||
** Diff limit reached (max: 250 lines) **
|
||
7e78d6c7 | 2019-03-17 05:34:03 | Timothy Pearson |
Update management network range |
||
M raptorsmiface/libraptorsmiface.h |
||
** Diff limit reached (max: 250 lines) **
|
||
5eadc4e7 | 2019-03-17 05:34:03 | Timothy Pearson |
Always show log during connection |
||
M xrdp/xrdp_wm.c |
||
** Diff limit reached (max: 250 lines) **
|
||
e284e1c0 | 2019-03-17 05:34:03 | Timothy Pearson |
Disable SHM access between XUP and Xorg as they are not running on the same machine |
||
M sesman/session.c M xorg/X11R7.6/rdp/rdpup.c |
||
** Diff limit reached (max: 250 lines) **
|
||
4cddff12 | 2019-03-17 05:34:03 | Timothy Pearson |
Enhance debug logging of SHM related functions |
||
M common/os_calls.c M xup/xup.c |
||
** Diff limit reached (max: 250 lines) **
|