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