Made CHANNEL_TSMF optional and deprecated.

This commit is contained in:
Armin Novak 2020-02-25 15:21:16 +01:00
parent 3240485bfd
commit 829497b313
20 changed files with 97 additions and 48 deletions

View File

@ -730,14 +730,6 @@ set(VAAPI_FEATURE_TYPE "OPTIONAL")
set(VAAPI_FEATURE_PURPOSE "multimedia")
set(VAAPI_FEATURE_DESCRIPTION "VA-API hardware acceleration for video playback")
set(GSTREAMER_0_10_FEATURE_TYPE "OPTIONAL")
set(GSTREAMER_0_10_FEATURE_PURPOSE "multimedia")
set(GSTREAMER_0_10_FEATURE_DESCRIPTION "multimedia redirection, audio and video playback, gstreamer 0.10 version")
set(GSTREAMER_1_0_FEATURE_TYPE "RECOMMENDED")
set(GSTREAMER_1_0_FEATURE_PURPOSE "multimedia")
set(GSTREAMER_1_0_FEATURE_DESCRIPTION "multimedia redirection, audio and video playback")
set(IPP_FEATURE_TYPE "OPTIONAL")
set(IPP_FEATURE_PURPOSE "performance")
set(IPP_FEATURE_DESCRIPTION "Intel Integrated Performance Primitives library")
@ -793,15 +785,12 @@ if(WIN32)
set(PCSC_FEATURE_TYPE "DISABLED")
set(FFMPEG_FEATURE_TYPE "DISABLED")
set(VAAPI_FEATURE_TYPE "DISABLED")
set(GSTREAMER_1_0_FEATURE_TYPE "DISABLED")
set(GSTREAMER_0_10_FEATURE_TYPE "OPTIONAL")
set(OPENSLES_FEATURE_TYPE "DISABLED")
endif()
if(APPLE)
set(FFMPEG_FEATURE_TYPE "OPTIONAL")
set(VAAPI_FEATURE_TYPE "DISABLED")
set(GSTREAMER_1_0_FEATURE_TYPE "OPTIONAL")
set(X11_FEATURE_TYPE "OPTIONAL")
set(WAYLAND_FEATURE_TYPE "DISABLED")
set(OSS_FEATURE_TYPE "DISABLED")
@ -811,8 +800,6 @@ if(APPLE)
set(PULSE_FEATURE_TYPE "DISABLED")
set(CUPS_FEATURE_TYPE "DISABLED")
set(PCSC_FEATURE_TYPE "DISABLED")
set(GSTREAMER_1_0_FEATURE_TYPE "DISABLED")
set(GSTREAMER_0_10_FEATURE_TYPE "DISABLED")
endif()
set(OPENSLES_FEATURE_TYPE "DISABLED")
endif()
@ -842,8 +829,6 @@ if(ANDROID)
set(PCSC_FEATURE_TYPE "DISABLED")
set(FFMPEG_FEATURE_TYPE "DISABLED")
set(VAAPI_FEATURE_TYPE "DISABLED")
set(GSTREAMER_1_0_FEATURE_TYPE "DISABLED")
set(GSTREAMER_0_10_FEATURE_TYPE "DISABLED")
set(OPENSLES_FEATURE_TYPE "REQUIRED")
endif()
@ -864,9 +849,6 @@ find_feature(PCSC ${PCSC_FEATURE_TYPE} ${PCSC_FEATURE_PURPOSE} ${PCSC_FEATURE_DE
find_feature(FFmpeg ${FFMPEG_FEATURE_TYPE} ${FFMPEG_FEATURE_PURPOSE} ${FFMPEG_FEATURE_DESCRIPTION})
find_feature(GStreamer_0_10 ${GSTREAMER_0_10_FEATURE_TYPE} ${GSTREAMER_0_10_FEATURE_PURPOSE} ${GSTREAMER_0_10_FEATURE_DESCRIPTION})
find_feature(GStreamer_1_0 ${GSTREAMER_1_0_FEATURE_TYPE} ${GSTREAMER_1_0_FEATURE_PURPOSE} ${GSTREAMER_1_0_FEATURE_DESCRIPTION})
find_feature(JPEG ${JPEG_FEATURE_TYPE} ${JPEG_FEATURE_PURPOSE} ${JPEG_FEATURE_DESCRIPTION})
find_feature(x264 ${X264_FEATURE_TYPE} ${X264_FEATURE_PURPOSE} ${X264_FEATURE_DESCRIPTION})
find_feature(OpenH264 ${OPENH264_FEATURE_TYPE} ${OPENH264_FEATURE_PURPOSE} ${OPENH264_FEATURE_DESCRIPTION})

View File

@ -1,6 +1,6 @@
set(OPTION_DEFAULT OFF)
set(OPTION_CLIENT_DEFAULT ON)
set(OPTION_CLIENT_DEFAULT OFF)
set(OPTION_SERVER_DEFAULT OFF)
if(WIN32)
@ -14,7 +14,7 @@ if(ANDROID)
endif()
define_channel_options(NAME "tsmf" TYPE "dynamic"
DESCRIPTION "Video Redirection Virtual Channel Extension"
DESCRIPTION "[DEPRECATED] Video Redirection Virtual Channel Extension"
SPECIFICATIONS "[MS-RDPEV]"
DEFAULT ${OPTION_DEFAULT})

View File

@ -18,6 +18,43 @@
define_channel_client("tsmf")
message(DEPRECATION "TSMF channel is no longer maintained. Use [MS-RDPEVOR] (/video) instead.")
set(GSTREAMER_0_10_FEATURE_TYPE "OPTIONAL")
set(GSTREAMER_0_10_FEATURE_PURPOSE "multimedia")
set(GSTREAMER_0_10_FEATURE_DESCRIPTION "multimedia redirection, audio and video playback, gstreamer 0.10 version")
set(GSTREAMER_1_0_FEATURE_TYPE "RECOMMENDED")
set(GSTREAMER_1_0_FEATURE_PURPOSE "multimedia")
set(GSTREAMER_1_0_FEATURE_DESCRIPTION "multimedia redirection, audio and video playback")
if (WIN32)
set(GSTREAMER_1_0_FEATURE_TYPE "DISABLED")
set(GSTREAMER_0_10_FEATURE_TYPE "OPTIONAL")
endif()
if (APPLE)
set(GSTREAMER_1_0_FEATURE_TYPE "OPTIONAL")
if (IOS)
set(GSTREAMER_1_0_FEATURE_TYPE "DISABLED")
set(GSTREAMER_0_10_FEATURE_TYPE "DISABLED")
endif()
endif()
if (ANDROID)
set(GSTREAMER_1_0_FEATURE_TYPE "DISABLED")
set(GSTREAMER_0_10_FEATURE_TYPE "DISABLED")
endif()
find_feature(GStreamer_0_10 ${GSTREAMER_0_10_FEATURE_TYPE} ${GSTREAMER_0_10_FEATURE_PURPOSE} ${GSTREAMER_0_10_FEATURE_DESCRIPTION})
find_feature(GStreamer_1_0 ${GSTREAMER_1_0_FEATURE_TYPE} ${GSTREAMER_1_0_FEATURE_PURPOSE} ${GSTREAMER_1_0_FEATURE_DESCRIPTION})
if (WITH_GSTREAMER_0_10 AND GSTREAMER_0_10_FOUND)
add_definitions(-DWITH_GSTREAMER_0_10)
endif()
if (WITH_GSTREAMER_1_0 AND GSTREAMER_1_0_FOUND)
add_definitions(-DWITH_GSTREAMER_1_0)
endif()
set(${MODULE_PREFIX}_SRCS
tsmf_audio.c
tsmf_audio.h

View File

@ -25,7 +25,6 @@
#include <freerdp/gdi/gfx.h>
#include <freerdp/client/rdpei.h>
#include <freerdp/client/tsmf.h>
#include <freerdp/client/rail.h>
#include <freerdp/client/cliprdr.h>
#include <freerdp/client/rdpgfx.h>
@ -75,9 +74,6 @@ void tf_OnChannelConnectedEventHandler(void* context, ChannelConnectedEventArgs*
{
tf->rdpei = (RdpeiClientContext*)e->pInterface;
}
else if (strcmp(e->name, TSMF_DVC_CHANNEL_NAME) == 0)
{
}
else if (strcmp(e->name, RDPGFX_DVC_CHANNEL_NAME) == 0)
{
gdi_graphics_pipeline_init(tf->context.gdi, (RdpgfxClientContext*)e->pInterface);
@ -102,9 +98,6 @@ void tf_OnChannelDisconnectedEventHandler(void* context, ChannelDisconnectedEven
{
tf->rdpei = NULL;
}
else if (strcmp(e->name, TSMF_DVC_CHANNEL_NAME) == 0)
{
}
else if (strcmp(e->name, RDPGFX_DVC_CHANNEL_NAME) == 0)
{
gdi_graphics_pipeline_uninit(tf->context.gdi, (RdpgfxClientContext*)e->pInterface);

View File

@ -23,7 +23,6 @@
#include <freerdp/freerdp.h>
#include <freerdp/client/rdpei.h>
#include <freerdp/client/tsmf.h>
#include <freerdp/client/rail.h>
#include <freerdp/client/cliprdr.h>
#include <freerdp/client/rdpgfx.h>

View File

@ -105,9 +105,6 @@ void wlf_OnChannelConnectedEventHandler(void* context, ChannelConnectedEventArgs
{
wlf->rdpei = (RdpeiClientContext*)e->pInterface;
}
else if (strcmp(e->name, TSMF_DVC_CHANNEL_NAME) == 0)
{
}
else if (strcmp(e->name, RDPGFX_DVC_CHANNEL_NAME) == 0)
{
gdi_graphics_pipeline_init(wlf->context.gdi, (RdpgfxClientContext*)e->pInterface);
@ -137,9 +134,6 @@ void wlf_OnChannelDisconnectedEventHandler(void* context, ChannelDisconnectedEve
{
wlf->rdpei = NULL;
}
else if (strcmp(e->name, TSMF_DVC_CHANNEL_NAME) == 0)
{
}
else if (strcmp(e->name, RDPGFX_DVC_CHANNEL_NAME) == 0)
{
gdi_graphics_pipeline_uninit(wlf->context.gdi, (RdpgfxClientContext*)e->pInterface);

View File

@ -23,7 +23,6 @@
#include <freerdp/freerdp.h>
#include <freerdp/client/channels.h>
#include <freerdp/client/rdpei.h>
#include <freerdp/client/tsmf.h>
#include <freerdp/client/rail.h>
#include <freerdp/client/cliprdr.h>
#include <freerdp/client/rdpgfx.h>

View File

@ -29,9 +29,7 @@ set(${MODULE_PREFIX}_SRCS
xf_gfx.c
xf_gfx.h
xf_rail.c
xf_rail.h
xf_tsmf.c
xf_tsmf.h
xf_rail.h
xf_input.c
xf_input.h
xf_event.c
@ -59,6 +57,12 @@ set(${MODULE_PREFIX}_SRCS
xf_client.c
xf_client.h)
if (CHANNEL_TSMF_CLIENT)
set(${MODULE_PREFIX}_SRCS ${${MODULE_PREFIX}_SRCS}
xf_tsmf.c
xf_tsmf.h)
endif()
if(WITH_CLIENT_INTERFACE)
if(CLIENT_INTERFACE_SHARED)
add_library(${MODULE_NAME} SHARED ${${MODULE_PREFIX}_SRCS})

View File

@ -28,7 +28,9 @@
#include "xfreerdp.h"
#include "xf_gfx.h"
#if defined(CHANNEL_TSMF_CLIENT)
#include "xf_tsmf.h"
#endif
#include "xf_rail.h"
#include "xf_cliprdr.h"
#include "xf_disp.h"
@ -42,10 +44,12 @@ void xf_OnChannelConnectedEventHandler(void* context, ChannelConnectedEventArgs*
{
xfc->rdpei = (RdpeiClientContext*)e->pInterface;
}
#if defined(CHANNEL_TSMF_CLIENT)
else if (strcmp(e->name, TSMF_DVC_CHANNEL_NAME) == 0)
{
xf_tsmf_init(xfc, (TsmfClientContext*)e->pInterface);
}
#endif
else if (strcmp(e->name, RDPGFX_DVC_CHANNEL_NAME) == 0)
{
xf_graphics_pipeline_init(xfc, (RdpgfxClientContext*)e->pInterface);
@ -93,10 +97,12 @@ void xf_OnChannelDisconnectedEventHandler(void* context, ChannelDisconnectedEven
{
xf_disp_uninit(xfc->xfDisp, (DispClientContext*)e->pInterface);
}
#if defined(CHANNEL_TSMF_CLIENT)
else if (strcmp(e->name, TSMF_DVC_CHANNEL_NAME) == 0)
{
xf_tsmf_uninit(xfc, (TsmfClientContext*)e->pInterface);
}
#endif
else if (strcmp(e->name, RDPGFX_DVC_CHANNEL_NAME) == 0)
{
xf_graphics_pipeline_uninit(xfc, (RdpgfxClientContext*)e->pInterface);

View File

@ -23,7 +23,6 @@
#include <freerdp/freerdp.h>
#include <freerdp/client/channels.h>
#include <freerdp/client/rdpei.h>
#include <freerdp/client/tsmf.h>
#include <freerdp/client/rail.h>
#include <freerdp/client/cliprdr.h>
#include <freerdp/client/rdpgfx.h>

View File

@ -89,7 +89,9 @@
#include "xf_gdi.h"
#include "xf_rail.h"
#if defined(CHANNEL_TSMF_CLIENT)
#include "xf_tsmf.h"
#endif
#include "xf_event.h"
#include "xf_input.h"
#include "xf_cliprdr.h"
@ -664,11 +666,13 @@ static void xf_window_free(xfContext* xfc)
xfc->hdc = NULL;
}
#if defined(CHANNEL_TSMF_CLIENT)
if (xfc->xv_context)
{
xf_tsmf_uninit(xfc, NULL);
xfc->xv_context = NULL;
}
#endif
if (xfc->image)
{

View File

@ -22,6 +22,10 @@
#ifndef FREERDP_CLIENT_X11_FREERDP_H
#define FREERDP_CLIENT_X11_FREERDP_H
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
typedef struct xf_context xfContext;
#include <freerdp/api.h>
@ -30,6 +34,10 @@ typedef struct xf_context xfContext;
#include "xf_monitor.h"
#include "xf_channels.h"
#if defined(CHANNEL_TSMF_CLIENT)
#include <freerdp/client/tsmf.h>
#endif
#include <freerdp/gdi/gdi.h>
#include <freerdp/codec/rfx.h>
#include <freerdp/codec/nsc.h>
@ -173,7 +181,9 @@ struct xf_context
XSetWindowAttributes attribs;
BOOL complex_regions;
VIRTUAL_SCREEN vscreen;
#if defined(CHANNEL_TSMF_CLIENT)
void* xv_context;
#endif
Atom* supportedAtoms;
unsigned long supportedAtomCount;
@ -216,7 +226,10 @@ struct xf_context
Atom WM_DELETE_WINDOW;
/* Channels */
#if defined(CHANNEL_TSMF_CLIENT)
TsmfClientContext* tsmf;
#endif
xfClipboard* clipboard;
CliprdrClientContext* cliprdr;
xfVideoContext* xfVideo;

View File

@ -430,8 +430,7 @@ BOOL freerdp_client_print_command_line_help_ex(int argc, char** argv,
printf("Audio Input Redirection: /microphone:sys:oss,dev:1,format:1\n");
printf("Audio Input Redirection: /microphone:sys:alsa\n");
printf("\n");
printf("Multimedia Redirection: /multimedia:sys:oss,dev:/dev/dsp1,decoder:ffmpeg\n");
printf("Multimedia Redirection: /multimedia:sys:alsa\n");
printf("Multimedia Redirection: /video\n");
#ifdef CHANNEL_URBDRC_CLIENT
printf("USB Device Redirection: /usb:id,dev:054c:0268\n");
#endif
@ -935,6 +934,7 @@ static int freerdp_client_command_line_post_filter(void* context, COMMAND_LINE_A
status = freerdp_client_add_dynamic_channel(settings, count, p);
free(p);
}
#if defined(CHANNEL_TSMF_CLIENT)
CommandLineSwitchCase(arg, "multimedia")
{
char** p;
@ -943,6 +943,7 @@ static int freerdp_client_command_line_post_filter(void* context, COMMAND_LINE_A
status = freerdp_client_add_dynamic_channel(settings, count, p);
free(p);
}
#endif
CommandLineSwitchCase(arg, "heartbeat")
{
settings->SupportHeartbeatPdu = enable;
@ -3271,8 +3272,11 @@ BOOL freerdp_client_load_addins(rdpChannels* channels, rdpSettings* settings)
return FALSE;
}
if ((freerdp_static_channel_collection_find(settings, "rdpsnd")) ||
(freerdp_dynamic_channel_collection_find(settings, "tsmf")))
if ((freerdp_static_channel_collection_find(settings, "rdpsnd"))
#if defined(CHANNEL_TSMF_CLIENT)
|| (freerdp_dynamic_channel_collection_find(settings, "tsmf"))
#endif
)
{
settings->DeviceRedirection = TRUE; /* rdpsnd requires rdpdr to be registered */
settings->AudioPlayback = TRUE; /* Both rdpsnd and tsmf require this flag to be set */

View File

@ -208,8 +208,10 @@ static const COMMAND_LINE_ARGUMENT_A args[] = {
"Select monitors to use" },
{ "mouse-motion", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueTrue, NULL, -1, NULL,
"Send mouse motion" },
#if defined(CHANNEL_TSMF_CLIENT)
{ "multimedia", COMMAND_LINE_VALUE_OPTIONAL, "[sys:<sys>,][dev:<dev>,][decoder:<decoder>]",
NULL, NULL, -1, "mmr", "Redirect multimedia (video)" },
NULL, NULL, -1, "mmr", "[DEPRECATED] Redirect multimedia (video) use /video instead" },
#endif
{ "multimon", COMMAND_LINE_VALUE_OPTIONAL, "force", NULL, NULL, -1, NULL,
"Use multiple monitors" },
{ "multitouch", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueFalse, NULL, -1, NULL,

View File

@ -42,6 +42,7 @@ int TestClientChannels(int argc, char* argv[])
freerdp_channels_addin_list_free(ppAddins);
#if defined(CHANNEL_TSMF_CLIENT)
printf("Enumerate tsmf video\n");
ppAddins = freerdp_channels_list_addins("tsmf", NULL, "video", dwFlags);
@ -54,6 +55,7 @@ int TestClientChannels(int argc, char* argv[])
}
freerdp_channels_addin_list_free(ppAddins);
#endif
ppAddins = freerdp_channels_list_addins("unknown", NULL, NULL, dwFlags);

View File

@ -109,7 +109,7 @@ option(WITH_DEBUG_CHANNELS "Print channel manager debug messages." ${DEFAULT_DEB
option(WITH_DEBUG_CLIPRDR "Print clipboard redirection debug messages" ${DEFAULT_DEBUG_OPTION})
option(WITH_DEBUG_RDPGFX "Print RDPGFX debug messages" ${DEFAULT_DEBUG_OPTION})
option(WITH_DEBUG_DVC "Print dynamic virtual channel debug messages." ${DEFAULT_DEBUG_OPTION})
option(WITH_DEBUG_TSMF "Print TSMF virtual channel debug messages." ${DEFAULT_DEBUG_OPTION})
CMAKE_DEPENDENT_OPTION(WITH_DEBUG_TSMF "Print TSMF virtual channel debug messages." ${DEFAULT_DEBUG_OPTION} "CHANNEL_TSMF" OFF)
option(WITH_DEBUG_KBD "Print keyboard related debug messages." ${DEFAULT_DEBUG_OPTION})
option(WITH_DEBUG_LICENSE "Print license debug messages." ${DEFAULT_DEBUG_OPTION})
option(WITH_DEBUG_NEGO "Print negotiation related debug messages." ${DEFAULT_DEBUG_OPTION})

View File

@ -45,8 +45,6 @@
#cmakedefine WITH_EVENTFD_READ_WRITE
#cmakedefine HAVE_MATH_C99_LONG_DOUBLE
#cmakedefine WITH_GSTREAMER_1_0
#cmakedefine WITH_GSTREAMER_0_10
#cmakedefine WITH_WINMM
#cmakedefine WITH_MACAUDIO
#cmakedefine WITH_OSS

View File

@ -18,6 +18,13 @@
* limitations under the License.
*/
/* DEPRECATION WARNING:
*
* This channel is unmaintained and not used since windows 7.
* Only compile and use it if absolutely necessary, otherwise
* deactivate it or use the newer [MS-RDPEVOR] video redirection.
*/
#ifndef FREERDP_CHANNEL_TSMF_H
#define FREERDP_CHANNEL_TSMF_H

View File

@ -17,6 +17,13 @@
* limitations under the License.
*/
/* DEPRECATION WARNING:
*
* This channel is unmaintained and not used since windows 7.
* Only compile and use it if absolutely necessary, otherwise
* deactivate it or use the newer [MS-RDPEVOR] video redirection.
*/
#ifndef FREERDP_CHANNEL_TSMF_CLIENT_TSMF_H
#define FREERDP_CHANNEL_TSMF_CLIENT_TSMF_H

View File

@ -26,7 +26,6 @@
#include <freerdp/gdi/gfx.h>
#include <freerdp/client/rdpei.h>
#include <freerdp/client/tsmf.h>
#include <freerdp/client/rail.h>
#include <freerdp/client/cliprdr.h>
#include <freerdp/client/rdpgfx.h>