/** * FreeRDP: A Remote Desktop Protocol client. * Video Redirection Virtual Channel - Constants * * Copyright 2010-2011 Vic Lee * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __TSMF_CONSTANTS_H #define __TSMF_CONSTANTS_H #define GUID_SIZE 16 #define TSMF_BUFFER_PADDING_SIZE 8 /* Interface IDs defined in [MS-RDPEV]. There's no constant names in the MS documentation, so we create them on our own. */ #define TSMF_INTERFACE_DEFAULT 0x00000000 #define TSMF_INTERFACE_CLIENT_NOTIFICATIONS 0x00000001 #define TSMF_INTERFACE_CAPABILITIES 0x00000002 /* Interface ID Mask */ #define STREAM_ID_STUB 0x80000000 #define STREAM_ID_PROXY 0x40000000 #define STREAM_ID_NONE 0x00000000 /* Functon ID */ /* Common IDs for all interfaces are as follows. */ #define RIMCALL_RELEASE 0x00000001 #define RIMCALL_QUERYINTERFACE 0x00000002 /* Capabilities Negotiator Interface IDs are as follows. */ #define RIM_EXCHANGE_CAPABILITY_REQUEST 0x00000100 /* The Client Notifications Interface ID is as follows. */ #define PLAYBACK_ACK 0x00000100 #define CLIENT_EVENT_NOTIFICATION 0x00000101 /* Server Data Interface IDs are as follows. */ #define EXCHANGE_CAPABILITIES_REQ 0x00000100 #define SET_CHANNEL_PARAMS 0x00000101 #define ADD_STREAM 0x00000102 #define ON_SAMPLE 0x00000103 #define SET_VIDEO_WINDOW 0x00000104 #define ON_NEW_PRESENTATION 0x00000105 #define SHUTDOWN_PRESENTATION_REQ 0x00000106 #define SET_TOPOLOGY_REQ 0x00000107 #define CHECK_FORMAT_SUPPORT_REQ 0x00000108 #define ON_PLAYBACK_STARTED 0x00000109 #define ON_PLAYBACK_PAUSED 0x0000010a #define ON_PLAYBACK_STOPPED 0x0000010b #define ON_PLAYBACK_RESTARTED 0x0000010c #define ON_PLAYBACK_RATE_CHANGED 0x0000010d #define ON_FLUSH 0x0000010e #define ON_STREAM_VOLUME 0x0000010f #define ON_CHANNEL_VOLUME 0x00000110 #define ON_END_OF_STREAM 0x00000111 #define SET_ALLOCATOR 0x00000112 #define NOTIFY_PREROLL 0x00000113 #define UPDATE_GEOMETRY_INFO 0x00000114 #define REMOVE_STREAM 0x00000115 /* Supported platform */ #define MMREDIR_CAPABILITY_PLATFORM_MF 0x00000001 #define MMREDIR_CAPABILITY_PLATFORM_DSHOW 0x00000002 #define MMREDIR_CAPABILITY_PLATFORM_OTHER 0x00000004 /* TSMM_CLIENT_EVENT Constants */ #define TSMM_CLIENT_EVENT_ENDOFSTREAM 0x0064 #define TSMM_CLIENT_EVENT_STOP_COMPLETED 0x00C8 #define TSMM_CLIENT_EVENT_START_COMPLETED 0x00C9 #define TSMM_CLIENT_EVENT_MONITORCHANGED 0x012C /* TS_MM_DATA_SAMPLE.SampleExtensions */ #define TSMM_SAMPLE_EXT_CLEANPOINT 0x00000001 #define TSMM_SAMPLE_EXT_DISCONTINUITY 0x00000002 #define TSMM_SAMPLE_EXT_INTERLACED 0x00000004 #define TSMM_SAMPLE_EXT_BOTTOMFIELDFIRST 0x00000008 #define TSMM_SAMPLE_EXT_REPEATFIELDFIRST 0x00000010 #define TSMM_SAMPLE_EXT_SINGLEFIELD 0x00000020 #define TSMM_SAMPLE_EXT_DERIVEDFROMTOPFIELD 0x00000040 #define TSMM_SAMPLE_EXT_HAS_NO_TIMESTAMPS 0x00000080 #define TSMM_SAMPLE_EXT_RELATIVE_TIMESTAMPS 0x00000100 #define TSMM_SAMPLE_EXT_ABSOLUTE_TIMESTAMPS 0x00000200 /* MajorType */ #define TSMF_MAJOR_TYPE_UNKNOWN 0 #define TSMF_MAJOR_TYPE_VIDEO 1 #define TSMF_MAJOR_TYPE_AUDIO 2 /* SubType */ #define TSMF_SUB_TYPE_UNKNOWN 0 #define TSMF_SUB_TYPE_WVC1 1 #define TSMF_SUB_TYPE_WMA2 2 #define TSMF_SUB_TYPE_WMA9 3 #define TSMF_SUB_TYPE_MP3 4 #define TSMF_SUB_TYPE_MP2A 5 #define TSMF_SUB_TYPE_MP2V 6 #define TSMF_SUB_TYPE_WMV3 7 #define TSMF_SUB_TYPE_AAC 8 #define TSMF_SUB_TYPE_H264 9 #define TSMF_SUB_TYPE_AVC1 10 #define TSMF_SUB_TYPE_AC3 11 /* FormatType */ #define TSMF_FORMAT_TYPE_UNKNOWN 0 #define TSMF_FORMAT_TYPE_MFVIDEOFORMAT 1 #define TSMF_FORMAT_TYPE_WAVEFORMATEX 2 #define TSMF_FORMAT_TYPE_MPEG2VIDEOINFO 3 #define TSMF_FORMAT_TYPE_VIDEOINFO2 4 #endif