Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1314)

Side by Side Diff: webrtc/video/rtc_event_log.proto

Issue 1230973005: Adds logging of configuration information for VideoReceiveStream (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Addressed Ivo's latest comments Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 syntax = "proto2";
2 option optimize_for = LITE_RUNTIME;
3 package webrtc;
4
5 // This is the main message to dump to a file, it can contain multiple event
6 // messages, but it is possible to append multiple EventStreams (each with a
7 // single event) to a file.
8 // This has the benefit that there's no need to keep all data in memory.
9 message RelEventStream {
stefan-webrtc 2015/07/21 12:41:13 Is there a need to have Rel infront of all names h
terelius 2015/07/23 15:54:01 Yes, it is possible to use namespaces. I wanted to
10 repeated RelEvent stream = 1;
11 }
12
13
14 message RelEvent {
15 // required - Elapsed wallclock time in us since the start of the log.
16 optional int64 timestamp_us = 1;
17
18 // The different types of events that can occur, the UNKNOWN_EVENT entry
19 // is added in case future EventTypes are added, in that case old code will
20 // receive the new events as UNKNOWN_EVENT.
21 enum EventType {
22 UNKNOWN_EVENT = 0;
23 RTP_EVENT = 1;
24 RTCP_EVENT = 2;
25 DEBUG_EVENT = 3;
26 RECEIVER_CONFIG_EVENT = 4;
pbos-webrtc 2015/07/22 11:05:27 VIDEO_
terelius 2015/07/23 15:54:01 Done.
27 SENDER_CONFIG_EVENT = 5;
pbos-webrtc 2015/07/22 11:05:27 VIDEO_
terelius 2015/07/23 15:54:01 Done.
28 AUDIO_RECEIVER_CONFIG_EVENT = 6;
29 AUDIO_SENDER_CONFIG_EVENT = 7;
30 }
31
32 // required - Indicates the type of this event
33 optional EventType type = 2;
34
35 // optional - but required if type == RTP_EVENT
36 optional RelRtpPacket rtp_packet = 3;
37
38 // optional - but required if type == RTCP_EVENT
39 optional RelRtcpPacket rtcp_packet = 4;
40
41 // optional - but required if type == DEBUG_EVENT
42 optional RelDebugEvent debug_event = 5;
43
44 // optional - but required if type == RECEIVER_CONFIG_EVENT
pbos-webrtc 2015/07/22 11:05:27 VIDEO_
terelius 2015/07/23 15:54:01 Done.
45 optional RelVideoReceiveConfig receiver_config = 6;
46
47 // optional - but required if type == SENDER_CONFIG_EVENT
pbos-webrtc 2015/07/22 11:05:27 VIDEO_
terelius 2015/07/23 15:54:01 Done.
48 optional RelVideoSendConfig sender_config = 7;
49
50 // optional - but required if type == AUDIO_RECEIVER_CONFIG_EVENT
51 optional RelAudioReceiveConfig audio_receiver_config = 8;
52
53 // optional - but required if type == AUDIO_SENDER_CONFIG_EVENT
54 optional RelAudioSendConfig audio_sender_config = 9;
55 }
56
57
58 message RelRtpPacket {
59 // Indicates if the packet is incoming or outgoing with respect to the user
60 // that is logging the data.
61 enum Direction {
62 UNKNOWN_DIRECTION = 0;
63 OUTGOING = 1;
64 INCOMING = 2;
65 }
66 enum PayloadType {
pbos-webrtc 2015/07/22 11:05:27 These aren't payload types.
terelius 2015/07/23 15:54:01 No they are a legacy from an earlier version. We h
67 UNKNOWN_TYPE = 0;
68 AUDIO = 1;
69 VIDEO = 2;
70 RTX = 3; // TODO(terelius): Where does this get set?
71 }
72
73 // required
74 optional Direction direction = 1;
75
76 // required
77 optional PayloadType type = 2;
78
79 // required - The size of the packet including both payload and header.
80 optional uint32 packet_length = 3;
81
82 // required - The RTP header only.
83 optional bytes header = 4;
84
85 // Logging payloads for user data requires privacy review. Don't uncomment.
86 // optional bytes payload = 5;
pbos-webrtc 2015/07/22 11:05:27 How would this be turned on/off? If this is premat
terelius 2015/07/23 15:54:01 I'll remove the // optional bytes payload = 5; par
87 }
88
89
90 message RelRtcpPacket {
91 // Indicates if the packet is incoming or outgoing with respect to the user
92 // that is logging the data.
93 enum Direction {
pbos-webrtc 2015/07/22 11:05:27 Can this be shared?
terelius 2015/07/23 15:54:01 I'll change it to a bool.
94 UNKNOWN_DIRECTION = 0;
95 OUTGOING = 1;
96 INCOMING = 2;
97 }
98 enum PayloadType {
99 UNKNOWN_TYPE = 0;
100 AUDIO = 1;
101 VIDEO = 2;
102 }
103
104 // required
105 optional Direction direction = 1;
106
107 // required
108 optional PayloadType type = 2;
109
110 // required - The whole packet including both payload and header.
111 optional bytes data = 3;
112 }
113
114
115 message RelDebugEvent {
116 // Indicates the type of the debug event.
117 // LOG_START and LOG_END indicate the start and end of the log respectively.
118 // AUDIO_PLAYOUT indicates a call to the PlayoutData10Ms() function in ACM.
119 enum EventType {
120 UNKNOWN_EVENT = 0;
121 LOG_START = 1;
122 LOG_END = 2;
123 AUDIO_PLAYOUT = 3;
124 }
125
126 // required
127 optional EventType type = 1;
128
129 // An optional message that can be used to store additional information about
130 // the debug event.
131 optional string message = 2;
132 }
133
134
135 // TODO(terelius): Video and audio streams could in principle share SSRC,
136 // so identifying a stream based only on SSRC might not work.
137 // It might be better to use a combination of SSRC and media type
138 // or SSRC and port number, but for now we will rely on SSRC only.
pbos-webrtc 2015/07/22 11:05:27 We'll probably move away from media type as well,
terelius 2015/07/23 15:54:01 Ok, but there is nothing I can do about that unles
139 message RelVideoReceiveConfig {
140 // required - Synchronization source (stream identifier) to be received.
141 optional uint32 remote_ssrc = 1;
142 // required - Sender SSRC used for sending RTCP (such as receiver reports).
143 optional uint32 local_ssrc = 2;
144
145 // Compound mode is described by RFC 4585 and reduced-size
146 // RTCP mode is described by RFC 5506.
147 enum RtcpMode {
148 RTCP_COMPOUND = 1;
149 RTCP_REDUCEDSIZE = 2;
150 }
151 // required - RTCP mode to use.
152 optional RtcpMode rtcp_mode = 3;
153
154 // required - Extended RTCP settings.
155 optional bool receiver_reference_time_report = 4;
156
157 // required - Receiver estimated maximum bandwidth.
158 optional bool remb = 5;
159
160 // Map from video RTP payload type -> RTX config.
161 repeated RtxMap rtx_map = 6;
162
163 // RTP header extensions used for the received stream.
164 repeated RtpHeaderExtension header_extensions = 7;
165
166 // List of decoders associated with the stream.
167 repeated DecoderConfig decoders = 8;
168 }
169
170
171 // Maps decoder names to payload types.
172 message DecoderConfig {
173 // required
174 optional string name = 1;
175
176 // required
177 optional sint32 payload_type = 2;
178 }
179
180
181 // Maps RTP header extension names to numerical IDs.
182 message RtpHeaderExtension {
183 // required
184 optional string name = 1;
185
186 // required
187 optional sint32 id = 2;
188 }
189
190
191 // RTX settings for incoming video payloads that may be received.
192 // RTX is disabled if there's no config present.
193 message RtxConfig {
194 // required - SSRC to use for the RTX stream.
195 optional uint32 rtx_ssrc = 1;
196
197 // required - Payload type to use for the RTX stream.
198 optional sint32 rtx_payload_type = 2;
199 }
200
201
202 message RtxMap {
203 // required
204 optional sint32 payload_type = 1;
205
206 // required
207 optional RtxConfig config = 2;
208 }
209
210
211 message RelVideoSendConfig {
212 // Synchronization source (stream identifier) for outgoing stream.
213 // One stream can have several ssrcs for e.g. simulcast.
214 // At least one ssrc is required.
215 repeated uint32 ssrcs = 1;
216
217 // RTP header extensions used for the outgoing stream.
218 repeated RtpHeaderExtension header_extensions = 2;
219
220 // List of SSRCs for retransmitted packets.
221 repeated uint32 rtx_ssrcs = 3;
222
223 // required if rtx_ssrcs is used - Payload type for retransmitted packets.
224 optional sint32 rtx_payload_type = 4;
225
226 // required - Canonical end-point identifier.
227 optional string c_name = 5;
228
229 // required - Encoder associated with the stream.
230 optional EncoderConfig encoder = 6;
231 }
232
233
234 // Maps encoder names to payload types.
235 message EncoderConfig {
236 // required
237 optional string name = 1;
238
239 // required
240 optional sint32 payload_type = 2;
241 }
242
243
244 message RelAudioReceiveConfig {
245 // TODO(terelius): Figure out what the requirements are from the audio team.
pbos-webrtc 2015/07/22 11:05:27 TODO(terelius): Add audio-receive config.
terelius 2015/07/23 15:54:01 Changed comment.
246 }
247
248
249 message RelAudioSendConfig {
250 // TODO(terelius): Figure out what the requirements are from the audio team.
pbos-webrtc 2015/07/22 11:05:27 TODO(terelius): Add audio-send config.
terelius 2015/07/23 15:54:01 Changed comment.
251 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698