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

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

Issue 1411673003: Added protobuf message for loss-based BWE events, and wired it up to the send side bandwidth estima… (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Logging for loss based BWE Created 5 years, 2 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
1 syntax = "proto2"; 1 syntax = "proto2";
2 option optimize_for = LITE_RUNTIME; 2 option optimize_for = LITE_RUNTIME;
3 package webrtc.rtclog; 3 package webrtc.rtclog;
4 4
5 5
6 enum MediaType { 6 enum MediaType {
7 ANY = 0; 7 ANY = 0;
8 AUDIO = 1; 8 AUDIO = 1;
9 VIDEO = 2; 9 VIDEO = 2;
10 DATA = 3; 10 DATA = 3;
(...skipping 16 matching lines...) Expand all
27 // The different types of events that can occur, the UNKNOWN_EVENT entry 27 // The different types of events that can occur, the UNKNOWN_EVENT entry
28 // is added in case future EventTypes are added, in that case old code will 28 // is added in case future EventTypes are added, in that case old code will
29 // receive the new events as UNKNOWN_EVENT. 29 // receive the new events as UNKNOWN_EVENT.
30 enum EventType { 30 enum EventType {
31 UNKNOWN_EVENT = 0; 31 UNKNOWN_EVENT = 0;
32 LOG_START = 1; 32 LOG_START = 1;
33 LOG_END = 2; 33 LOG_END = 2;
34 RTP_EVENT = 3; 34 RTP_EVENT = 3;
35 RTCP_EVENT = 4; 35 RTCP_EVENT = 4;
36 AUDIO_PLAYOUT_EVENT = 5; 36 AUDIO_PLAYOUT_EVENT = 5;
37 VIDEO_RECEIVER_CONFIG_EVENT = 6; 37 BWE_PACKET_LOSS_EVENT = 6;
38 VIDEO_SENDER_CONFIG_EVENT = 7; 38 BWE_PACKET_DELAY_EVENT = 7;
39 AUDIO_RECEIVER_CONFIG_EVENT = 8; 39 VIDEO_RECEIVER_CONFIG_EVENT = 8;
40 AUDIO_SENDER_CONFIG_EVENT = 9; 40 VIDEO_SENDER_CONFIG_EVENT = 9;
41 AUDIO_RECEIVER_CONFIG_EVENT = 10;
42 AUDIO_SENDER_CONFIG_EVENT = 11;
41 } 43 }
42 44
43 // required - Indicates the type of this event 45 // required - Indicates the type of this event
44 optional EventType type = 2; 46 optional EventType type = 2;
45 47
46 // optional - but required if type == RTP_EVENT 48 // optional - but required if type == RTP_EVENT
47 optional RtpPacket rtp_packet = 3; 49 optional RtpPacket rtp_packet = 3;
48 50
49 // optional - but required if type == RTCP_EVENT 51 // optional - but required if type == RTCP_EVENT
50 optional RtcpPacket rtcp_packet = 4; 52 optional RtcpPacket rtcp_packet = 4;
51 53
52 // optional - but required if type == AUDIO_PLAYOUT_EVENT 54 // optional - but required if type == AUDIO_PLAYOUT_EVENT
53 optional AudioPlayoutEvent audio_playout_event = 5; 55 optional AudioPlayoutEvent audio_playout_event = 5;
54 56
57 // optional - but required if type == BWE_PACKET_LOSS_EVENT
58 optional BwePacketLossEvent bwe_packet_loss_event = 6;
59
55 // optional - but required if type == VIDEO_RECEIVER_CONFIG_EVENT 60 // optional - but required if type == VIDEO_RECEIVER_CONFIG_EVENT
56 optional VideoReceiveConfig video_receiver_config = 6; 61 optional VideoReceiveConfig video_receiver_config = 8;
57 62
58 // optional - but required if type == VIDEO_SENDER_CONFIG_EVENT 63 // optional - but required if type == VIDEO_SENDER_CONFIG_EVENT
59 optional VideoSendConfig video_sender_config = 7; 64 optional VideoSendConfig video_sender_config = 9;
60 65
61 // optional - but required if type == AUDIO_RECEIVER_CONFIG_EVENT 66 // optional - but required if type == AUDIO_RECEIVER_CONFIG_EVENT
62 optional AudioReceiveConfig audio_receiver_config = 8; 67 optional AudioReceiveConfig audio_receiver_config = 10;
63 68
64 // optional - but required if type == AUDIO_SENDER_CONFIG_EVENT 69 // optional - but required if type == AUDIO_SENDER_CONFIG_EVENT
65 optional AudioSendConfig audio_sender_config = 9; 70 optional AudioSendConfig audio_sender_config = 11;
66 } 71 }
67 72
68 73
69 message RtpPacket { 74 message RtpPacket {
70 // required - True if the packet is incoming w.r.t. the user logging the data 75 // required - True if the packet is incoming w.r.t. the user logging the data
71 optional bool incoming = 1; 76 optional bool incoming = 1;
72 77
73 // required 78 // required
74 optional MediaType type = 2; 79 optional MediaType type = 2;
75 80
(...skipping 16 matching lines...) Expand all
92 97
93 // required - The whole packet including both payload and header. 98 // required - The whole packet including both payload and header.
94 optional bytes packet_data = 3; 99 optional bytes packet_data = 3;
95 } 100 }
96 101
97 message AudioPlayoutEvent { 102 message AudioPlayoutEvent {
98 // required - The SSRC of the audio stream associated with the playout event. 103 // required - The SSRC of the audio stream associated with the playout event.
99 optional uint32 local_ssrc = 2; 104 optional uint32 local_ssrc = 2;
100 } 105 }
101 106
107 message BwePacketLossEvent {
108 // required - Bandwidth estimate after the update.
stefan-webrtc 2015/10/19 08:43:21 unit
terelius 2015/10/26 17:40:18 Done. (bps)
109 optional sint32 bitrate = 1;
ivoc 2015/10/19 16:03:38 I don't really understand why there are 2 signed i
terelius 2015/10/26 17:40:18 The fraction lost is defined as an 8-bit unsigned
stefan-webrtc 2015/10/28 16:03:18 I'm trying to move most of the BWE code to use int
terelius 2015/10/30 10:51:40 Acknowledged, though I'd like to register my dissa
stefan-webrtc 2015/10/30 10:58:04 Totally agree that there are situations where unsi
110
111 // required - Fraction of lost packets since last receiver report
112 // computed as floor( 256 * (#lost_packets / #total_packets) ).
113 // The possible values range from 0 to 255.
114 optional uint32 fraction_loss = 2;
115
116 // TODO(terelius): Is this really needed? Remove or make optional?
117 // required - Total number of packets that the BWE update is based on.
118 optional sint32 total_packets = 3;
119 }
102 120
103 // TODO(terelius): Video and audio streams could in principle share SSRC, 121 // TODO(terelius): Video and audio streams could in principle share SSRC,
104 // so identifying a stream based only on SSRC might not work. 122 // so identifying a stream based only on SSRC might not work.
105 // It might be better to use a combination of SSRC and media type 123 // It might be better to use a combination of SSRC and media type
106 // or SSRC and port number, but for now we will rely on SSRC only. 124 // or SSRC and port number, but for now we will rely on SSRC only.
107 message VideoReceiveConfig { 125 message VideoReceiveConfig {
108 // required - Synchronization source (stream identifier) to be received. 126 // required - Synchronization source (stream identifier) to be received.
109 optional uint32 remote_ssrc = 1; 127 optional uint32 remote_ssrc = 1;
110 // required - Sender SSRC used for sending RTCP (such as receiver reports). 128 // required - Sender SSRC used for sending RTCP (such as receiver reports).
111 optional uint32 local_ssrc = 2; 129 optional uint32 local_ssrc = 2;
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
221 } 239 }
222 240
223 241
224 message AudioSendConfig { 242 message AudioSendConfig {
225 // required - Synchronization source (stream identifier) for outgoing stream. 243 // required - Synchronization source (stream identifier) for outgoing stream.
226 optional uint32 ssrc = 1; 244 optional uint32 ssrc = 1;
227 245
228 // RTP header extensions used for the outgoing audio stream. 246 // RTP header extensions used for the outgoing audio stream.
229 repeated RtpHeaderExtension header_extensions = 2; 247 repeated RtpHeaderExtension header_extensions = 2;
230 } 248 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698