OLD | NEW |
| (Empty) |
1 /* | |
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. | |
3 * | |
4 * Use of this source code is governed by a BSD-style license | |
5 * that can be found in the LICENSE file in the root of the source | |
6 * tree. An additional intellectual property rights grant can be found | |
7 * in the file PATENTS. All contributing project authors may | |
8 * be found in the AUTHORS file in the root of the source tree. | |
9 */ | |
10 | |
11 #ifndef WEBRTC_VIDEO_ENGINE_VIE_DEFINES_H_ | |
12 #define WEBRTC_VIDEO_ENGINE_VIE_DEFINES_H_ | |
13 | |
14 #include "webrtc/engine_configurations.h" | |
15 | |
16 // TODO(mflodman) Remove. | |
17 #ifdef WEBRTC_ANDROID | |
18 #include <arpa/inet.h> // NOLINT | |
19 #include <linux/net.h> // NOLINT | |
20 #include <netinet/in.h> // NOLINT | |
21 #include <pthread.h> // NOLINT | |
22 #include <stdio.h> // NOLINT | |
23 #include <stdlib.h> // NOLINT | |
24 #include <string.h> // NOLINT | |
25 #include <sys/socket.h> // NOLINT | |
26 #include <sys/time.h> // NOLINT | |
27 #include <sys/types.h> // NOLINT | |
28 #include <time.h> // NOLINT | |
29 #endif | |
30 | |
31 namespace webrtc { | |
32 | |
33 // General | |
34 enum { kViEMinKeyRequestIntervalMs = 300 }; | |
35 | |
36 // ViEBase | |
37 enum { kViEMaxNumberOfChannels = 64 }; | |
38 | |
39 // ViECodec | |
40 enum { kViEMaxCodecWidth = 4096 }; | |
41 enum { kViEMaxCodecHeight = 3072 }; | |
42 enum { kViEMaxCodecFramerate = 60 }; | |
43 enum { kViEMinCodecBitrate = 30 }; | |
44 | |
45 // ViENetwork | |
46 enum { kViEMaxMtu = 1500 }; | |
47 enum { kViESocketThreads = 1 }; | |
48 enum { kViENumReceiveSocketBuffers = 500 }; | |
49 | |
50 // ViERender | |
51 // Max valid time set in SetRenderTimeoutImage | |
52 enum { kViEMaxRenderTimeoutTimeMs = 10000 }; | |
53 // Min valid time set in SetRenderTimeoutImage | |
54 enum { kViEMinRenderTimeoutTimeMs = 33 }; | |
55 enum { kViEDefaultRenderDelayMs = 10 }; | |
56 | |
57 // ViERTP_RTCP | |
58 enum { kSendSidePacketHistorySize = 600 }; | |
59 | |
60 // NACK | |
61 enum { kMaxPacketAgeToNack = 450 }; // In sequence numbers. | |
62 enum { kMaxNackListSize = 250 }; | |
63 | |
64 // Id definitions | |
65 enum { | |
66 kViEChannelIdBase = 0x0, | |
67 kViEChannelIdMax = 0xFF, | |
68 kViEDummyChannelId = 0xFFFF | |
69 }; | |
70 | |
71 // Module id | |
72 // Create a unique id based on the ViE instance id and the | |
73 // channel id. ViE id > 0 and 0 <= channel id <= 255 | |
74 | |
75 inline int ViEId(const int vieId, const int channelId = -1) { | |
76 if (channelId == -1) { | |
77 return static_cast<int>((vieId << 16) + kViEDummyChannelId); | |
78 } | |
79 return static_cast<int>((vieId << 16) + channelId); | |
80 } | |
81 | |
82 inline int ViEModuleId(const int vieId, const int channelId = -1) { | |
83 if (channelId == -1) { | |
84 return static_cast<int>((vieId << 16) + kViEDummyChannelId); | |
85 } | |
86 return static_cast<int>((vieId << 16) + channelId); | |
87 } | |
88 | |
89 inline int ChannelId(const int moduleId) { | |
90 return static_cast<int>(moduleId & 0xffff); | |
91 } | |
92 | |
93 // Windows specific. | |
94 #if defined(_WIN32) | |
95 #define RENDER_MODULE_TYPE kRenderWindows | |
96 | |
97 // Include libraries. | |
98 #pragma comment(lib, "winmm.lib") | |
99 | |
100 #ifndef WEBRTC_EXTERNAL_TRANSPORT | |
101 #pragma comment(lib, "ws2_32.lib") | |
102 #pragma comment(lib, "Iphlpapi.lib") // _GetAdaptersAddresses | |
103 #endif | |
104 #endif | |
105 | |
106 // Mac specific. | |
107 #ifdef WEBRTC_MAC | |
108 #define SLEEP(x) usleep(x * 1000) | |
109 #define RENDER_MODULE_TYPE kRenderWindows | |
110 #endif | |
111 | |
112 // Android specific. | |
113 #ifdef WEBRTC_ANDROID | |
114 #define FAR | |
115 #define __cdecl | |
116 #endif // WEBRTC_ANDROID | |
117 | |
118 } // namespace webrtc | |
119 | |
120 #endif // WEBRTC_VIDEO_ENGINE_VIE_DEFINES_H_ | |
OLD | NEW |