1 /** 2 * FreeRDP: A Remote Desktop Protocol Implementation 3 * Video Redirection Virtual Channel - Constants 4 * 5 * Copyright 2010-2011 Vic Lee 6 * Copyright 2012 Hewlett-Packard Development Company, L.P. 7 * 8 * Licensed under the Apache License, Version 2.0 (the "License"); 9 * you may not use this file except in compliance with the License. 10 * You may obtain a copy of the License at 11 * 12 * http://www.apache.org/licenses/LICENSE-2.0 13 * 14 * Unless required by applicable law or agreed to in writing, software 15 * distributed under the License is distributed on an "AS IS" BASIS, 16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 * See the License for the specific language governing permissions and 18 * limitations under the License. 19 */ 20 21 #ifndef FREERDP_CHANNEL_TSMF_CLIENT_CONSTANTS_H 22 #define FREERDP_CHANNEL_TSMF_CLIENT_CONSTANTS_H 23 24 #define GUID_SIZE 16 25 #define TSMF_BUFFER_PADDING_SIZE 8 26 27 /* Interface IDs defined in [MS-RDPEV]. There's no constant names in the MS 28 documentation, so we create them on our own. */ 29 #define TSMF_INTERFACE_DEFAULT 0x00000000 30 #define TSMF_INTERFACE_CLIENT_NOTIFICATIONS 0x00000001 31 #define TSMF_INTERFACE_CAPABILITIES 0x00000002 32 33 /* Interface ID Mask */ 34 #define STREAM_ID_STUB 0x80000000 35 #define STREAM_ID_PROXY 0x40000000 36 #define STREAM_ID_NONE 0x00000000 37 38 /* Functon ID */ 39 /* Common IDs for all interfaces are as follows. */ 40 #define RIMCALL_RELEASE 0x00000001 41 #define RIMCALL_QUERYINTERFACE 0x00000002 42 /* Capabilities Negotiator Interface IDs are as follows. */ 43 #define RIM_EXCHANGE_CAPABILITY_REQUEST 0x00000100 44 /* The Client Notifications Interface ID is as follows. */ 45 #define PLAYBACK_ACK 0x00000100 46 #define CLIENT_EVENT_NOTIFICATION 0x00000101 47 /* Server Data Interface IDs are as follows. */ 48 #define EXCHANGE_CAPABILITIES_REQ 0x00000100 49 #define SET_CHANNEL_PARAMS 0x00000101 50 #define ADD_STREAM 0x00000102 51 #define ON_SAMPLE 0x00000103 52 #define SET_VIDEO_WINDOW 0x00000104 53 #define ON_NEW_PRESENTATION 0x00000105 54 #define SHUTDOWN_PRESENTATION_REQ 0x00000106 55 #define SET_TOPOLOGY_REQ 0x00000107 56 #define CHECK_FORMAT_SUPPORT_REQ 0x00000108 57 #define ON_PLAYBACK_STARTED 0x00000109 58 #define ON_PLAYBACK_PAUSED 0x0000010a 59 #define ON_PLAYBACK_STOPPED 0x0000010b 60 #define ON_PLAYBACK_RESTARTED 0x0000010c 61 #define ON_PLAYBACK_RATE_CHANGED 0x0000010d 62 #define ON_FLUSH 0x0000010e 63 #define ON_STREAM_VOLUME 0x0000010f 64 #define ON_CHANNEL_VOLUME 0x00000110 65 #define ON_END_OF_STREAM 0x00000111 66 #define SET_ALLOCATOR 0x00000112 67 #define NOTIFY_PREROLL 0x00000113 68 #define UPDATE_GEOMETRY_INFO 0x00000114 69 #define REMOVE_STREAM 0x00000115 70 #define SET_SOURCE_VIDEO_RECT 0x00000116 71 72 /* Supported platform */ 73 #define MMREDIR_CAPABILITY_PLATFORM_MF 0x00000001 74 #define MMREDIR_CAPABILITY_PLATFORM_DSHOW 0x00000002 75 #define MMREDIR_CAPABILITY_PLATFORM_OTHER 0x00000004 76 77 /* TSMM_CLIENT_EVENT Constants */ 78 #define TSMM_CLIENT_EVENT_ENDOFSTREAM 0x0064 79 #define TSMM_CLIENT_EVENT_STOP_COMPLETED 0x00C8 80 #define TSMM_CLIENT_EVENT_START_COMPLETED 0x00C9 81 #define TSMM_CLIENT_EVENT_MONITORCHANGED 0x012C 82 83 /* TS_MM_DATA_SAMPLE.SampleExtensions */ 84 #define TSMM_SAMPLE_EXT_CLEANPOINT 0x00000001 85 #define TSMM_SAMPLE_EXT_DISCONTINUITY 0x00000002 86 #define TSMM_SAMPLE_EXT_INTERLACED 0x00000004 87 #define TSMM_SAMPLE_EXT_BOTTOMFIELDFIRST 0x00000008 88 #define TSMM_SAMPLE_EXT_REPEATFIELDFIRST 0x00000010 89 #define TSMM_SAMPLE_EXT_SINGLEFIELD 0x00000020 90 #define TSMM_SAMPLE_EXT_DERIVEDFROMTOPFIELD 0x00000040 91 #define TSMM_SAMPLE_EXT_HAS_NO_TIMESTAMPS 0x00000080 92 #define TSMM_SAMPLE_EXT_RELATIVE_TIMESTAMPS 0x00000100 93 #define TSMM_SAMPLE_EXT_ABSOLUTE_TIMESTAMPS 0x00000200 94 95 /* MajorType */ 96 #define TSMF_MAJOR_TYPE_UNKNOWN 0 97 #define TSMF_MAJOR_TYPE_VIDEO 1 98 #define TSMF_MAJOR_TYPE_AUDIO 2 99 100 /* SubType */ 101 #define TSMF_SUB_TYPE_UNKNOWN 0 102 #define TSMF_SUB_TYPE_WVC1 1 103 #define TSMF_SUB_TYPE_WMA2 2 104 #define TSMF_SUB_TYPE_WMA9 3 105 #define TSMF_SUB_TYPE_MP3 4 106 #define TSMF_SUB_TYPE_MP2A 5 107 #define TSMF_SUB_TYPE_MP2V 6 108 #define TSMF_SUB_TYPE_WMV3 7 109 #define TSMF_SUB_TYPE_AAC 8 110 #define TSMF_SUB_TYPE_H264 9 111 #define TSMF_SUB_TYPE_AVC1 10 112 #define TSMF_SUB_TYPE_AC3 11 113 #define TSMF_SUB_TYPE_WMV2 12 114 #define TSMF_SUB_TYPE_WMV1 13 115 #define TSMF_SUB_TYPE_MP1V 14 116 #define TSMF_SUB_TYPE_MP1A 15 117 #define TSMF_SUB_TYPE_YUY2 16 118 #define TSMF_SUB_TYPE_MP43 17 119 #define TSMF_SUB_TYPE_MP4S 18 120 #define TSMF_SUB_TYPE_MP42 19 121 #define TSMF_SUB_TYPE_OGG 20 122 #define TSMF_SUB_TYPE_SPEEX 21 123 #define TSMF_SUB_TYPE_THEORA 22 124 #define TSMF_SUB_TYPE_FLAC 23 125 #define TSMF_SUB_TYPE_VP8 24 126 #define TSMF_SUB_TYPE_VP9 25 127 #define TSMF_SUB_TYPE_H263 26 128 #define TSMF_SUB_TYPE_M4S2 27 129 #define TSMF_SUB_TYPE_WMA1 28 130 131 /* FormatType */ 132 #define TSMF_FORMAT_TYPE_UNKNOWN 0 133 #define TSMF_FORMAT_TYPE_MFVIDEOFORMAT 1 134 #define TSMF_FORMAT_TYPE_WAVEFORMATEX 2 135 #define TSMF_FORMAT_TYPE_MPEG2VIDEOINFO 3 136 #define TSMF_FORMAT_TYPE_VIDEOINFO2 4 137 #define TSMF_FORMAT_TYPE_MPEG1VIDEOINFO 5 138 139 #endif /* FREERDP_CHANNEL_TSMF_CLIENT_CONSTANTS_H */ 140